初始化,按照官方的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);
不知道是不是你把中断向量表重载到SRAM有关系,我使用IAP时把向量表从0地址向后移动了一段位置但没有放在SRAM中去。
如果不重启设备,进入APP后我就直接运行程序了,并没有再次回到boot。
一周热门 更多>