原生的U-Boot不支持调用栈回溯机制,RK平台增加了该功能。目前一共有3种方式触发调用栈打印:
-
系统崩溃时自动触发;
-
用户主动调用 dump_stack() ;
-
使能 CONFIG_ROCKCHIP_DEBUGGER ; 例如系统abort:
“Synchronous Abort” handler, esr 0x96000010
// abort的原因、pc、lr、sp
- Reason: Exception from a Data abort, from current exception level
- PC = 000000000028f430
- LR = 00000000002608d0
- SP = 00000000f3dceb30
…
// 重点突出PC和LR
Call trace:
PC: [< 0028f430 >]
LR: [< 002608d0 >]
// 函数调用关系
Stack:
[< 0028f430 >]
[< 0028da24 >]
[< 00211600 >]
[< 002117b0 >]
[< 00202910 >]
[< 00202aa8 >]
[<