用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,然后退回到系统命令行。

猜你喜欢

转载自blog.csdn.net/longjiacheng2006/article/details/6675094