网络上流传了很多用openjtag+Eclipse调试mini2440流水灯的文章,实践过程中并不一帆风顺,有很多问题。
软件的版本是个很大的问题,网络的文章很多是用一两年前的版本,本人历来喜新不厌旧,一般首选最新版,
旧版做替补。
首选要做的是安装JTAG工具
山寨版Jlink遇到了很多问题,对gcc工具链不熟悉,解决这些问题很恼火。淘宝上有用FT2232制作的openjtag,配合openocd很好用。
sudo cp 50-ftdi.rules /etc/udev/rules.d/
50-ftdi.rules在openjtag附送的光盘里可以找到。
Eclipse、openocd 和arm-linux-gcc之前装好了:
Eclipse、openocd可以用“新立得”安装,Eclipse还需要安装GNU ARM Eclipse Plug-in。
GNU ARM Eclipse Plug-in 的下载地址:http://sourceforge.net/projects/gnuarmeclipse/
arm-linux-gcc 是友善提供的,版本比较新,比较稳定。
openjtag附送的光盘提供了所有源码。只需在Eclipse里建立工程,配置debug就可以调试了。
1. 建立工程。选择Makefile 空工程。这次不使用Eclipse自动生成的Makefile。
2. 将这些文件拷贝到工程目录下,按F5刷新。
3. 编译。如果报错,检查是不是遗漏了文件。
4.配置debug
4.1 新建一个 GDB hardware debugging 调试器。先选择工程,之后选择elf文件。
4.2 配置 debugger参数:使用arm-linux-gdb 调试器,IP端口是 localhost 3333
4.3 填写startup
4.4 保存退出。
5. 用openjtag连接mini2440
sudo openocd -f openjtag -f samsung_s3c2440.cfg
6. 在telnet里面halt cpu,不知为何必需手动halt,否则有时可以正常调试有时不行。
telnet localhost 4444
>halt
>arm920t cp15 2 0
7. debug
补记:zylin的源
http://opensource.zylin.com/embeddedcdt.html
在nor flash不能调试,在Nand flash调试正常。
用新立得安装的openocd(3.0.1)不支持monitor arm7_9 sw_bkpts enable,win7下的 0.4.0 with GUI 支持该命令。
调试过程正常,只是必须手动 halt 后 arm920t... 否则不能调试。