变量不初始化问题,处理方法:定义一个变量在0x20000FE0(SRAM 最后一段)
volatile __attribute__((zero_init)) uint32_t Val_Test __attribute__((at(0x20000FE0)));
工程Options设置如下
printf("Val_Test: %3d\n",Val_Test);
while(1)
{
Val_Test = 66;
if(!Test_Flag)
{
Test_Flag = 1;
printf("Val_Test: %3d\n",Val_Test);
}
}
如果芯片强制硬件复位(RST拉低)Val_Test 的值应该还是66,实际测试结果是初始化后的值0,各位大神帮忙分析一下! |