使用JLINK GDBSERVER调试U-BOOT的方法

1,在WINXP上连接开发板的串口,并连接JLINK。启动开发板,然后运行JLINK GDBSERVER。GDBSERVER显示正在监听2331端口。

2,在UBUNTU上编译U-BOOT,并下载和编译ARM-LINUX-GDB程序,为ARM-LINUX-GDB配置环境变量。

3,在用户根目录下,(我的目录是/ROOT目录),建立.gdbinit文件,然后在文件中输入TARGET REMOTE 192.168.1.104:2331。其中192.168.1.104是WINXP机器的IP地址。

4,打开命令行,在U-BOOT目录中运行:arm-linux-gdb u-boot 然后回车,显示与服务器连接成功,WINXP上gdbserver窗口内显示ubuntu机器IP。

5,命令行输入:load u-boot ,这时会看到程序成功下载到内存,下载到内存中的位置是由u-boot里面的代码定义的,我的下载到0x33000000中。

6,在gdbserver窗口中,看到自动为程序设置的PC值是0x33000000,所以不用在手动设置了。这时就可以启动和运行了。

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

你可能感兴趣的:(嵌入式)