jlink调试hi3516dv300 uboot

这个过程主要是参考了网上的一篇文章,

摆脱用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,然后退回到系统命令行。
————————————————
版权声明:本文为CSDN博主「Quietly」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/longjiacheng2006/article/details/6675094

下面补充一点编译时候要注意的东西,在编译uboot过程中,要注意编译CFLAGS 是-O0 -g2 或者-g3,下面是我使用的uboot-2016.11中修改的基础地方,

 

猜你喜欢

转载自www.cnblogs.com/eastgeneral/p/11739626.html