调试 u-boot 崩溃

Posted

技术标签:

【中文标题】调试 u-boot 崩溃【英文标题】:Debugging u-boot crash 【发布时间】:2018-04-27 10:24:45 【问题描述】:

我在 u-boot 中遇到了一些数据中止并且无法找到问题的根本原因。谁能告诉我如何在这里跟踪日志或如何调试和解码这些日志。

在 u-boot 中哪个文件提供了所需的详细信息-

以下是崩溃日志-:

 data abort
 pc : [<fff3fcb8>]           lr : [<1a000018>]
 reloc pc : [<B30017cb8>]    lr : [<4a0d8018>]
 sp : fdf17e5c  ip : fff88a6c     fp : 00000017
 r10: 30061f88  r9 : fdf17ef8     r8 : fdf18a78
 r7 : 00000010  r6 : 00000028     r5 : fdf3d138  r4 : 17f18ab8
 r3 : fdf18a88  r2 : 00000018     r1 : fdf18aa0  r0 : 00000000
 Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
 Resetting CPU ...

BR,阿比

【问题讨论】:

您使用的是什么处理器? PC 寄存器显示错误指令,您的映射文件应该告诉您哪一行代码失败了。 我正在使用 arm7 处理器。我尝试在 u-boot.map 文件中查找地址,但没有找到相同的地址。 这对于 PC 寄存器来说是一个可疑的高值。无论如何,在您可以使用映射文件之前,您必须考虑 U-Boot 的运行时重定位(到物理 RAM 的最顶部)。见***.com/questions/35336940/… 【参考方案1】:

首先你需要反汇编 U-Boot 文件。您需要哪个版本的 objdump 取决于您的主机和目标架构,例如

arm-linux-gnueabihf-objdump -sD u-boot > u-boot.txt

然后寻找reloc pc地址。

【讨论】:

我需要反汇编 u-boot.bin 还是 u-boot.img ?

以上是关于调试 u-boot 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

u-boot 2011.09 开启debug 调试

十u-boot 调试--串口修改

十u-boot 调试-- NOR FLASH 支持

Rockchip | Rockchip U-Boot调试热键HOTKEY

u-boot下延时程序失效的bug调试

am335x UART1输入u-boot 调试信息代码修改