实验二 JTAG下载和调试实验.docx
- 文档编号:9511403
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:22
- 大小:1.36MB
实验二 JTAG下载和调试实验.docx
《实验二 JTAG下载和调试实验.docx》由会员分享,可在线阅读,更多相关《实验二 JTAG下载和调试实验.docx(22页珍藏版)》请在冰豆网上搜索。
实验二JTAG下载和调试实验
实验二JTAG下载和调试实验
一、实验目的
1、熟悉Multie-Server与JTAG下载的方法;
2、熟悉ADS开发环境中“AXDDebugger”组建的使用;
3、熟悉掌握ADS调试程序的方法。
二、实验内容
1、正确连接试验系统硬件系统;
2、使用Multie-Server建立主机与实验板的连接;
3、学习下载工程到实验板;
4、学习单步调试程序。
三、实验设备
1、硬件:
JX44B0实验板;
PC机;
JTAG仿真器;
2、软件:
PC机操作系统(WINDOWS2000);
ARMDeveloperSuitev1.2;
Multi-ICEV2.2.5(Build1319);
四、基础知识
1、了解ARM体系结构;
2、了解ARM汇编语言;
3、掌握C、C++语言;
4、掌握“实验一ADS开发环境实验”内容。
五、实验说明
1、ARMJTAG接口电路
JTAG(JointTestActionGroup,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(TestAccessPort,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。
目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。
标准的JTAG接口是4线:
TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。
JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。
JTAG接口还常用于实现ISP(In-SystemProgrammable在系统编程)功能,如对FLASH器件进行编程等。
通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。
目前JTAG接口的连接有两种标准,即14针接口和20针接口,其定义分别如下所示。
14针JTAG接口的定义:
20针JTAG接口定义:
2、ARMJTAG的主要特征:
——支持所有内建embedded-ICE逻辑单元的ARM处理器;
——支持多个内核系统;
——连接简便兼容不同电压的目标系统;
——除JTAG扫描链外不占用目标板上的其它任何资源;
——支持实时硬件断点;
——用户可通过JTAG修改寄存器存储器内容;
——支持程序下载及实时调试;
——通信速度快最高可达10Mbpps;
——JTAG速度可配置以满足不同调试对象的需求;
——支持所有符合RDI1.50或RDI1.51规范的调试工具软件;
——提供丰富的例程和使用说明;
——支持多种目标平台如ATMELSamSungIntelPhilipsSharpCirrusLogicTricend等;
——体积轻巧性能稳定
3、Multi-ICEServer简介
Multi-ICEServer是由ARM公司提供的Windows操作系统下ARMJTAG的配置程序。
通过它可以使ARMJTAG与目标板建立通讯连接,并能够反馈目标板上ARM处理器的硬件信息。
Multi-ICEServer可以适应大多数JTAG仿真器而不需要其它特别的驱动。
这个软件为主机(上位机)和实验板(下位机)之间打建了软件的桥梁(硬件的桥梁就是仿真器)。
在工程的下载,调试,单步运行中这个软件要始终打开。
Multi-ICEServer的主界面如下图所示:
在左上方是工具栏,总共四个功能按钮:
在此上方是六个菜单选项,这里主要介绍几个重要的设置菜单:
1)File菜单:
●LoadConfiguration——读取用户指定的配置文件,对仿真器进行手动配置;
●Auto-Configure——自动检测和配置目标系统;
●Auto-Configureat20KHz——自动检测和配置目标系统,并且设置TCK信号的频率为20KHz;
●ResetTarget——对目标系统复位有效的复位信号在Setting/JTAGsettings菜单或配置文件中设置;
●Log——输出信息存储到指定的日志文件中;
●SetLogFile——用于指定日志文件的路径和名字。
2)View菜单:
用于控制Multi-ICE程序界面外观和显示信息。
●Toolbar——关闭或打开工具栏;
●StatusBar——关闭或打开状态栏;
●RPCCalls——允许或屏蔽RPC信息在调试信息窗口中显示。
3)RunControl菜单:
用于控制各个处理器的运行和停止。
●Independent——使每个目标系统直接相互独立,不进行交互通信,缺省状态有效;
●AllRun——启动所有的目标系统;
●AllRun/Stop——当收到一条启动指令时启动所有的目标系统;当任何一个目标系统停止时其它的系统也一起停止;
●Custom——执行用户自定义的设置;
●Set-upCustom——打开用户自定义设置窗口,设置各个目标系统之间的交互方式;
●LoadSettings——读取以前保存下来的设置文件;
●SaveSettings——把当前设置保存到文件。
4)Connection菜单
这个菜单在调试程序和Server建立连接之后才有效。
它会给每一个TAP控制器分配一个菜单项,为用户提供单独删除某个TAP控制器的选项。
5)Setting菜单:
用来设置各种接口信息。
●PortSettings——显示并口设置对话框,用来选择并口的地址和是否使用4-bit通信模式,同时显示当前的并口类型设置(在PC机的BIOS中要把并口模式选择为EPP);
●UserOutputBits——当前版本的Server程序保留使用;
●JTAGSettings——显示JTAG口的设置对话框,用来设置JTAG口相关的时序信息和复位行为。
如果调用了配置文件则相应的设置会在窗口中反映出来;
●Start-upOptions——显示设置启动选项的对话框。
Multi-ICE的各种状态
在Multi-ICEServer的TAP信息显示区可以直观的显示当前系统状态。
各状态的图示如下:
1)配置后的状态
通过自动检测,在TAP配置显示区用图形的方式直观的显示出了检测结果。
内核的类型名称ARM7TDMI显示为绿色,并且前面有一个表示内核状态的字母[X],表示Multi-ICEServer目前还没有连接到任何调试程序中,处理器类型未知或没有被调用。
另外,双击处理器类型名字会弹出目标处理器附加信息窗口:
2)连接后的状态
如果有调试程序通过MultiICE.dll与Multi-ICE建立了连接,则Multi-ICE的状态如下图所示。
字母[S]表示已建立连接但处理器正处于暂停空闲状态。
处理器名字变为红色,同时信息窗口中的信息增加了相应的内容。
3)激活后的状态
Multi-ICE的活动状态有下载和运行两种。
下载时的字母是[D],表示处理器处于下载状态;运行时的字母是[R],表示处理器处于运行状态。
当下载操作完成或停止运行后状态字母马上变回[S]。
下图是处理器运行时的界面:
Multi-ICEServer中的JTAG参数设置
1)并口设置
并口设置菜单位于Settings>PortSettings。
如下图所示,PortAddress选择使用的并口地址有三个可选项:
AUTO(自动选择系统默认选项)、LPT1、LPT2;
Force4-bitaccess使用4-bit的数据传输方式;
CurrentportMode显示并口类型,显示BIOS中并口设置状态为只读选项。
【注意】并口类型是在PC的BIOS中进行设置的,通常提供四种类型:
Basictype(部分BIOS提供值为Default或SPP等)、EPP、ECP、EPP+ECP。
由于ARMJTAG使用双向的并口数据总线,通常ECP或EPP类型能够符合要求,但在一些比较新的BIOS版本中可能要选用基本类型而不是ECP或其它增强型。
由于历史上的原因,并口规范和IEEE1283协议的执行存在弹性,所以不同计算机主板厂商在并口设计上存在一些差异。
当第一次使用ARMJTAG时需要对并口类型设置多作几次试验,目前我们推荐用户选择EPP类型。
2)时钟设置
时钟设置菜单位于Settings>JTAGsettings。
如下图所示,JTAGBitTransferTiming设置TCK信号频率,如果需要手动设置请参见本实验说明书后面的TCK频率设置表;
Behavior选择使用RTCK功能;
ResetBehavior选择哪组信号在按下复位按钮后有效。
3)启动选项设置
启动选项设置菜单位于Settings>Start-upOptions,这部分用来设定Multi-ICE启动时的参数和选项。
如下图所示,AllowNetworkConnections使用网络连接功能,启动时自动检测网络设置情况;
StartPortmapService仅在前一项选中时有效;
Start-upConfiguration设置Multi-ICEServer程序启动后自动执行的操作。
六、实验步骤
1、正确连接硬件
如下图连接硬件:
(图中电源有错误,仿真器用9V,ARM7板用7.5V)
其中并口线用于连接主机与仿真器,扁平电缆用于连接仿真器与实验板。
实验板用7.5V直流电源,仿真器使用9V直流电源,接口内正外负。
连接电源,并打开仿真器和实验板的电源。
注意:
应该先连接硬件再接通电源。
JTAG接口严禁带电热插拔!
!
2、Multi-ICEServer的配置
Multi-ICEServer在运行时需要目标处理器的配置信息,比如内核类型和IR指令寄存器长度等等。
对Multi-ICEServer进行配置有自动配置和手动配置两种方式:
自动配置可以在Multi-ICEServer程序中选择File>Auto-configure菜单,或者工具栏上的自动配置按钮;手动配置是通过调用一个用户预先定义好的配置文件来完成对Multi-ICEServer的配置。
配置文件为文本格式文件,文件后缀名为.cfg。
配置文件可以从File>Loadconfiguration菜单中调入。
如果目标处理器是ARM族的内核,那么ARMJTAG能够自动检测到并进行相应配置,同时把结果显示在Multi-ICEServer的显示窗口中。
但有时候检测ARM710T/720T/740T/940T这一系列内核时会返回一个UNKNOWN结果,这是ARM报告的一个硬件bug,这时候就只能使用手动配置的方法。
经过自动配置后JTAG的通信速率会自动设置为10MHz用户可以在Settings>JTAGSettings菜单中按自己的要求选择合适的速率。
3、AXD中硬件的连接设置。
打开“AXDDebugger”:
出现下面界面:
如上图点击Options—CongfigerTarget.出现下面对话窗:
在弹出的对话框中调入MultiICE.dll文件,就可完成对目标处理器的设置。
此设置只需在第一次使用时进行。
第一次使用时,点击右边的Add按钮,在Multi-ICEServer的安装目录下(例如:
C:
\ProgramFiles\ARM\Multi-ICE)找到MultiICE.dll文件,并添加到TargetEnvironments中。
添加后如下图所示。
点击右边的Configure按钮,弹出如下图所示的设置窗口。
在Selectanewprocessor中选择对应的处理器,点击确定按钮,完成设置,也即完成了AXD与Multi-ICE的连接。
此时,Multi-ICEServer的TAP控制器配置显示区的状态字母为[S],处理器名字也由绿色变为红色。
4、下载工程可执行二进制文件到实验板
在AXD中点击菜单栏“File—LoadImage”出现下面的窗口:
选中上一个实验中我们建立的工程中的DebugRel目录中的myfirstproject.axf文件,并打开。
出现下面的调试窗口:
5、调试程序
我们看到上图中标号1的圆内蓝色箭头表示程序当前即将运行到的位置。
在程序某一个行号前的空白处双击,就可以出现标号为2的圆内的红色圆点,这是程序运行的断点,当程序运行到这个位置时会自动停下来等待调试人员调试。
再次双击这里就会取消这个断点。
标号3的圆内是单步调试相关的按钮。
这是运行和暂停按钮。
这是STEPIN按钮,表示跳进函数,按这个按钮是真正的“单步调试”,可以一行一行代码的调试。
这是STEP按钮,按这个按钮将跳过函数体内部,可以更清晰的理清程序脉络,节约调试时间。
这是STEPOUT按钮,按这个按钮将跳出正在运行的程序体。
当程序调试中不想继续调试当前函数时,按此按钮将跳出运行主流程中下一个语句。
这是STEPURSOR按钮,把光标放到需要暂停的语句,按下这个按钮,程序就停在了这个语句
以上的这些功能是调试程序的最基本按钮,要熟练掌握,在此节实验中请多做体验。
我们开始调试程序:
首先打开附录光盘提供的“DNWv0.50A”工具软件。
这个工具是一个方便的串口/USB终端。
其串口终端功能类似于WINDOWS操作系统提供的超级终端。
点击菜单栏的“Configration—Option”,出现以下对话框:
做如上图的设置,点击“OK”。
其中”“COM”根据串口线插入主机时选择的主机串口决定。
点击SerialPort—Connect可以看到标题栏中的内容变为:
表示已经连接。
这个工具是串口连接的工具(也有USB连接功能),我们几乎所有的ADS实验工程中显示信息都通过串口在这个软件中显示。
在ADS中按下开始按钮,程序停在Main()函数的第一行。
这个断点是自动加上的。
我们可以体验一下上面讲到的STEP/STEPIN/STEOOUT/STEP/STEPURSOR各个按钮的功能。
:
我们点击AXD菜单栏的“ProcessorViews—Memory”界面下部出现下图中的窗口,这个窗口用来观察CPU内相应地址的存储空间的内容。
我们在地址内输入0x56000000,可以看到象下图一样给出了相应的数据。
在这个窗口上点击右键,出现菜单如图,可以改变“size”和“format”以方便观察数据。
如果当程序执行到某一行时,寄存器发生改变,我们可以看到变化的数据变成了红色。
这也是调试程序常用的方法。
在ADD()函数上点上光标,点击STEPURSOR,可以看到程序停在了这个函数。
跳入ADD()函数,我们看到这是一个循环,我们选中变量i,选中ADDTOWATCH。
可以看到在窗口左侧出现如上图的ADDTOWATCH窗口。
其中显示出变量i的当前值。
这也是调试程序常用的方法。
因为这是一个循环,我们几乎无法单步执行直到循环完成,在循环结束后设置断点,运行程序。
我们看到程序停到了打印结果的Uart_Printf()前,运行这个函数,输出结果。
程序运行调试完成。
如果在程序运行中发现逻辑上有错误或者功能无法实现,我们要回到实验一所讲的内容重新修改编译程序,再次下载调试直到完成。
“ADS开发环境实验”和“JTAG下载和调试实验”是我们进行ADS实验的基础,请认真体会熟悉其中的内容和涉及的方法,为后续实验打下基础。
本试验指导针对“JX44B0”试验系统编写,但是应用所有的嵌入式开发板开发嵌入式系统的基本过程都大同小异。
学习好这两个实验为以后工作应用其它嵌入式系统开发板也有指导意义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 JTAG下载和调试实验 实验 JTAG 下载 调试