用 JLINK GDBSERVER 调试海思 3515 的 U-BOOT
摆脱用 LED 和 printf 串口调试来调试吧……
1,在 WINXP 上连接开发板的串口,并连接 JLINK。启动开发板,然后运行
JLINK GDBSERVER。GDBSERVER 显示正在监听 2331 端口。
2,在 UBUNTU 上编译 U-BOOT,并下载和编译 arm-hismall-linux-gdb 程
序,为 arm-hismall-linux-gdb 配置环境变量。
3,在根目录用户下,(我的目录是/root 目录下),建立.gdbinit 文件,然后
在文件中输入 target remote 192.168.20.6:2331。其中 192.168.20.6
是 xp 下的 IP 地址。
4,打开命令行,在 u-boot 目录中运行:arm-hismall-linux-gdb u-boot 然后
回车,显示与服务器连接成功, XP 上 gdbserver 窗口内显示 ubuntu 机器
IP。
5,命令行输入:load u-boot ,这时会看到程序成功下载到内存,下载到内
存中的位置是由 u-boot 里面的代码定义的,我的下载到 0xc0500000 中。
6,在 gdbserver 窗口中,看到自动为程序设置的 PC 值是 0xc0500000,所
以不用在手动设置了。这时就可以启动和运行了。
7,回到 ubuntu 命令行,输入字母 l,意思是 list。这时屏幕会打印出 start.s
文件的内容。然后设置断点:break 117 回车。然后输入字母 c,意思是
continue。然后看到程序正常运行到 117 行的断点处。
8,输入字母 n,意思是单步运行下一行。依次可以单步调试。如果希望看变量
的值,可以输入 p i,意思是 print i 的值,p k, p j 什么的都可以。但是我现在
调试 u-boot 的时候,都不能看到变量的值,每次使用 print 命令的时候,都会
说不能访问该内存地址,结果只能看看运行到哪行。以后有机会我希望能研究
出这个问题所在。
9,ctrl c,结束调试。
10,输入字母 q,意思是 quit,然后退回到系统命令行。
评论4