我在编写应用程序时,并非直接编译、下载程序到目标板、运行,而是首先将代码在ubuntu下测试验证,如果OK,然后才下载到目标板运行测试,这样可以避免很多程序问题,我觉得这是一种很好的开发习惯。
在嵌入式linux开发过程中,出现BUG是在所难免的,这时就需要用到调试技术了,最常用、最简单的调试方法当属printf打印了。
如果ubuntu测试通过,程序下载到板子里出现BUG,串口还出现错误提示信息,这类错误用printf打印,定位错误就可以解决。并非每次都这么幸运都会有错误提示信息,我在项目开发中就曾经遇到过,进程运行一段时间,就莫名其妙掉了,没有任何错误打印信息,printf打印就显得无能为力了,后来我用嵌入式gdb调试就解决这种BUG,这种情况决大部分是内存的问题。
嵌入式gdb调试步骤如下:
1.首先搭建嵌入式gdb环境,网络上有很多介绍,这里不再描述,主要介绍嵌入式gdb使用方法。
2.目标板和服务器(你的pc机ubuntu)需在同一局域网内,可以通过wifi相连,或者网口相连;
3.目标板有gdbserver,在串口调试软件上输入:。/gdbserver linux服务器ip:端口(自己定义)可执行程序名称
4.服务器ubuntu下输入命令:arm-linux-gdb可执行程序名称
target remote 目标板ip:端口
c(继续执行输入c,而不是r)