Hello,
If you met hardfault when debugging with S32DS 3.4, you can do the follow steps and find the information where triggered the hardfault.
define armex
printf "EXEC_RETURN (LR):\n"
info registers $lr
if (((unsigned int)$lr & 0x4) == 0x4)
printf "Uses PSP 0x%x return.\n", $psp
set $armex_base = (unsigned int)$psp
else
printf "Uses MSP 0x%x return.\n", $msp
set $armex_base = (unsigned int)$msp
end
printf "xPSR 0x%x\n", *($armex_base+28)
printf "ReturnAddress 0x%x\n", *($armex_base+24)
printf "LR (R14) 0x%x\n", *($armex_base+20)
printf "R12 0x%x\n", *($armex_base+16)
printf "R3 0x%x\n", *($armex_base+12)
printf "R2 0x%x\n", *($armex_base+8)
printf "R1 0x%x\n", *($armex_base+4)
printf "R0 0x%x\n", *($armex_base)
printf "Return instruction:\n"
x/i *($armex_base+24)
printf "LR instruction:\n"
x/i *($armex_base+20)
end
document armex
ARMv7 Exception entry behavior.
xPSR, ReturnAddress, LR (R14), R12, R3, R2, R1, and R0
end
Cheers!
Oliver
已解决! 转到解答。