什么有效:
- 不使用引导加载程序时会触发所有 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。
知道出了什么问题吗?