MOV R0, #4
MOV R1, __return_address()
TST R0, R1
BEQ _MSP
MRS R0, PSP
B _checkFaultInstruction
_MSP:
MRS R0, MSP
_checkFaultInstruction:
LDR R1, [R0,#24]
LDRH R2, [R1]
MOV R3, 0xBEAB
CMP R2, R3
BNE HardFault_HandlerC
ADDS R1, #2
STR R1, [R0,#24]
BX __return_address()
|