ADS下适用简易JTAG
- 格式:doc
- 大小:2.17 MB
- 文档页数:12
第1章ADS集成开发环境及JTAG仿真器应用 (2)1.2集成开发环境的组成 (2)1.1 ADSIDE简介 (2)1.1.1 CodeWarrior1.1.2 AXD调试器简介 (3)1.2 工程的编辑 (4)1.2.1 建立工程 (4)1.2.2 建立文件 (5)1.2.3 添加文件到工程 (5)1.2.4 编译连接工程 (6)1.2.5 打开旧工程 (8)1.3 工程的调试 (9)1.3.1 选择调试目标 (9)1.3.2 调试工具条 (9)1.4 DeviceARM2410专用工程模板 (10)1.4.1 为ADS1.2增加DeviceARM2410专用工程模板 (11)1.4.2 使用DeviceARM2410专用工程模板建立工程 (12)1.4.3 DeviceARM2410工程模板的应用配置 (13)JTAG仿真器的安装与应用 (20)1.5 Wiggler1.5.1 安装Wiggler JTAG仿真器 (20)1.5.2 使用Wiggler JTAG仿真器 (22)1.6 固化程序 (23)1.7 温馨提示 (28)第1章 ADS集成开发环境及JTAG仿真器应用ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。
ADS1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows XP、Windows2000以及RedHat Linux 上运行。
MagicARM2410实验箱可以使用JTAG进行仿真调试,推荐使用ADS1.2集成开发环境+Wiggler JTAG仿真器的调试方式。
本章将简单介绍使用ADS1.2建立工程,编译连接设置,调试操作等等。
最后介绍了DeviceARM2410专用工程模板的使用,Wiggler JTAG仿真器的安装与使用。
实验二JTAG下载和调试实验一、实验目的1、熟悉Multie-Server与JTAG下载的方法;2、熟悉ADS开发环境中“AXD Debugger”组件的使用;3、熟悉掌握ADS调试程序的方法。
二、实验内容1、正确连接实验系统硬件系统;2、使用Multie-Server建立主机与实验板的连接;3、学习下载工程到实验板;4、学习单步调试程序。
三、实验设备1、硬件:DM2410C实验系统;PC机;JTAG仿真器;串口线。
2、软件:PC机操作系统(WINDOWS 2000);ARM Developer Suite v1.2;Multi-ICE V2.2.5(Build1319);DNW2410(或超级终端)。
四、预备知识1、了解ARM体系结构;2、了解ARM汇编语言;3、掌握C、C++语言;4、掌握“实验一ADS开发环境实验”内容。
五、基础知识1、ARM JTAG接口电路JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG 测试工具对内部节点进行测试。
目前大多数比较复杂的器件都支持JTAG 协议,如ARM、DSP、FPGA 器件等。
标准的JTAG 接口是4 线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。
JTAG 测试允许多个器件通过JTAG 接口串联在一起,形成一个JTAG 链,能实现对各个器件分别测试。
JTAG 接口还常用于实现ISP(In-System Programmable 在系统编程)功能,如对FLASH 器件进行编程等。
通过JTAG 接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。
FPGA配置(AS、PS、JTAG)很多兄弟对于CPLD下JTAG的下载很熟悉了,可转到FPGA来的时候,多多少少有些迷惑,怎么出现配置芯片了,为什么要用不同的下载电缆,不同的下载模式?我就自己知道的一点东西谈一些个人的见解,并发一些资料.希望路过的朋友喝个采,版主给点威望.有问题大家也一起讨论,欢迎拍砖.1.FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。
AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持Cyclone系列。
使用Altera串行配置器件来完成。
Cyclone期间处于主动地位,配置期间处于从属地位。
配置数据通过DATA0引脚送入FPGA。
配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。
(见附图)PS则由外部计算机或控制器控制配置过程。
通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。
配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。
(见附图)JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。
FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。
在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。
在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设计所得的pof格式的文件烧录进去。
专用配置器件:epc型号的存储器常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等对于cyclone cycloneII系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的.注意,他们只适用于cyclone系列.除了AS和PS等单BIT配置外,现在的一些器件已经支持PPS,FPS等一些并行配置方式,提升配置了配置速度。
采用EasyJTAG调试程序西南科技大学信息工程学院张海涛制作1.安装工程模板将“LPC2200专用工程模板”文件夹下“LPC2200 Project module”和“LPC2200 Project module_new”中的文件夹拷贝到“C:\Program Files\ARM\ADSv1_2\Stationery”目录中。
2.安装EasyJTAG驱动1)首先将EasyJTAG_drive目录下的所有文件复制到ADS的BIN目录,如C:\Program Files\ARM\ADSv1_2\BIN2)在开始菜单中打开AXD调试软件。
图1 AXD程序调试环境3)对目标进行配置点击Options -> Configure Target…,进入目标设置界面图2 进入配置目标环境界面目标设置界面如下图所示,点击Add添加EasyJTAG驱动图3 配置目标环境添加JTAG驱动(a)图4 配置目标环境添加JTAG 驱动(b)图5 配置目标环境添加JTAG 驱动(c)点击“OK ”完成Easy-JTAG 驱动安装。
驱动文件EasyJtag.dll 可以从周立功光盘中找到,并将它拷贝到ADS 安装目录下的Bin 文件夹下面。
3.如何利用周立功ARM2200工程模板建立工程1)打开ADS 1.2集成开发软件点击开始->所有程序->ARM Developer Suite v1.2 -> CodeWarrior for ARM Developer Suite,如下图所示:图6 打开ADS 1.2集成开发软件图7 ADS 1.2集成开发软件界面2)用周立功LPC2200工程模板建立工程在D:\ARM2200目录下建立一个Test1的工程,如果D盘下没有ARM2200目录,先建立该目录。
点击file -> New,将弹出如下图的对话框。
图8 工程建立界面(a)选择工程模板类型为“ARM Executable Image for lpc22xx”,为工程命名如Test1,选择工程存储路径如D:/ARM2200,设置完成后点击确定,工程建立完成。
ADS_1.2使⽤指南中⽂版⼀步⼀步基于ADS1.2进⾏设计开发⽬录1 ADS1.2集成开发环境简介 (2)2利⽤H ELLOWORLD来学习使⽤ARMSYS (2)3编写好源程序代码 (3)4使⽤C ODE W ARRIOR建⽴⼯程并进⾏编译 (4)4.1调⼊模板或重新建⽴项⽬ (4)4.2在⼯程中添加源⽂件 (8)4.3进⾏编译和链接 (10)5使⽤AXD进⾏仿真调试 (11)5.1硬件准备 (11)5.2使⽤UART串⼝和超级终端进⾏系统调试 (11)5.3运⾏JTAG调试代理软件 (12)5.4调试器设置 (13)5.5调试器的使⽤ (15)5.6观察窗⼝ (16)5.7全速运⾏ (17)6 USB⼝下载⼯具 (17)7代码固化 (21)7.1空板烧录 (22)7.2 FLASH内代码的覆盖烧录 (22)1 ADS1.2集成开发环境简介ADS1.2是⼀个使⽤⽅便的集成开发环境,全称是ARM Developer Suite v1.2。
它是由ARM公司提供的专门⽤于ARM相关应⽤开发和调试的综合性软件。
在功能和易⽤性上⽐较SDT都有提⾼,是⼀款功能强⼤⼜易于使⽤的开发⼯具。
以下就我们对ADS1.2进⾏⼀些简要的介绍。
ADS囊括了⼀系列的应⽤,并有相关的⽂档和实例的⽀持。
使⽤者可以⽤它来编写和调试各种基于ARM家族RISC处理器的应⽤。
你可以⽤ADS来开发、编译、调试采⽤包括C、C++和ARM汇编语⾔编写的程序。
ADS主要由以下部件构成:n 命令⾏开发⼯具;n 图形界⾯开发⼯具;n 各种辅助⼯具;n ⽀持软件。
其中重点介绍⼀下图形界⾯开发⼯具。
n AXD提供给基于Windows和UNIX使⽤的ARM调试器。
它提供了⼀个完全的Windows和UNIX环境来调试你的C, C++, 和汇编语⾔级的代码。
n CodeWarrior IDE 提供基于Windows使⽤的⼯程管理⼯具。
它的使⽤使源码⽂件的管理和编译⼯程变得⾮常⽅便。
【原创】Jlink在ADS下的配置说明及常见问题解决办法Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj参考⽂档:*1、TQ2440开发板使⽤⼿册V3.2_20121203.pdf2、JLINK ADS 2440.pdf注:1、本说明是针对S3C2440⽽写的。
其他的配置基本⼀样,就是型号要改。
我会在⽂章中说明,反正出现的问题都差不多。
2、针对裸板开发及笔记本的J-Link与开发板的连接及配置的⼀些问题进⾏总结跟解决。
裸机下开发软件⽤的是ARM Developer Suitev1.2(ADS)。
3、重点在于JLink 的配置问题上,把我遇到的问题说明,欢迎补充!最近搞了好⼏天的J-Link调试,找开发板的技术也没解决。
在⽹上找了好多⼈家的经验。
把⾃⼰⼀步⼀步的问题都解决了。
其实还是卡在了最后⼀步上,⽹上也搜不到这样的问题,估计也是偶然性的问题,最后算是凭着运⽓搞定了吧。
⽆⽐欣喜。
我想对S3C2440⽤ADS开发及J-Link调试下的⼀些注意点做⼀下总结,也希望对看到的⼈有所帮助。
欢迎分享!⼀、编译源代码、⽣成bin软件:ADS1.2 很简单,没什么要注意的。
最后破解⼀下就可以。
装完后在开始菜单下有⼀个ARM Developer Suite v1.2⽬录,打开,我们⽤的是⾥⾯的第⼀AXD Debugger(AXD)跟第⼆个CodeWarrior for ARM Developer Suite(IDE),IDE就是源代码编译⽣成bin的。
1、 IDE相关配置a、新建⼯程,选可执⾏镜像。
再新建或直接添加代码。
代码的管理也很简单。
*b、建好的⼯程下有⼀个***.mcp(mcp是⼯程名,以后直接打开它即可,也可以直接拖拽)的窗⼝,点击DebugRel Setting(我们这⾥默认的是DebugRel,⽣成的bin⽂件也在那⾥⾯)在弹出的设置对话框⾥做如下设置:1、 Target->Target Setting要改Post-Linker(ARM fromELF)2、Language Setting ⾥都改成ARM920T,其他型号的内核也做相应的改动。
JTAG使用说明遵循JTAG的器件包含以下几个管脚TCK 测试时钟输入,它和系统时钟不同TDI测试数据输入,通过它数据移位进入器件TDO测试数据输出,通过它数据从器件移出TMS测试模式选择,在JTAG规范中TMS命令选择测试模式TRST测试复位输入,它为TAP控制器提供异步初始化器件的测试支持功能是通过TAP控制器来实现的。
TAP是一个状态机,它控制控制所有相关操作,每种遵循JTAG的器件都有自己的TAP控制器,通过TCK和TMS可以使状态机内部的状态发生变化,从而支持诸如断点、单步、内部观察等调试工作。
本章针对ARM7TDMI介绍调试结构。
ARM的调试体系采用协议转换器来使调试器通过JTAG与ARM核直接通信。
前面JTAG标准中提到的扫描链功能是测试用,这里把它作为调试用:捕获数据总线上的信号并向内核或存储器插入新的信息。
ARM7TDMI-S核内具有EmbeddedICE逻辑,EmbeddedICE逻辑提供对片内调试的支持。
调试指令直接通过扫描链插入ARM内核并执行。
根据插入调试指令的不同,内核可以处于观察、保存或改变状态。
ARM的调试体系可以使程序指令执行速度处于调试速度或全速运行。
在ARM中采用JTAG的特点是:通过JTAG接口可以观察ARM内核状态和系统状态(注意:系统状态包括片内外设,不同于内核状态);不占用额外的目标系统资源;提供传统的断点访问和观察点访问;不再需要另外的UART端口来和监控程序通信。
围绕ARM内核有两个扫描链:围绕整个内核外围的一个扫描链以及仅仅覆盖数据总线和断点的扫描链。
由于后者的链比较短,从而使调试指令和数据可以快速插入内核,避免了额外的时间ARM系统的JTAG接口的设计不当往往使硬件系统无法调试,所以在设计ARM系统前要先熟悉ARM系统的JTAG接口的定义和常见问题。
1.ARM系统的JTAG接口是如何定义的?每个PIN又是如何连接的?下图是JTAG接口的信号排列示意:接口是一个20脚的IDC插座。
73技术研发Technology Research0 引言ARM ADS全称为ARM Developer Suite(ARM开发套件)。
是ARM公司推出的ARM系列处理器集成开发工具,使用非常广泛,目前最高版本的是1.2[1],它取代了早期的ADS1.1和ADS1.0。
它除了可以安装在Windows NT4、Windows98和Windows95操作系统下,还支持Windows XP 和Windows Me操作系统。
ADS由命令行开发工具、ARM实时库、GUI开发环境(CodeWarrior和AXD)、实用程序和支持软件组成。
有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。
命令行开发工具完成将源代码编译,连接成可执行代码的功能,包括:armcc、armcpp、tcc、tcpp、armasm、armlink、armsd。
其中armcc用于将ANSI C编写的程序编译成32位的ARM指令代码[2]。
支持编译C和C++代码的运行时库有:ANSI C库函数、C++库函数。
ADS的CodeWarrior集成开发环境(IDE)是基于Metrowerks CodeWarrior IDE4.2版本的,经过适当的裁剪以支持ADS工具链,为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS 的CodeWarrior IDE为ARM和Thumb处理器开发用C、C++或ARM汇编语言的程序代码,缩短了用户开发项目代码的周期。
ADS中包括3个调试器:AXD(ARM Extended Debugger)、ARMSD(ARM Symbolic Debugger)、ADW/ADU (Application Debugger Windows/Unix)。
在软件开发的最初阶段,可以使用调试器进行仿真来测试所开发的软件是否达到了预期的效果。
在数据采集的实际开发应用中,串口通信是不可缺少的部分,它是目前嵌入式系统与PC机间的一种非常重要且普遍使用的通信方式[3]。
ADS的调试全部是通过AXD来调试,一种是使用模拟器在本机运行,但这一般只能用于ARM指令的测试。
并不能控制外设。
并通过外设反应来验证程序正确。
跟真正的ARM设备进行在线调试了,则需要外部设备
AXD为了与各种不同ARM设备互联,制定一个RDI(Remote Debug Interface)标准接口,通过标准接口.去调用一个特定还需通过一个调试代理软件(Debug Agent)来进行访问设备。
这样可以让AXD无需了解各种硬件的细节.不论如是用并口,还是USB的接口,都可以通过统一的RDI接口与Debug Agent 相连.这样结构比较灵活.
常用的Debug Agent软件有BANYANG ,ARM7,H-jtag.这一些软件都通过一定标准JTAG口与ARM设备进行通讯。
与QQ2440通讯都是采用H-Jtag这个免费的代理软件。
并且需要PC机上有并口。
这个方案的特点是硬件极为简单。
代理软件也是免费使用,因此有成本低的优点。
但缺点下载速度慢,超过几十K的程序下载极为缓慢.
但现在很多PC机都取消并口,特别是笔记本,基本都没有并口。
因此可以有如下代替方案。
PCMIA转并口
现在大量的机器,特别是笔记本已经取消串口和并口。
市面上还有支持USB转JTAG的产品—U-Link.但这一只能用在Keil for ARM上,ADS无法使用。
并价格比较贵。
我们在市场上发现了一种PCI-Express卡能比较好解决没有并口和串口的问题,如果是笔记本并有PCMIA接口(一般这是标准接口)。
可以使用PCI Express转并/串口.以下是在笔记本成功使用并口的转接卡。
它可以通过不同的转换线,转换成串口或并口。
并且我们已经成功用H-Jtag 进行调试。
在安装额外的驱动后。
在WINDOWS下会显示.而且市面上常见的USB转并口线只合适于并口打印机,并不能进行调试。
而且这个转换卡价格不贵。
因此是嵌入式开发人员首选的转换设备
JTAG接口
JTAG(Joint Test Action Group )是1985年制定的检测PCB和IC芯片的一个标准,是芯片厂商是用于在线芯片检测的接口. JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。
1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。
通过这个标准,可对具有JTAG接口的芯片的硬件电路进行边界扫描和故障检测。
他早期的目的是为了IC的生产线上对IC作自动检测。
后来才发展一个调试接口。
JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG 接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。
JTAG现在变成CPU的标准的接口,除了用于芯片检测外, JTAG接口还常用于实现ISP(In-System Programmable�在线编程),对FLASH等器件进行编程。
,即常说的在线调试和在线烧录Flash
JTAG在HOST端通常用并口与之相连.也有与USB接口相连的(如U-Link 产品),我们教学是采用并口与开发板上的JTAG相连.
H-Jtag简介
市面上硬件仿真器(ICE)的成本都太高,有多达几千一个. 。
而简易仿真器的出现,使得大家可以使用甚至自制ARM仿真器硬件。
有了调试器的硬件,还要加上调试代理软件,作为中介,将调试器前端软件(比如AXD)的调试信息与目标板上的目标芯片交互,才能最终完成仿真的任务。
目前,可以免费使用的简易ARM仿真器的代理软件很多,差别也比较大,主要表现在易用程度,目标器件支持,调试速度等方面。
H-JTAG 作为近来新推出的简易ARM 仿真器调试代理,其支持器件比较多,支持的调试器前端软件也比较多,特别是支持keil,ADS,其调试速度也很有优势。
⏹1。
支持RDI 1.5.0 与1.5.1;
⏹ 2. 支持ARM7 与ARM9(包括ARM9E-S 与ARM9EJ-S);
⏹ 3. 支持thumb 与arm 指令集;
⏹ 4. 支持little-endian 与big-endian;
⏹ 5. 支持semihosting;
⏹ 6. 支持wiggler, sdt-jtag 以及用户自定义的简易调试器硬件接口;
⏹7. 支持WINDOWS 9.X/NT/2000/XP;
⏹8. 支持flash器件的编程
简易调试器的意思就是指利用一个低成本并口转JTAG的硬件就能直接进行调试,优点是成本低,缺点也很明显,在调试较大的程序里(超过1M),速度很慢。
这里可能使用较昂贵的ICE比较合适
基于AXD-H-Jtag的调试环境
注意在这个调试环境中,在target端不是需要运行软件的,全部的响应是硬件来支持的。
1.连线
这里不需要安装特殊的并口驱动。
H-Jtag能直接驱动并口。
将JTAG->并口转换头分别接入板上JTAG口和PC机上并口.
一般的ARM设备往往运行相应Linux操作系统,这时可能会与正在调试的ADS起冲突。
为了防止冲突,要求一开始进行bootloader控制台。
QQ2440在超级终端下,长按空格键的同时按reset进入Bootloader(VIVI)的控制台(出现下图表示进行VIVI)
在mini2440下可以直接用Nor Flash启动,这样可以有效避免内存的中的Linux与ADS调试程序的冲突.
2.配置H-jtag参数
接下来配置H-jtag的线序,不同公司的开发板有不同线序,而QQ2440要用特定的线序,参考如下设置自己的H-Jtag。
注意只需要配置一次即可。
3.连接ARM设备
配置完后,开始跟开发板相连,选择菜单栏OPERATIONS->DETECT TARGET 如果界面上出现蓝色的CPU 类型和CPU ID表示连接成功
3.在AXD中注册H-Jtag这个代理
运行AXD,首先要添加H-JTAG为新的target。
点击Option Config Target->选择add
添加H-JTAG 安装目录下的H-JTAG.dll为新的target
点击“打开”,H-JTAG即会被添加为一个新的target,效果如图:
当AXD 连接上H-JTAG 之后,H-JTAG 下方的状态栏会有详细的显示,包括调试器前端软件的名称,RDI版本等
此时AXD也处于就绪状态,通过点击File Load Image…载入欲调试的axf 文件即可
当出现这一步,表示整个调试环境创建成功,可以进行调试了。
AXD调试MyLed实例
我们以MyLed测试为例,作一个AXD调试实例.将开发板上电,进入超级终端的VIVI状态.首先将H-jtag的Discable Vector Catch去掉,这样才可以设置断点.运行H-jtag 检测到开发板
首先在AXD选择Options->configure Target 中,H-jtag作调试代理
选择target 后,AXD处理就绪状态,并能检测到H-jtag的信息
第一次装入Image时,AXD提示要找到s3c2410init.s ,可在项目目录找到这一文件并装入用open->files…菜单打开主执行函数main.C
一般单步调试,都要设置断点.AXD会自动在主函数第一句设置断点
如果没有设上,可以手工设置断点,可以按文件和行来设置断点
开始调试
●按RUN菜单进行调试.这时主函数有断点话,会在第一个断点停住,这里可
以用单步调试一步一步执行.
●当运行如图语句时,超级终端会有相应提示
ADS查看内存
保存当前设置
●你可以选择Save Session …将当前状态保存下来,如target,断点设置.
寄存器值等保存下.
●在下次调试时用Load Session 把保存状态恢复
ADS对中文路径BUG
●如果项目文件路径包含中文路径.
–双击或拖拽MCP文件将会报错
●全英文路径无此问题
–只能先打开ADS,用open对话框打开
●在ADS调试按钮调用AXD
–如果包含中文路径,每次都报打不开default-1-2-3.ses文件,这样每次都要手工重配一次AXD
–如果在中文路径下创建项目,在移动到全英文路径仍然会报同样错误
–全英文路径创建项目,只需配置一次,每次都自动打开相应Session文件.
●因此推荐在英文目录下编译。