初始化,按照官方的demo,中断向量表重载到SRAM
uint32_t i = 0;
__IO uint32_t VectorTable[48] __attribute__((at(0x20000000)));
/* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/
/* Copy the vector table from the Flash (mapped at the base of the application
load address 0x08003000) to the base address of the SRAM at 0x20000000. */
for(i = 0; i < 48; i++)
{
VectorTable = *(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));
}
/* Enable the SYSCFG peripheral clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* Remap SRAM at 0x00000000 */
SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM);
出现这个问题时设置个断点查看会发现其实数组的内容并没有发生变化,但是全速debug还是能看到这个数组在变化,如果不影响程序的运行结果,就别纠结这个了。
没有啊,我的一直在变化!断点的时候,数组的内容都发生了变化。从APP跳转回来,内容也发生变化!
没有啊,我的一直在变化!断点的时候,数组的内容都发生了变化。从APP跳转回来,内容也发生变化!
不知道是不是你把中断向量表重载到SRAM有关系,我使用IAP时把向量表从0地址向后移动了一段位置但没有放在SRAM中去。
如果不重启设备,进入APP后我就直接运行程序了,并没有再次回到boot。
一周热门 更多>