open-story-teller/firmware/.gdbinit

29 lines
944 B
Text

define armex
printf "EXEC_RETURN (LR):\n",
info registers $lr
if (0x04 == (0x04 & (int)$lr))
printf "Uses MSP 0x%x return.\n", $msp
set $armex_base = (int)$msp
else
printf "Uses PSP 0x%x return.\n", $psp
set $armex_base = (int)$psp
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