嵌入式开发,一般要用到远程调试,即在本地PC上debug远程target上运行的程序。有很多target平台提供了自己专用的debug工具,我比较常用的是gdb。他的优点有很多,网上也有很详细的介绍,我在这里只介绍他比较常用的功能及使用方法。
1. 建立开发环境
a. 用debug tools连接linux pc与target平台(依据平台不同而不同,我用的support card)
b. 将target的串口与linux pc的串口相连接(跟踪target运行的log及查看target的进程等)
2. 设置linux pc串口终端(设置串口及波特率与target一致)
>minicom -s
//你的linux pc上需要安装minicom,设置需要root权限,只打开不设置可以用(minicom -o)
3. 启动target,运行要debug的程序并查看进程
>ps -h
//再minicom终端内输入ps -h,这需要你的target的串口有shell功能,例如sash等。
4. 启动gdbserver
>gdbserver debug:2345 --attach xxx &
//xxx为第三步查到的进程pid
5. 在linux pc上运行新终端,启动emacs
>emacs&
6. 在meacs上启动gdb
>Alt+x gdb
>arm-linux-gdb xxx
//xxx为要debug的程序,位于linux pc上,如果xxx不在当前目录,前面可以指定绝对路径。
7. 在gdb状态连接远程target
gdb>target remote IP:2345
//IP为target的IP地址,在我的开发环境里,IP是support card 的地址。
接下来就可以用gdb对target上的程序进行debug了。
常用的debug命令,待续……