[技术问答] HC32F472如何重映射中断向量表

[复制链接]
1882|12
 楼主| zhouzpd 发表于 2025-4-13 17:51 | 显示全部楼层 |阅读模式
由于增加了Bootloader,需要在APP中重映射中断向量表

sct文件,SCB->VTOR都修改了

SysTick中断正常,其他中断飞了(不按预期中断跑)

请问这个芯片是否还要修改其他什么地方?

发顺丰更大nc 发表于 2025-4-23 10:22 | 显示全部楼层
这个芯片是否还要修改其他什么地方?
Amazingxixixi 发表于 2025-4-24 15:07 | 显示全部楼层
学习一下啊!感觉有点知识慌了
kaif2n9j 发表于 2025-5-10 11:55 | 显示全部楼层
确认重映射地址:确保SCB->VTOR被正确设置为APP的中断向量表基地址。例如,若APP的起始地址为0x08010000,则SCB->VTOR应配置为0x08010000。
l1uyn9b 发表于 2025-5-10 13:14 | 显示全部楼层
重映射操作需在所有中断被禁用(__disable_irq())且系统时钟初始化完成后进行,通常在SystemInit()函数或APP的初始化代码中完成
t1ngus4 发表于 2025-5-10 14:23 | 显示全部楼层
向量表格式,确保中断向量表包含正确的中断服务程序(ISR)地址。向量表的首地址应为栈指针(SP)的初始值,后续地址依次为复位、NMI、HardFault等异常处理程序的地址
suw12q 发表于 2025-5-10 16:02 | 显示全部楼层
向量表偏移,若APP的起始地址非0x08000000,需调整向量表中各ISR地址的偏移量,确保其指向APP中的ISR。
ex7s4 发表于 2025-5-10 17:12 | 显示全部楼层
链接地址,匹配sct文件中APP的链接地址与实际烧录地址一致。例如,若APP烧录到0x08010000,则sct文件中应配置
cen9ce 发表于 2025-5-10 18:21 | 显示全部楼层
区域命名一致性sct文件中的区域命名(如ER_IROM1、RW_IRAM1)与代码中使用的命名一致。
b5z1giu 发表于 2025-5-10 20:15 | 显示全部楼层
中断号匹配,确保中断号(IRQn)与对应的ISR正确映射。例如,USART1的中断号为USART1_IRQn,其ISR应为USART1_IRQHandler。
q1ngt12 发表于 2025-5-11 08:24 | 显示全部楼层
弱符号处理,若使用弱符号(__weak)定义默认ISR,需在APP中重写ISR,避免调用默认的空ISR导致程序卡死。
p0gon9y 发表于 2025-5-11 10:23 | 显示全部楼层
中断优先级:在APP中配置NVIC的中断优先级分组,并设置各中断的优先级和使能状态。中断使能,确保在重映射中断向量表后,重新使能所需的中断
w2nme1ai7 发表于 2025-5-11 13:21 | 显示全部楼层
时钟源稳定性,要保证系统时钟(如HSI、HSE、PLL)配置正确,避免时钟不稳定导致中断异常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

332

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部