//Cortex-M0内核中断向量共有48个。
//因为M0内核不具有M3、M4内核的中断向量表重定位功用,须选用以下方法处理IAP向量问题:
// 1:仿制用户代码中的中断向量表到SRAM首地址
// 2: 敞开SRAM的重映射功用,将SRAM的地址映射到0x00000000
// 3: MDK设置RAM运转地址时,要越过前48个地址(地址为32位,共192字节),中断向量表
// 不能被操作,不然程序运转将犯错。
// 中断向量表开始方位坐落编译好的用户代码的首地址,共48个地址。
voidNVIC_SetVectorTable(void)
{
uint8_TI;
uint32_t*pVecTab=(uint32_t*)(0x20000000);
//仿制中断向量表到SRAM首地址
for(i=0;i《48;i++)
{
*(pVecTab++)=*(__IOuint32_t*)(USER_CODE_ADDR+(i《《2));
}
//敞开SYSCFG时钟
__SYSCFG_CLK_ENABLE();
//重映射SRAM地址到0x00000000
__HAL_REMAPMEMORY_SRAM();
}