ST意法半导体
直播中

哥儿

8年用户 880经验值
擅长:嵌入式技术
私信 关注
[问答]

STM32H742使用自定义引导加载程序的问题求解

什么有效:
  • 不使用引导加载程序时会触发所有 ISR
  • 将引导加载程序与我的应用程序一起使用时,几乎(原文如此!)所有 ISR 都会被触发
什么不起作用:
  • 使用引导加载程序时不会触发 BMDA_Channel1_IRQHandler。
我已经分析过的内容(在目标上使用 JLink/GDB 反汇编):
  • BMDA_Channel1_IRQHandler 位于地址 0x804feac,根据数据表,此 ISR 的 NVIC 跳转偏移量为 0x248
  • SCB->VTOR 是 0x8040200
  • 地址 0x8040448 包含 0x804fead(所以一切都设置为跳转到 0x804feac)
  • 地址 0x804feac 永远不会被触发
  • Default_Handler 位于地址 0x080745d4(这是我的应用程序卡住的地方)
  • 卡住时,APSR为0,EPSR除Thumb位外为0,IPSR为0x92(就是BDMA_CH1...),SCB->ICSR->VECTACtiVE为0x92,SCB->CFSR为0,SCB->HFSR为0
据我所知,处理器应该跳转到 0x804feac 并执行我的 IRQHandler。
知道出了什么问题吗?

回帖(1)

杨雨凡

2023-2-2 09:50:07
VTOR(以及向量表本身)必须与向量表的大小对齐
举报

更多回帖

发帖
×
20
完善资料,
赚取积分