当前位置:文档之家› 交叉编译与调试!!!

交叉编译与调试!!!

交叉编译与调试方法
一、交叉编译
1. 建立工作目录
2. 编写源代码
3. 编写makefile文件
4. 编译应用程序
#arm-linux-gcc -g hello.c -o hello
5. 启动NSF,挂载共享文件目录
将光盘中的gdbserver与gdb程序拷贝到共享目录
二、调试步骤
1、在Target Board开启gdbserver
进入共享目录
#gdbserver <host-ip>:2345 hello (我的host-ip是192.168.0.178)
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 <target-board-ip>:2345 (我的target-board-ip is 192.168.0.105)
注意:你的端口号必须与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 本地调试方法相同。

相关主题