交叉编译与调试!!!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交叉编译与调试方法
一、交叉编译
1. 建立工作目录
2. 编写源代码
3. 编写makefile文件
4. 编译应用程序
#arm-linux-gcc -g hello.c -o hello
5. 启动NSF,挂载共享文件目录
将光盘中的gdbserver与gdb程序拷贝到共享目录
二、调试步骤
1、在Target Board开启gdbserver
进入共享目录
#gdbserver
gdbserver开始监听2345端口(你也可以设其他的值),然后启动hello,你会看到“Process test created:pid=88”
2、回到Host端
添加环境变量
#export PATH=$PATH:/home/cby/arm-gdb/bin(arm-linux-gdb的路径)
调试
#arm-linux-gdb hello
最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target =arm-linux”...
说明此gdb在X86的Host上运行,但是调试目标是ARM代码。
(gdb)target remote
注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。
建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。
注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver 启动了。结果输出是在Target Board端,用超级终端查看。
4. 交叉调试
(gdb)list
(gdb)break func
(gdb)break 22
(gdb)info br
(gdb)c
(这里不能用run)
(gdb) n
(gdb) p result
(gdb) finish
(跳出func 函数)
(gdb) next
(gdb) quit
建立连接后进行gdb 远程调试和gdb 本地调试方法相同