在一般ARM编程教学和实验环境里,一般采用 ADS加+并口转Jtag板+H-Jtag的开发环境。但是这种方法最大缺点是需要机器上有一个并口。现在无论PC还是笔记本都很难有并口,因此采用USB接口调试器就大行其道。其中Segger的JLink是比较有名和方便的调试器。
ADS 1.2 ,可以如下链接下载
http://esoft.mcu123.com/MCU123_temp_0080309@/ARM/ads1.2.rar
硬件可以参考这个
http://s.click.taobao.com/t_1?i=qz0qHj7qltKQRQ%3D%3D&p=mm_11796696_0_0&n=11
一.J-Link的安装
首先要安装驱动。可从官方网站下载http://www.segger.com/cms/jlink-software.html
我下载最新驱动4.14d ,http://www.segger.com/cms/admin/uploads/userfiles/file/J-Link/Setup_JLinkARM_V414d.zip (最后测试这一个版本在AXD无法使用,总是程序死掉)
我最后成功是老的版本4.02d,这个版本基本上可以保证是正常使用。
关于segger的老版本都集中放在这里
http://www.segger.com/cms/j-link-older-versions.html
我用的是4.02d这个驱动
http://www.segger.com/cms/admin/uploads/userfiles/file/J-Link/Setup_JLinkARM_V402d.zip
图形安装程序一路next即可。
1.1 测试PC机与J-Link的联接
驱动安装后在主菜单会有Segger->J-Link ARM 4.02d 的菜单。
将JLink的USB接口接在PC机上(jtag那一头可先不接开发板),正常情况下,Windows会提示发现硬件并自动安装硬件。运行J-Link GDB Server程序。会有如下界面
1.此时再将J-Link上的Jtag线转接到开发板,我用的是TQ2440;
2.开发板上电后不要进入操作系统(Arm-Linux或WinCE),因此它可能会与仿真软件有冲突,比较简单方法是切换到Nor flash启动模式,这个模式通常不会进入OS;
3.接入JLink后,LCD将不会有显示,这是正常现象。
再次运行GDB Server.正常联接会有如下提示
并且联接上开发板时,J-Link GDB 会自动执行J-Link Control Panel 界面如下。
(注意要正常用gdb,一般要手工把字节序调成Little Endian,这里一下用不上,就无所谓了)
经过这样测试表示,J-Link整体工作正常。
二.ADS中用J-Link调试程序
2.1 用ADS打开项目源码
在ADS上用打开测试项目,我一般用教学的LED项目。编译后,选择调试按钮进入AXD调试界面,第一次使用AXD一般会出错,可以不管错误直接按2.2,2.3步来配置即可
2.2 配置AXD interface (必须配置!)
选择AXD主菜单的Options->Configure Interface ...。
配置两项,一是General 通用页标签中,Target connection选择HALT模式
二是AXD初始化时,配置SDRAM的地址。
可以把配置命令写在一个脚本里。在AXD中设为初始化脚本。
方法,选择configure Interface -->Session File--> Run Configuration Script.
添入SDRAM初始化脚本2440init.txt全路径(注意路径不要带中文,为防止格式错误最好用附件自带的)
2440init.txt内容如下
setmem 0x53000000,0x00000000,32 setmem 0x4a000008,0xffffffff,32 setmem 0x4a00001c,0x00007fff,32 setmem 0x48000000,0x2212d110,32 setmem 0x48000004,0x00000f40,32 setmem 0x48000008,0x00002e50,32 setmem 0x4800000c,0x00002e50,32 setmem 0x48000010,0x00002e50,32 setmem 0x48000014,0x00002e50,32 setmem 0x48000018,0x00002e50,32 setmem 0x4800001c,0x00018005,32 setmem 0x48000020,0x00018005,32 setmem 0x48000024,0x00960542,32 setmem 0x48000028,0x00000032,32 setmem 0x4800002c,0x00000030,32 setmem 0x48000030,0x00000030,32 |
2.3 配置J-Link的RDI接口
在AXD调试界面。选择AXD主菜单的Options->Configure Target...。
选择sigger安装目录下的JLinkRDI.dll。这一步是让AXD调用J-Link的DLL来调试。 RDI是(Remote Debug Interface 和简称,是ARM公司设计用于其它调试器与AXD通讯的协议。
配置完后应该可以直接在J-Link调试,如果你没有相关经验,可以关掉AXD,重新执行2.1步来调试程序
2.4 AXD调用J-Link调试界面
我测试是完整2440测试程序,643k的axf测试程序一瞬间就下载完毕即可调试,这用并口调试时不可想象,用并口可能几分钟都没下完,而且单步调试非常之慢。而且J-Link来调试则完全没有这一个问题。速度非常之快。
在调试时,J-Link的Control panel 将自动打开