U-Boot之代码调试

嵌入式Linux

共 684字,需浏览 2分钟

 · 2021-07-05

让调试U-Boot不再困难


本文介绍U-Boot的两种调试方法,一种是基于代码级别,另外一种是基于工具进行在线调试。


01


DEBUG宏


U-Boot自带DEBUG宏,打开该宏定义之后,会增加许多的内在打印信息供开发人员参考。这个宏定义的开关可以通过在include/common.h中增加宏定义来实现。

DEBUG宏实际上控制的是下面的语句:


没有DEBUG宏定义,U-Boot的启动信息如下:

打开DEBUG宏定义,U-Boot的启动信息如下:

可以看到增加了很多打印,包括内置的调用函数链信息等。


02


JTAG工具在线调试


JTAG工具可以选择小巧易用的JLINK,通过工具自带软件包中的JLINK Commander工具实现在线调试的目的。


一个完整的调试步骤可以参考下面的提示进行:
1、connect


2、halt CPU


3、Set PC


4、Set Breakpoint、run,查看是否停在断点处


5、单步执行


6、读写寄存器


对于U-Boot的调试,大前提是一定要熟悉U-Boot代码。关于U-Boot代码的组成结构,主要由汇编初始化程序(初始化cpu和代码重定向)、C代码驱动初始化、命令行部分、内核镜像的加载部分的应用代码。每一部分的调试方法不尽相同,文中所述主要是针对U-Boot完全没有启动起来或者仅仅启动一部分的时候。



浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报