微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AT91RM9200引导程序的建立(一)建立交叉编译工具链

AT91RM9200引导程序的建立(一)建立交叉编译工具链

时间:11-09 来源:互联网 点击:

[root@localhost]make

[root@localhost]make install

顺利的话,则在gdb6.6下生成新的目录,其中gdb工具就在bin目录下。

[root@localhost]ls –l /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/gdb6.6

/bin

总用量30476

-rwxr-xr-x1 rootroot14335251 12月29 15:53 arm-softfloat-linux-gnu-gdb

-rwxr-xr-x1 rootroot14335296 12月29 15:53 arm-softfloat-linux-gnu-gdbtui

-rwxr-xr-x1 rootroot2489663 12月29 15:52 arm-softfloat-linux-gnu-run

同样在环境变量中添加gdb的路径

[root@localhost]export PATH=$PATH :/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/gdb6.6/bin

今后调试程序的时候,用arm-softfloat-linux-gnu-gdb来调试。

gdbserver的编译

[root@localhost]cd gdb-6.6

[root@localhost]cd gdb/gdbserver

[root@localhost]./configure --target=arm-softfloat-linux-gnu–-host=arm-softfloat-linux-gnu

[root@localhost]make CC=/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc

如果不出错的话,将在当前目录下生成两个可执行文件:gdbserver和gdbreplay。以后就可以用gdb+gdbserver调试我们开发板上的程序了。至此,我们的交叉编译工具链已经基本建立。可以用来作为我们bootloader的编译环境了。

GDB+GDBServer的使用

在目标系统上启动gdbserver,其实就是在超级终端下或者minicom下启动gdbserver。这里将gdbserver放在宿主机的NFS设置的共享目录下/home/zzl,该目录挂载在目标板/work下。宿主机的ip为192.168.1.1,目标板的ip为192.168.1.33

超级终端或者minicom下

[root@localhost]cd /work

[root@localhost]./gdbserver 192.168.1.1:1234 hello

出现提示:
Process /work/hello created: pid=69
Listening on port 1234

这时切换到宿主机的控制台,运行

[root@localhost] arm-softfloat-linux-gnu-gdb hello

(gdb)target remote 192.168.2.33:1234

出现提示:
Remote debugging using 192.168.1.33:1234
[New thread 80]
[Switching to thread 80]
0x40002a90 in ??()
同时在minicom下提示:
Remote debugging from host 192.168.2.100
(gdb)
连接成功,这时候就可以输入各种gdb命令如list、continue、next、step、break等进行程序调试了。

对于GDBServer出现的问题

1.GDBServer调试时出现packet error问题。

主要是虚拟机与目标机的网络连接要经过windows,数据包容易丢失。换到Linux系统下则恢复正常。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top