MCU型号是STM32F107VC, Processor 是 Cortex-m3。
以下是从堆栈中恢复现场后的跳转。 在执行BX LR的过程中遇到问题。
MSR IPSR,a1 80005e6: f380 8805 msr IPSR, r0 LDMIA sp!,{r0-r12,lr} //Recover all registers and resume 80005ea: e8bd 5fff ldmia.w sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr} bx lr //at point of interrupt 80005ee: 4770 bx lr
讯享网
执行0x80005ee处代码,Jlink 仿真器的错误提示。
讯享网 Performing single step... WARNING: T-bit of XPSR is 0 but should be 1. Changed to 1. ...Target halted (DBGRQ, PC = 0x08000D14)
执行前后的寄存器Dump结果
执行0x80005e6 前
0x00000000 in ?? () (gdb) source dump_reg.gdb R0 = 0, R1 = , R2 = 0, R3 = 00000001 R4 = , R5 = , R6 = , R7 = 00000000 R8 = 00000000, R9 = 00000000, R10= , R11= 20000CC0 R12= 20000CC4, R13= 20000C88, MSP= 20000C88, PSP= D478C6E4 R14(LR) = FFFFFFF9, R15(PC) = 080005E6 XPSR F, APSR , EPSR 0, IPSR 0000000F CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00 Reading from address 0xE000ED24 (Data = 0x00000800) Reading from address 0xE000ED28 (Data = 0x00) Reading from address 0xE000ED29 (Data = 0x00) Reading from address 0xE000ED2A (Data = 0x0000) Reading from address 0xE000ED2C (Data = 0x00000000) Reading from address 0xE000ED30 (Data = 0x00000002) Reading from address 0xE000ED34 (Data = 0xE000EDF8) Reading from address 0xE000ED38 (Data = 0xE000EDF8) Reading from address 0xE000ED3C (Data = 0x00000000)
执行0x80005EA前
讯享网R0 = 0, R1 = , R2 = 0, R3 = 00000001 R4 = , R5 = , R6 = , R7 = 00000000 R8 = 00000000, R9 = 00000000, R10= , R11= 20000CC0 R12= 20000CC4, R13= 20000C88, MSP= 20000C88, PSP= D478C6E4 R14(LR) = FFFFFFF9, R15(PC) = 080005EA XPSR F, APSR , EPSR 0, IPSR 0000000F CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00 Reading from address 0xE000ED24 (Data = 0x00000800) Reading from address 0xE000ED28 (Data = 0x00) Reading from address 0xE000ED29 (Data = 0x00) Reading from address 0xE000ED2A (Data = 0x0000) Reading from address 0xE000ED2C (Data = 0x00000000) Reading from address 0xE000ED30 (Data = 0x00000001) Reading from address 0xE000ED34 (Data = 0xE000EDF8) Reading from address 0xE000ED38 (Data = 0xE000EDF8) Reading from address 0xE000ED3C (Data = 0x00000000)
执行0x80005EE前
R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000 R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000 R8 = 00000000, R9 = 00000000, R10= C8, R11= 20000CC0 R12= 20000CC0, R13= 20000CC0, MSP= 20000CC0, PSP= D478C6E4 R14(LR) = 08000D14, R15(PC) = 080005EE XPSR F, APSR , EPSR 0, IPSR 0000000F CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00 Reading from address 0xE000ED24 (Data = 0x00000800) Reading from address 0xE000ED28 (Data = 0x00) Reading from address 0xE000ED29 (Data = 0x00) Reading from address 0xE000ED2A (Data = 0x0000) Reading from address 0xE000ED2C (Data = 0x00000000) Reading from address 0xE000ED30 (Data = 0x00000001) Reading from address 0xE000ED34 (Data = 0xE000EDF8) Reading from address 0xE000ED38 (Data = 0xE000EDF8) Reading from address 0xE000ED3C (Data = 0x00000000)
执行0x80005EE后
讯享网R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000 R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000 R8 = 00000000, R9 = 00000000, R10= C8, R11= 20000CC0 R12= 20000CC0, R13= 20000CC0, MSP= 20000CC0, PSP= D478C6E4 R14(LR) = 08000D14, R15(PC) = 08000D14 XPSR F, APSR , EPSR 0, IPSR 0000000F CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00 Reading from address 0xE000ED24 (Data = 0x00000800) Reading from address 0xE000ED28 (Data = 0x00) Reading from address 0xE000ED29 (Data = 0x00) Reading from address 0xE000ED2A (Data = 0x0000) Reading from address 0xE000ED2C (Data = 0x00000000) Reading from address 0xE000ED30 (Data = 0x00000001) Reading from address 0xE000ED34 (Data = 0xE000EDF8) Reading from address 0xE000ED38 (Data = 0xE000EDF8) Reading from address 0xE000ED3C (Data = 0x00000000)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/124525.html