Представленный код инкрементит переменную между ресетами, но есь вопросы по надежности, а именно - не затрется ли переменная.
Размещение переменой по заданному адресу означает что под нее будет выделено место в памяти, заданное адресом?
Или это просто будет ссылка на заданный адрес - а что там - неизвестно?
STM32F2, IAR
Код
#include "stm32f2xx.h"
static __no_init __root uint32_t flag @0x20000000;
int main(void)
{
flag++;
NVIC_SystemReset();
}
Вот разница в .map файлах. Слева - с переменной flag, справа - без: