- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DAVINCI 调试 ARM 端应用程序
拿到 DM365 的开发板好几天了,各种环境也都搭建成功了,Demo 程序也跑起来了。现在就想如何来调试应用程序。在开始之前心里其实就明白,Linux 下是不可能有 Windows 下那么好用的 IDE 工具的。所以首先想到使用 gdb,然后再去找找有没有稍微人性化一点的IDE 工具。下面就是我的调试过程。
建立源文件(hello.c)
host # gedit hello.c
输入:
#include stdio.h
int main (int argc, char **argv)
{
int x, y;
x = 20, y = 10;
printf(%d+%d=%d\n, x, y, x+y); printf(%d*%d=%d\n, x, y, x*y); printf(%d/%d=%d\n, x, y, x/y); return 0;
}
查看是否已安装 ARM-CROSS 的 GDB 工具
host # arm_v5t_le-gdb
bash: arm_v5t_le-gdb: command not
bash: arm_v5t_le-gdb: command not found
错误:命令找不到。说明没有供交叉编译的GDB 工具。
安装 GDB 工具
下载最新的 gdb 安装包:/gnu/gdb
这里我下载了最新的 gdb-7.1.tar.gz
安 装 过 程 参 见 : /index.php/Debugging_a_Linux_Application_with_MontaVista_5.0 这里讲的很清楚,下面只记录安装命令:
host # cp gdb-7.1.tar.gz /home/debug/tmp host # tar zxvf gdb-7.1.tar.gz
host # cd gdb-7.1
host # ./configure --host=i686-pc-linux-gnu --target=armv5tl-montavista-linux-gnueabi
--prefix=/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le host # make make install
安装完成,在/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin目录下生成 3 个文件: armv5tl-montavista-linux-gnueabi-gdb
armv5tl-montavista-linux-gnueabi-gdbtui armv5tl-montavista-linux-gnueabi-run
安装 GDB-Server
host # cd /gdb-7.1/gdb/gdbserver (注:gdbserver 在 gdb-7.1.tar.gz解压出来的包里面)
host # CC=arm_v5t_le-gcc ./configure --host=armv5tl-montavista-linux-gnueabi --prefix=/home/debug host # make make install
安装完成,在指定目录(/home/debug)生成一个 bin 目录,目录下就有 gdbserver
-g编译源文件(hello.c)
-g
host # arm_v5t_le-gcc
hello.c -o hello (注意加上-g 选项)
编译结束后,即可生成一个带 debug 信息的可执行文件 hello
下载可执行文件(hello)到目标板
因为这里没有使用 NFS,所以需手动下载到目标板上,可通过tftp 下载。注:主机 IP 地址:09;目标板 IP 地址:44
host # cp hello /tftpboot target# cd /opt/test
target# tftp -g -r hello 09 target# chmod 755 hello
在目标板的 /opt/test 目录下得到 hello 可执行文件,并修改其权限,否则没有运行权限。
调试可执行文件(hello)
首先在目标板上运行 gdbserver,如下:
target# gdbserver 09:4567
target# gdbserver 09:4567 ./hello
Process ./sample created; pid = 658 Listening on port 4567
接下来,目标板一直处于监听状态。
host# armv5tl-montavista-linux-gnueabi-gdb ./hello注:以上命令中 gdbserver 后面跟的是主机
原创力文档


文档评论(0)