глобальная переменная назначает адрес ОЗУ

Я пишу код C для микроконтроллера MSP430 и хочу привязать глобальную переменную к определенному адресу в ОЗУ.

Причина в том, что у меня есть стек в конце адреса ОЗУ, и он растет вниз к более низким адресам. Когда стек переполняется, он начинает перезаписывать глобальные переменные, хранящиеся в оперативной памяти рядом со стеком. Итак, я хочу написать водяной знак, который находится прямо рядом со стеком, и проверить его на переполнение.


person swoosh    schedule 07.06.2012    source источник
comment
возможный дубликат Как объявить переменную, которая находится по определенному адресу?   -  person Ken White    schedule 07.06.2012


Ответы (1)


Если вы знаете, где должен быть конец стека на вашем устройстве MSP430, вы можете сделать это, например:

int* ptr;           // will point to end of stack
ptr = (int*)0x0600; // memory address of the end of the stack
*ptr = 0x1234;      // value to assign to memory

Вот кто-то, у кого есть такой же вопрос на форумах TI... это выглядит полезным: http://e2e.ti.com/support/development_tools/compiler/f/343/t/92002.aspx

person Matt    schedule 07.06.2012