HC32F472如何重映射中断向量表
由于增加了Bootloader,需要在APP中重映射中断向量表sct文件,SCB->VTOR都修改了
SysTick中断正常,其他中断飞了(不按预期中断跑)
请问这个芯片是否还要修改其他什么地方?
这个芯片是否还要修改其他什么地方? 学习一下啊!感觉有点知识慌了 确认重映射地址:确保SCB->VTOR被正确设置为APP的中断向量表基地址。例如,若APP的起始地址为0x08010000,则SCB->VTOR应配置为0x08010000。 重映射操作需在所有中断被禁用(__disable_irq())且系统时钟初始化完成后进行,通常在SystemInit()函数或APP的初始化代码中完成 向量表格式,确保中断向量表包含正确的中断服务程序(ISR)地址。向量表的首地址应为栈指针(SP)的初始值,后续地址依次为复位、NMI、HardFault等异常处理程序的地址 向量表偏移,若APP的起始地址非0x08000000,需调整向量表中各ISR地址的偏移量,确保其指向APP中的ISR。 链接地址,匹配sct文件中APP的链接地址与实际烧录地址一致。例如,若APP烧录到0x08010000,则sct文件中应配置 区域命名一致性sct文件中的区域命名(如ER_IROM1、RW_IRAM1)与代码中使用的命名一致。 中断号匹配,确保中断号(IRQn)与对应的ISR正确映射。例如,USART1的中断号为USART1_IRQn,其ISR应为USART1_IRQHandler。 弱符号处理,若使用弱符号(__weak)定义默认ISR,需在APP中重写ISR,避免调用默认的空ISR导致程序卡死。 中断优先级:在APP中配置NVIC的中断优先级分组,并设置各中断的优先级和使能状态。中断使能,确保在重映射中断向量表后,重新使能所需的中断 时钟源稳定性,要保证系统时钟(如HSI、HSE、PLL)配置正确,避免时钟不稳定导致中断异常。
页:
[1]