ST意法半导体
直播中

李伟

7年用户 1536经验值
私信 关注
[问答]

STM32H7B3I-DK将控制权***移到APP时出现HardFault怎么办

设备 - STM32H7B3I-DK
项目- STM32H7B3I-DKApplications2_Images_ExtFlash
将控制权从 BL 转移到 APP 时出现 HardFault
1)最后的代码痕迹
  • launch_application:
  • /******************************************************
  • * return from exception to application launch function
  • * R0: application vector address
  • * R1: exit function address
  • * push interrupt context R0 R1 R2 R3 R12 LR PC xPSR
  • *******************************************************/
  •         MOV R2, #0x01000000 /* xPSR activate Thumb bit */
  •         PUSH {R2}
  •         MOV R2, #1
  •         BIC R1, R1, R2      /* clear least significant bit of exit function */
  •         PUSH {R1}           /* return address = application entry point */
  •         MOV R1, #0          /* clear other context registers */
  •         PUSH {R1}
  •         PUSH {R1}
  •         PUSH {R1}
  •         PUSH {R1}
  •         PUSH {R1}
  •         PUSH {R0}           /* R0 = application entry point */
  •         MOV LR, #0xFFFFFFF9 /* set LR to return to thread mode with main stack */
  •         BX LR               /* return from interrupt */
  • .end
LR,SP 的值

堆栈指针的内存:

2) LR:0xFFFF.FFF9 从处理程序模式返回,因此 NVIC 确实取消堆栈 PC、R0-R3、R12、LR、xPSR
PC : 0x8020400 看起来适合 APP 启动
3) 0x8020400 处的应用程序内存

这看起来也是正确的。
任何调试此 HardFault 的帮助将不胜感激。



回帖(1)

曹珉

2022-12-16 11:19:31
糟糕的是,引导加载程序实际上正在跳转到应用程序。应用程序(示例应用程序)的 UART 配置在传输控制权并且不打印数据时以某种方式损坏。
举报

更多回帖

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