软件:红帽企业版v6.3、arm-linux-gcc交叉工具链、arm-linux-gdb-7.5、JLink_Linux_V434a、eclipse(我会把相关的软件包放到云盘中,需要的可以直接下载 http://pan.baidu.com/s/1eQu7igy)
-
连接USB串口线,通过串口终端使ARM停在u-boot,如下图。U-boot可以帮助初始化硬件环境。但不能加载操作系统。如果加载操作系统,会在调试汇编代码时对内存有保护,出现无法访问内存的问题。
-
安装JLink的驱动,JLink_Linux_V434a。
-
进入软件包中,如下图
-
运行cp -d libjlinkarm.so* /usr/lib/ -f和cp 45-jlink.rules/etc/udev/rules.d/。复制库文件到相应的文件夹下。也可以直接运行./build,执行脚本命令。
-
连接硬件JLink到电脑上,我的红帽操作系统安装在虚拟机上,要把JLink的USB引入到红帽系统中。
-
执行./JLinkGDBServer,测试JLink是否安装成功。如果成功会出现下图。找到一个JTAG设备Cortex-A8。应为我的JLinkGDBServer版本比较低,所以显示的是Cortex-A8。实际上0x4BA0047是Cortex-A9的ID。经过测试,下载也没有问题。所以这里可以不用管。(注意在连接上后,不要关闭窗口)
-
-
安装arm-linux-gdb-7.5
-
进入arm-linux-gdb-7.5文件夹中,执行以下命令,也可直接运行./bulid
-
tar -xvzf gdb-7.5.tar.gz
cd gdb-7.5
./configure --target=arm-linux --prefix=/opt/arm-linux-gdb/ -v
make && make install
-
在/root/.bashrc 中添加路径export PATH=$PATH:/opt/arm-linux-gdb/bin/
-
然后运行arm-linux-gdb会看到如下信息,注意版本号是7.5。说明arm-linux-gdb-7.5安装正确(运行quit退出arm-linux-gdb,这个软件可以退出)
-
-
配置eclipse
-
执行./eclipseq启动eclipse,注意第一次启动需要设置工作空间,设置完后会启动失败,再次启动就没问题了。
-
打开 eclipsec 后,选择 Help->install New Software...在 Work with 位置输入http://com.zylin.cdt.feature依指示完成安裝。如下图
-
选择File->New->Makefile Project with Existing Code。创建一个工程,我会把测试代码放到云盘中。如下图
-
修改makefile文件中的0x40008000地址为你的处理器对应的内存地址。否则会出现Cannot access memory at address 0xXXXXXXXX的错误。
-
选择Project->Bulid All,编译工程。如下图
-
Run->Debug Configrations 如下图。注意图一需要加入的elf文件。
图二需要加入的是arm-linux-gdb,和去掉stop on startup at的勾
图三需要加入如下信息
# connectto the J-Link gdb server
targetremote localhost:2331
# SetJTAG speed to 30 kHz
monitorendian little
monitorspeed 30
# Resetthe target
monitorreset
monitorsleep 10
# SetupGDB for faster downloads
#setremote memory-write-packet-size 1024
monitorspeed auto
break_start
load
-
然后选择Debug,出现如下图
-
恭喜,Enjoy!
用了两天的时间搭建环境,也遇到了不少问题。在我网上也试了很多别人的方法,不断发现问题,解决问题。每个人的具体环境都不同,所以需要耐心去解决这些问题。最重要的是相信你自己,无论有多困难,都能解决。那么问题也就不再是问题了。最后感谢那些写技术博客的博主,你们的经验,让我站在了巨人的肩膀上去学习。
参考资料:
1、国嵌视频Eclipse集成开发环境
2、http://blog.csdn.net/kangear/article/details/8639398
3、http://blog.csdn.net/kangear/article/details/8635029
4、http://blog.163.com/nesnil@126/blog/static/380812982012223104416462/