HardFault_Handler 处理
This commit is contained in:
@@ -243,7 +243,7 @@ void HardFault_Handler_C(ContextStateFrame_t* frame, uint32_t lr_value){
|
|||||||
// "thumb instruction interworking" bit set
|
// "thumb instruction interworking" bit set
|
||||||
frame->xpsr = (1 << 24);
|
frame->xpsr = (1 << 24);
|
||||||
#else
|
#else
|
||||||
while(1);
|
while(1){}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ __PendSV_SwitchTo
|
|||||||
|
|
||||||
HardFault_Handler PROC
|
HardFault_Handler PROC
|
||||||
EXPORT HardFault_Handler
|
EXPORT HardFault_Handler
|
||||||
|
IMPORT HardFault_Handler_C
|
||||||
tst lr, #4 // 检查 EXC_RETURN (LR) 的位 2
|
tst lr, #4 // 检查 EXC_RETURN (LR) 的位 2
|
||||||
ite eq
|
ite eq
|
||||||
mrseq r0, msp // 如果位 2 是 0,栈帧在 MSP
|
mrseq r0, msp // 如果位 2 是 0,栈帧在 MSP
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ cpu_clz:
|
|||||||
|
|
||||||
.section .text.HardFault_Handler,"ax",%progbits
|
.section .text.HardFault_Handler,"ax",%progbits
|
||||||
.global HardFault_Handler
|
.global HardFault_Handler
|
||||||
|
.global HardFault_Handler_C
|
||||||
.thumb_func
|
.thumb_func
|
||||||
HardFault_Handler:
|
HardFault_Handler:
|
||||||
tst lr, #4
|
tst lr, #4
|
||||||
|
|||||||
Reference in New Issue
Block a user