arm实验报告jtag.docx
《arm实验报告jtag.docx》由会员分享,可在线阅读,更多相关《arm实验报告jtag.docx(14页珍藏版)》请在冰豆网上搜索。
![arm实验报告jtag.docx](https://file1.bdocx.com/fileroot1/2023-1/22/5b8675cc-030a-4e90-a570-755627eca123/5b8675cc-030a-4e90-a570-755627eca1231.gif)
arm实验报告jtag
实验二JTAG下载和调试实验
一、实验目的
1、熟悉Multie-Serve:
与7TAG下载的方法;
2,熟悉ADS开发环境中“Debugger”组建的使用;
3,熟悉掌握ADS调试程序的方法。
二、实验内容
1、正确连接实验系统硬件系统;
2、使用Multie-Server建立主机与实验板的连接;
3、学习下载工程到实验板;
4、学习单步调试程序。
三、实验设备
1、硬件:
DM2410B+实验系统;PC机;JTAG仿真器;串口线。
2、软件:
PC机操作系统(W工NDOWS2000);ARMDeveloperSuitev1.2;Multi-ICEV2.2.5(Build1319);DNW2410(或超级终端)。
四、预备知识
1、了解ARM体系结构;
2、了解ARM汇编语言;
3、掌握C,C++语言;
4、掌握“实验一ADS开发环境实验”内容。
五、基础知识
1,ARM7TAG接口电路
7TAG(7ointTestActionGroup,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,7TAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAPCTestAccessPort,测试访问口),通过专用的7TAG测试工具对内部节点进行测试。
目前大多数比较复杂的器件都支持7TAG协议,如ARM,DSP,FPGA器件等。
标准的7TAG接口是4线:
TMS,TCK,TDI,TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。
JTAG测试允许多个器件通过7TAG接口串联在一起,形成一个7TAG链,能实现对各个器件分别测试07TAG接口还常用于实现ISPCIn-SystemProgrammable在系统编程)功能,如对FLAS器件进行编程等。
通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。
目前7TAG接口的连接有两种标准,即14针接口和20针接口,其定义分别如下所下。
14针JTAG接日的定义:
图2-114针JTAG接日的定义
图2-220针JTAG接口定义
2.ARMTTAG的主要特征:
—支持所有内建embedded-ICE逻辑单元的ARM处理器;
—支持多个内核系统;
—连接简便兼容不同电压的目标系统;
—除JTAG扫描链外不占用目标板上的其它任何资源;
—支持实时硬件断点;
—用户可通过」TAG修改寄存器存储器内容;
—支持程序下载及实时调试;
—通信速度快最高可达lalwlbpps;
—JTAG速度可配置以满足不同调试对象的需求;
—支持所有符合I}DI1.5a或I}DI1.51规范的调试工具软件;
—提供丰富的例程和使用说明;
—支持多种目标平台如ATMEL,SamSung,Intel,Philips,SharpCirrus,Logic,Tricend等;
—体积轻巧性能稳定。
3、Muhi一工CE5erver简介
Multi一ICEServer是由ARM公司提供的Wind。
二操作系统下ARMJTAG的配置程序。
通过它可以使ARMJTAG与目标板建立通讯连接,并能够反馈目标板上ARM处理器的硬件信息。
Multi一工CEServer可以适应大多数JTAG仿真器而不需要其它特别的驱动。
这个软件为主机(上位机)和实验板(下位机)之间打建了软件的桥梁(硬件的桥梁就是仿真器)。
在工程的下载,调试,单步运行中这个软件要始终打开。
六、实验步骤
1、按照“实验一ADS开发环境实验”的方法将附录光盘上的“ADS实验指导\JTAG下载和调试实验”目录拷贝到“D:
/ADS实验”中打开并编译。
编译后在D:
/ADS实验/JTAG下载和调试实验中产生了一个“1J丁AG_Data”文件夹,其中的“/DebugRel”文件夹下的“JTAG.axf”就是用来调试的可执行文件。
这个工程完成了进行累加的简单任务。
代码非常简单,不再进行讲解,其中调用的Uart_Printf()函数完成串口终端打印功能,使用方法和参数可以比照printf()函数。
voidJtag_Test()
{inti=0,j=1,k=0;
Uart_Printf("---JTAGTEST!
---\n");
k=i+j;
Uart_Printf("fengyankun2008081220:
%d\n",k);
}
2、正确连接硬件
如下图连接硬件:
图2-3硬件连接图
其中并口线用于连接主机与仿真器,扁平电缆用于连接仿真器与实验板。
串口线用来连接实验板的串口1和PC机的串口(本实验中以COM1为例)。
实验板与仿真器均使用+5V直流电源,接口内正外负。
连接电源,并打开仿真器和实验板的电源。
注意
A:
应该先连接硬件再接通实验系统的电源。
B:
JTAG接口严禁带电热。
C:
实验中使用的串口线为“交叉线”,请使用实验系统中提供的串口线.
3、设晋Multi-ICESerer
MulTi一ICESerer的主界面如图2一4所示:
图2一4Multi-ICEServer的主界面
在左上方是工具栏,总共四个功能按钮:
图2一5功能按钮
在此上方是六个菜单选项,这里主要介绍几个重要的设置菜单:
1)File菜单:
LoadConfigurati。
一读取用户指定的配置文件,对仿真器进行手动配置;
Au七。
-Configure—自动检测和配置目标系统;
:
.Au七o-Configureat20KHz—自动检测和配置目标系统,并且设置TCK信号的频率为
20KHz;
.Rese七Targe七—对目标系统复位有效的复位信号在Se七七ing/JTAGse七七ings菜单或配置
文件中设置;
.Log输出信息存储到指定的日志文件中;
.Se七LogFile—用于指定日志文件的路径和名字。
2)View菜单:
用于控制Multi-ICE程序界面外观和显示信息。
.Toolbar—关闭或打开工具栏;
.StatusBar—关闭或打开状态栏;
.RPCCalls—允许或屏蔽RPC信息在调试信息窗日中显示。
3)RunControl菜单:
用于控制各个处理器的运行和停止。
.工ndependent一一使每个目标系统直接相互独立,不进行交互通信,缺省状态有效;
.AllRun-一启动所有的目标系统;
.AllRun/Stop—当收到一条启动指令时启动所有的目标系统;当任何一个目标系统停止
时其它的系统也一起停止;
.Custom—执行用户自定义的设置;
.Set-upCustom—打开用户自定义设置窗日,设置各个目标系统之间的交互方式;
.LoadSettings—读取以前保存下来的设置文件;
.SaveSettings—把当前设置保存到文件。
4)Connection菜单
这个菜单在调试程序和Server建立连接之后才有效。
它会给每一个TAP控制器分配一个菜单项,
为用户提供单独删除某个TAP控制器的选项。
5)Setting菜单:
用来设置各种接口信息。
.PortSettings一一显示并口设置对话框,用来选择并口的地址和是否使用4-bit通信模式,
同时显示当前的并口类型设置(在PC机的B工OS中要把并口模式选择为EPP);
UserOutputBits
JTAGSettings-
当前版本的Server程序保留使用;
显示JTAG日的设置对话框,用来设置JTAG日相关的时序信息和复位行
:
为。
如果调用了配置文件则相应的设置会在窗口中反映出来;
.Start-upOptions—显示设置启动选项的对话框。
Mufti-ICE的各种状态
在Mufti一工CEServer的TAP信息显示区可以直观的显示当前系统状态。
各状态的图示如下:
1)配置后的状态
通过自动检测,在TAP配置显示区用图形的方式直观的显示出了检测结果。
内核的类型名称
ARM920T显示为绿色,并且前面有一个表示内核状态的字母「x」,表示Mufti一工CEServer目前还没有
连接到任何调试程序中,处理器类型未知或没有被调用。
另外,双击处理器类型名字会弹出目标处理器附加信息窗口:
2)连接后的状态
如果有调试程序通过Mul七i工CE.dll与Mul七i一工CE建立了连接,则Multi-CE的状态如下图所示。
字母「引表示已建立连接但处理器正处于暂停空闲状态。
处理器名字变为红色,同时信息窗口中的信息增加了相应的内容。
3)激活后的Multi-ICE的活动状态有下载和运行两种。
下载时的字母是[D],表示处理器处于下载状态;运行时的字母是「R],表示处理器处于运行状态。
当下载操作完成或停止运行后状态字母马上变回「S」。
图2一9是处理器运行时的界面:
5、对S3C2410进行初始化
我们在上一节实验中我们提到了一个“reset.ini”文件,这个文件是对S3C2410进行初始化的一段代码。
我们知道,当CPU在启动时内部很多寄存器状态是不确定的,在程序运行特别是单步调试中可能出现不可预料的错误,如程序“跑飞”等。
所以我们要对CPU进行初始化,这个工作一般由BIAS完成,我们这里进行单步调试,不使用BIAS启动,所以要进行手工初始化。
点击菜单栏Systemviews-CommandLineInterfaceC或Alt-L)在下面的窗口中出现Command
LineInterface窗口如图2-18:
6、下载工程可执行二进制文件到实验板
在AXD中点击菜单栏“File-LaadImage”出现图2-21的窗口:
选中路径是“DaADS实验1JTAG下载和调试实验1VTAGesDatalDehugRel”中的JTAGaxf7执行女件,并打开。
出现图2-22的调试窗口:
z,调试程序
我们看到上图中标号i的圆内蓝色箭头表示程序当前即将运行的位置。
在程序某一个行号前的空白处双击,就可以出现标号为a的圆内的红色圆点,这是程序运行的断点,当程序运行到这个位置时会自动停下来等待调试人员调试。
再次双击这里就会取消这个断点。
标号3的圆内是单步调试相关的按钮。
里的是运行停按、。
这是STEPIN按钮,表示。
[进函数或子程序,按这个按钮是真正的‘·单步调试夕,,可以一行代码的调试。
这是STEP按钮,按这个按钮将。
。
过函数体或子程序内部,可以更清晰的理清程序脉络
首先打开附录光盘提供的“DNW}O.SOA”工具软件。
这个工具是一个方便的串口IUSB终端。
其串口终端功能类似于WINDgWS操作系统提供的超级终端。
首先打开附录光盘提供的“DNW}O.SOA”工具软件。
这个工具是一个方便的串口IUSB终端。
其串口终端功能类似于WINDgWS操作系统提供的超级终端。
点击菜单栏的“Confi}ration-Option",出现图2-24对话框:
做如图2-24的设置,点击“OK"。
其中“COM”根据串口线插入主机时选择的主机串口决定点击SerialPart-Connect可以看到标题栏中的内容变为:
表示已经连接。
按setout按钮跳出这个函数。
在ADD()函数上点上光标,点击STEPLTRSOR,可以看到程序停在了这个函数。
DNWv0.50A护显示UartPrintfC)函数通过串口打印的信息:
实验结果及程序分析:
主程序分析:
#include"def.h"
#include"option.h"
#include"2410addr.h"
#include"2410lib.h"
#include"2410slib.h"
voidJtag_Test()
{
inti=0,j=1,k=0;定义变量
Uart_Printf("---xiaoxinghuisunshumeng---\n");打印出“---xiaoxinghuisunshumeng---”
k=i+j;
Uart_Printf("Sumofiandjis:
%d\n",k);打印出Sumofiandjis1
}
六、试验心得
熟悉Multie-Serve:
与7TAG下载的方法ADS开发环境中Debugger组建的使用以及ADS调试程序的方法。
使用Multie-Server建立主机与实验板的连接;学习下载工程到实验板;学习单步调试程序。