当前位置:首页 > 单片机 > 单片机
[导读]//Cortex-M0内核中断向量共有48个。//由于M0内核不具有M3、M4内核的中断向量表重定位功能,须采用以下方式解决IAP向量问题:// 1:复制用户代码中的中断向量表到SRAM首地址// 2: 开启SRAM的重映射功能,将SRAM的地

//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();

}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭