版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《嵌入式系统原理》
第4讲计算机科学学院于山山主讲2/6/20231曲阜师范大学计算机科学学院第3章嵌入式微处理器技术基础本章主要介绍以下内容:嵌入式微处理器典型技术主流嵌入式微处理器嵌入式处理器的调试技术边界扫描测试技术JTAG2/6/20232曲阜师范大学计算机科学学院3.3嵌入式系统调试技术指令集模拟器ROM仿真器实时在线仿真片上调试器与背景调试模式基于Angle的调试方案边界扫描测试技术和JTAG接口概述跟踪接口ETMNexus调试标准半主机调试方式2/6/20233曲阜师范大学计算机科学学院嵌入式系统调试技术概貌嵌入式计算机调试基本结构主机—目标机结构主机常常是PC平台原因:运算能力相对较弱存储能力和显示能力较小数据吞吐率较小很难在目标程序运行的计算设备上直接进行硬件软件调试。2/6/20234曲阜师范大学计算机科学学院主机和目标机之间调试信道主机往往和目标机的体系结构不同。因此,需要有通信转换器对调试信息进行转换。2/6/20235曲阜师范大学计算机科学学院3.3.1指令集模拟器指令集模拟器ISS,InstructionSetSimulator在一台计算机上模拟另外一台计算机上目标程序(机器指令)运行过程的软件工具有时也叫做软仿真器嵌入式系统开发的不可或缺工具2/6/20236曲阜师范大学计算机科学学院指令集模拟器的结构指令集模拟器是一个纯软件系统内部有一个反映目标处理器硬件的数据结构以时序状态机的方式工作可以根据目标机指令集定义执行目标指令按照实现方法的不同指令集模拟器分为解释型编译型2/6/20237曲阜师范大学计算机科学学院指令集模拟器的运行指令集模拟器的操作界面与IDE类似模仿目标机的取指、译码和执行操作将中间执行结果或者最终执行结果存入目标机映像数据结构调试人员可以观察目标机映像寄存器或者映像存储器的单元,了解目标代码的执行结果2/6/20238曲阜师范大学计算机科学学院指令集模拟器主要用途指令集模拟器主要用在以下几种场合:没有目标机开发板有目标机开发板,但使用目标机开发板成本较高调试的程序模块不需要在实际开发板上执行,例如学习ARM汇编语言程序模块代码的先行调试,以加快调试速度2/6/20239曲阜师范大学计算机科学学院流行的ARM指令集模拟器有两种比较流行的指令集模拟器:ARMulatorSkyEye还有一些研究中的ARM指令集模拟器2/6/202310曲阜师范大学计算机科学学院ARM公司推出的ARMulatorARMulator是业界著名的指令集仿真器运行在PC平台上ARM体系结构的指令集模拟器集成在SDT2.51和ADS1.2上的插件由四个部分组成:处理器核模型、存储器接口、处理器接口、操作系统接口。2/6/202311曲阜师范大学计算机科学学院指令模拟精度的级别指令模拟精度有三个级别指令级周期级时序(节拍)级ARMulator完全实现了指令级和周期级模拟精度,但是没有完全实现时序级精度。2/6/202312曲阜师范大学计算机科学学院指令集模拟器ARMulator对ARM程序运行
进行指令周期数统计的结果快照2/6/202313曲阜师范大学计算机科学学院Armulator的指令周期统计结果说明2/6/202314曲阜师范大学计算机科学学院SkyEye一个ARM体系结构的嵌入式仿真和集成开发环境国内开放源码的自由软件项目运行环境:Linux平台和Windows的Cygwin能够仿真的CPU包括:不带MMU的Atmel91x40带MMU的ARM720T等基于ARM7TDMI的内核SkyEye还能够模拟其它一些硬件外设,如串口、网络芯片、内存、时钟等2/6/202315曲阜师范大学计算机科学学院3.3.2ROM仿真器嵌入式系统的程序存储器为ROM时,如果调试需要修改代码、设置断点及更新程序代码,就需要进行离线编程。离线编程是一个费时间的工作,用RAM替代ROM可以解决这个问题ROM仿真器用RAM以及附加电路制成的替代ROM进行离线编程的工具MCS-51单片机研发过程中常常使用ROM仿真工具2/6/202316曲阜师范大学计算机科学学院ROM仿真器照片支持各种51系列芯片的JY-E2300仿真器照片2/6/202317曲阜师范大学计算机科学学院3.3.3实时在线仿真实时在线仿真ICE,In-CircuitEmulator目前最为有效的调试嵌入式系统的手段通过ICE的实际执行,开发者可以排除人们难以发现的隐藏在设计方案中的逻辑错误。ICE的另外一个主要功能是在应用系统中仿真微控制器的实际执行优点是功能强大,软硬件均可以做到完全实时在线调试;缺点是价格昂贵。2/6/202318曲阜师范大学计算机科学学院3.3.4片上调试技术片上调试技术OCD,On-ChipDebugging嵌入式调试技术中运用最广泛的一种片上调试是在CPU的内部嵌入额外的控制模块,即片上调试器;使得CPU的工作模式分为正常模式和调试模式。2/6/202319曲阜师范大学计算机科学学院常用的片上调试技术目前常用的片上调试技术主要有三种:背景调试模式BDM,BackgroundDebugModeJTAGIEEE1149.1NexusIEEE-5001ISTO2/6/202320曲阜师范大学计算机科学学院背景调试模式背景调试模式Motorola公司专有的片上调试器。Motorola公司是第一个把片上调试器集成在处理器内核中的嵌入式微处理器厂商。BDM首先在68300系列处理器上实现现在在其他微控制器上得到应用2/6/202321曲阜师范大学计算机科学学院BDM与ICE的区别传统ICE调试时,使用ICE中的CPU来取代目标板中的CPU,目标板和ICE之间使用多芯扁平电缆连接。而ICE在使用时一般还需要与主机(一般是PC)连接。在BDM调试方式下嵌入式处理器被停机,各种调试命令可以被发送到处理器中访问内存和寄存器。因此,满足BDM调试的微处理器内部已经包含了用于调试的微码,调试时仿真器软件和目标板上CPU的调试微码通信,目标板上的CPU无需取出。2/6/202322曲阜师范大学计算机科学学院BDM调试器与主机和目标开发板
之间的连接2/6/202323曲阜师范大学计算机科学学院3.3.5基于Angel的调试方案Angel是ARM公司的调试监控程序也称为Angel调试代理由多个程序部件组成与传统调试监控程序相类似驻留在目标机上Angel接收主机上发送过来的调试命令,执行指定的调试操作,并将调试结果反馈回主机。适用于各种ARM硬件平台。2/6/202324曲阜师范大学计算机科学学院Angel的功能与JTAG调试代理不同,Angel需要占用一定的系统资源,例如内存空间和串口等。基于Angel的调试系统包含两个关键部分,位于主机上的调试软件和驻留在目标机上的Angel调试监控程序。Angel调试系统主要分成以下三层:应用层、功能支持层、通道管理层。Angel的两种版本:完整版本和最小版本。2/6/202325曲阜师范大学计算机科学学院Angel调试协议的主机端组件2/6/202326曲阜师范大学计算机科学学院Angel调试协议的目标端组件2/6/202327曲阜师范大学计算机科学学院边界扫描测试技术边界扫描测试技术和JTAG接口是嵌入式系统最具特色的技术集成电路研制时的内部电路测试嵌入式软件开发时的程序调试2/6/202328曲阜师范大学计算机科学学院3.3.6边界扫描技术和JTAG接口JTAG是一种片上调试接口,即OCD接口。OCD英文原文:On-ChipDebuggingInterfaceJTAG的建立使得集成电路固定在PCB(PrintedCircuitBoard,印刷电路板)上,只通过边界扫描便可以被测试。含有JTAG口的芯片种类较多,如CPU、DSP、CPLD/FPGA等,广泛得到应用。2/6/202329曲阜师范大学计算机科学学院测试摩尔定律1999年英特尔公司的副总裁PatrickCelsinger先生在美国大西洋城举行的国际测试会议上提出了测试摩尔定律,并就此了讲演。该定律预测未来几年,每一晶体管的硅投资成本将低于其测试成本。PatrickCelsinger先生指出,硅成本已迅速下降,测试成本却基本保持不变。并且,被测器件的速度常常比测试设备能测的速度高。也就是说,测试设备的发展速度已跟不上测试对象的发展。同时,测试成本在制造成本中所占比例过大。
2/6/202330曲阜师范大学计算机科学学院doubled_bh;shorts_bh;
sense_horizontal_velocity(&d_bh);
s_bh=d_bh;//OPERANDERROR代码出错案例:阿丽亚娜5型火箭发射失败2/6/202331曲阜师范大学计算机科学学院将大的浮点数转换成整数是一种常见的程序错误来源。1996年6月4日,对于Ariane5火箭的初次航行来说,这样一个错误产生了灾难性的后果。发射后仅仅37秒,火箭偏离它的飞行路径,解体并爆炸了。火箭上载有价值5亿美元的通信卫星。6亿美元付之一炬。后来的调查显示,控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据。失事调查报告指出,火箭爆炸是因为:它没有发送飞行控制信息,而是送出了一个诊断位模式,表明在将一个64位浮点数转换成16位有符号整数时,产生了溢出。溢出值测量的是火箭的水平速率,这比早先的Ariane4火箭所能达到的高出了5倍。在设计Ariane4火箭的软件时,他们小心地分析了数字值,并且确定水平速率绝不会超出一个16位的数。不幸的是,他们在Ariane5火箭的系统中简单地重新使用了这一部分,而没有检查它所基于的假设。2/6/202332曲阜师范大学计算机科学学院JTAG基本概念JTAG是JointTestActionGroup(联合测试行动组)的缩写,联合测试行动组是IEEE的一个下属组织该组织研究标准测试访问接口和边界扫描结构(StandardTestAccessPortandBoundary-ScanArchitecture)JTAG的研究成果被接纳为IEEE1149.1-1990规范JTAG成为电子行业的一种国际测试标准现在,人们通常用JTAG来表示IEEE1149.1-1990规范,或者满足IEEE1149规范的接口或者测试方法。2/6/202333曲阜师范大学计算机科学学院JTAG扫描循环示意图2/6/202334曲阜师范大学计算机科学学院边界扫描单元JTAG标准定义了一个串行的移位寄存器寄存器的每一个单元分配给IC芯片的相应引脚每一个独立的单元称为BSC(Boundary-ScanCell)边界扫描单元这个串联的BSC在IC内部构成JTAG回路所有的BSR(Boundary-ScanRegister)边界扫描寄存器通过JTAG测试激活2/6/202335曲阜师范大学计算机科学学院ARM的JTAG调试结构2/6/202336曲阜师范大学计算机科学学院ARM调试系统说明调试系统一般包括3部分:调试主机是运行软件调试器的计算机例如ADW,ARMDebuggerforWindows调试主机允许发出高级命令,如设置断点或检查存储器内容。协议转换器处理调试主机和ARM7TDMI处理器JTAG接口之间的通讯包括调试主机发出的高级命令以及JTAG接口的低级命令。一般通过增强型并行口进行连接。2/6/202337曲阜师范大学计算机科学学院ARM调试系统说明(续)调试目标ARMCPU主处理器逻辑:对调试有硬件支持。嵌入式ICE-RT逻辑:这是用于产生调试异常(如断点)的寄存器和比较器的集合。TAP控制器:用JTAG串行接口控制扫描链的动作。2/6/202338曲阜师范大学计算机科学学院协议转换器的调试扩充功能ARM7TDMI具有易于在最低层调试的硬件扩充,其调试扩充功能如下列出:允许暂停程序的执行;检查和修改内核的内部状态;查看和修改存储器系统的状态;执行中止异常,允许实时的内核监控;重新开始程序执行。2/6/202339曲阜师范大学计算机科学学院3.4.3ARM7TDMI扫描链布局2/6/202340曲阜师范大学计算机科学学院ARM7TDMI内核扫描链结构113位38位33位2/6/202341曲阜师范大学计算机科学学院JTAG接口的IC内部结构2/6/202342曲阜师范大学计算机科学学院JTAG状态转换图2/6/202343曲阜师范大学计算机科学学院JTAG信号TMS:测试模式选择(TestModeSelect)通过TMS信号控制JTAG状态机的状态。TCK:JTAG的时钟信号TDI:数据输入信号TDO:数据输出信号nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)。2/6/202344曲阜师范大学计算机科学学院3.4.4TAP控制器TAP控制器内部有多个寄存器测试数据寄存器JTAG控制指令寄存器旁路寄存器ARM7TDMI器件识别码(ID)寄存器扫描路径选择寄存器2/6/202345曲阜师范大学计算机科学学院JTAG的TAP控制器结构2/6/202346曲阜师范大学计算机科学学院测试数据寄存器在TDI和TDO之间可以连接的测试数据寄存器有如下8个:指令寄存器;旁路寄存器;ARM7TDMI的器件识别(ID)码寄存器;扫描路径选择寄存器;扫描链0、1、2和3。2/6/202347曲阜师范大学计算机科学学院JTAG控制指令寄存器JTAG接口中指令寄存器长度是4位在指令寄存器共安排10条控制指令,见下表。指令二进制指令二进制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS11112/6/202348曲阜师范大学计算机科学学院JTAG的指令寄存器在SHIFT-IR态,将指令寄存器选做TDI和TDO之间串行路径。见(a)在UPDATE-IR态,指令寄存器的值成为当前指令。见(b)在CAPTURE-IR态,将b0001加载到该寄存器。该值在SHIFT-IR态移位输出。见(c)复位时,IDCODE(b1110)成为当前指令。见(d)指令寄存器的最低有效位首先被扫描输入和输出。指令寄存器TDITDOSHIFT-IR状态(a)指令寄存器值=0001CAPTURE-IR状态(c)TDITDO当前指令寄存器TDITDOUPDATE-IR状态(b)当前指令寄存器IDCODE=0001IDCODE-IR状态(d)TDITDO2/6/202349曲阜师范大学计算机科学学院旁路寄存器功能:通过提供TDI和TDO之间的路径,在扫描测试期间对器件旁路。长度:1位操作方式:当BYPASS指令是指令寄存器中的当前指令时,串行数据在SHIFT-DR态以1个TCK周期的延迟从TDI传到TDO。旁路寄存器没有并行输出。在CAPTURE-DR态,从旁路寄存器的并行输入端装入“0”。2/6/202350曲阜师范大学计算机科学学院ARM7TDMI器件
识别码(ID)寄存器识别码用途:读32位器件识别码。不提供可编程的识别码。长度:32位。寄存器的格式如下图所示。操作方式当IDCODE指令是当前指令时,将ID寄存器选做TDI和TDO之间的串行路径。ID寄存器没有并行输出。在CAPTURE-DR态,32位器件识别码从其并行输入端加载到ID寄存器。寄存器的最低有效位首先被扫描输出。版本4位部件编号16位制造者标识12位03111282/6/202351曲阜师范大学计算机科学学院扫描路径选择寄存器用途和长度变换当前活动的扫描链,4位。操作方式仅当执行了一条SCAN_N指令或当发生复位时,当前所选的扫描链改变。复位时,将扫描链0选做活动的扫描链。在SHIFT-DR态,SCAN_N指令把扫描路径选择寄存器作为TDI和TDO之间的串行数据移位路径。在CAPTURE-DR态,将b1000加载到该寄存器。这个值在SHIFT-DR态加载输出,同时装入新值。在UPDATE-DR态,由寄存器中的值选择一个扫描链成为当前活动的扫描链。所有进一步的指令(如INTEST)都应用到该扫描链上。2/6/202352曲阜师范大学计算机科学学院扫描链编号分配扫描链编号功能0宏单元扫描测试1调试2嵌入式ICE-RT逻辑编程3外部边界扫描(由ASIC设计者实现)4保留8保留2/6/202353曲阜师范大学计算机科学学院3.4.5JTAG扫描链工作原理JTAG扫描链由扫描单元组成每一个被测试逻辑电路引出信号线同它的引脚之间配置一个扫描单元每一个扫描单元的内部由两个D触发器和两个多路选择器组成分别把逻辑电路输入输出线同引脚之间的穿越扫描单元的电流方向成为横向,沿扫描单元串接线运动的电流方向成为纵向。JTAG扫描链一共有四种操作:挂起、捕获、移位和更新。2/6/202354曲阜师范大学计算机科学学院JTAG扫描单元构造纵向纵向横向横向横向四种操作:挂起,移位,俘获,更新2/6/202355曲阜师范大学计算机科学学院JTAG扫描链的组成LogicPinPinPinPinLogicLogicLogicLogic纵向横向PinPinLogic2/6/202356曲阜师范大学计算机科学学院JTAG处于挂起状态横向直行横向直行如同扫描链不存在2/6/202357曲阜师范大学计算机科学学院捕获JTAG状态当前引脚信号的快照存入扫描链2/6/202358曲阜师范大学计算机科学学院移位数据纵向直行此刻处理器的工作脉冲暂停2/6/202359曲阜师范大学计算机科学学院移位结束纵向直行此刻处理器的工作脉冲暂停2/6/202360曲阜师范大学计算机科学学院数据更新JTAG扫描链取代系统向处理器输入信号,并且替代处理器向系统输出信号。2/6/202361曲阜师范大学计算机科学学院扫描链0ScanChain0:有113个扫描单元,包括ARM核的所有的I/O、地址数据总线和输入输出控制信号。这条链上的信号复杂,不易控制,但是包含的信息丰富,可以通过这条链得到ARM7TDMI内核的所有信息。从查询数据输入到输出,扫描链的顺序为:(1)数据总线位[0]-位[31];(2)内核控制信号;(3)地址总线位[31]-位[0];(4)嵌入式ICE-RT控制信号。嵌入式ICE-RT控制信号(特别是DBGRQI)首先被扫描输出。2/6/202362曲阜师范大学计算机科学学院扫描链0单元编号信号类型编号信号类型1~32D[0]~D[31]输入/输出41BL[0]输入33BREAKPT输入42BL[1]输入34NENIN输入43BL[2]输入35NENOUT输出44BL[3]输入36LOCK输出45DCTL输出37BIGEND输入46nRW输出38DBE输入47DBGACK输出39MAS[0]输出48CGENDBGACK输出40MAS[1]输出49nFIQ输入2/6/202363曲阜师范大学计算机科学学院扫描链0单元(续1)编号信号类型编号信号类型50nIRQ输入59nMREQ输出51nRESET输入60SEQ输入52ISYNC输入61nTRANS输入53BRGRQ输入62CPB输入54ABORT输入63nM[4]输出55CPA输入64nM[3]输出56nOPC输出65nM[2]输出57IFEN输入66nM[1]输出58nCPI输出67nM[0]输出2/6/202364曲阜师范大学计算机科学学院扫描链0单元(续2)编号信号类型编号信号类型68nEXEC输出69ALE输出70ABE输入71APE输入72TBIT输出73nWAIT输入74~105A[31]~A[0]输出106~113ICE-RT信号2/6/202365曲阜师范大学计算机科学学院扫描链1扫描链1:有33个扫描单元,包括ARM核的数据总线和一个断点控制信号。这是一条很有用的链,通过控制这条链,可以控制ARM核执行指定的指令,从而实现对ARM的内部寄存器、协处理器以及外部存储器的读写操作。2/6/202366曲阜师范大学计算机科学学院扫描链1(续)扫描链1的前32位用于数据值,加上在BREAKPT内核输入上的扫描单元。第33位有如下4个用途:在正常INTEST测试条件下,允许将已知值扫描到BREAKPT的输入。在EXTEST测试条件下,捕获从系统加到BREAKPT输入的值。在调试期间,第33位的值决定在执行指令之前ARM7TDMI核是否同步回系统速度。ARM7TDMI核进入调试状态后,该位第一次被捕获并被扫描输出。其值告诉调试器内核是否由断点(位[33]清零)或由观察点(位[33]置位)进入调试状态。2/6/202367曲阜师范大学计算机科学学院扫描链2ScanChain2共有38个扫描单元,通过控制EmbeddedICE宏单元,实现对ARM执行指令的断点、观察点的控制。从TDI到TDO的扫描链次序如下:读/写;寄存器地址位[4]-位[0];数据值位[31]-位[0]。2/6/202368曲阜师范大学计算机科学学院3.4.6嵌入式ICE-RT逻辑嵌入式ICE-RT逻辑也称为EmbeddedICE或者EmbeddedICE-RT,其主要功能是为ARM7TDMI核提供集成的在线调试支持。ARM公司的片上测试部件。使用ARM7TDMI的TAP控制器来控制嵌入式ICE-RT逻辑的串行数据输入。下图给出了内核、嵌入式ICE-RT逻辑和TAP控制器之间的关系。图中仅显示了有关的信号。2/6/202369曲阜师范大学计算机科学学院嵌入式ICE-RT连线结构图2/6/202370曲阜师范大学计算机科学学院嵌入式ICE-RT逻辑的组成嵌入式ICE-RT逻辑的组成如下:2个实时观察点单元;3个独立的寄存器:调试控制寄存器、调试状态寄存器、中止状态寄存器;调试通信通道DCC(DebugCommunicationsChannel)。2/6/202371曲阜师范大学计算机科学学院嵌入式ICE-RT逻辑的组成(续)调试控制寄存器和调试状态寄存器提供嵌入式ICE-RT操作的所有控制。在选择监控模式时使用中止状态寄存器。可以编程1个或2个观察点单元来暂停内核程序的执行。当编程进入嵌入式ICE-RT的值与当前出现在地址总线、数据总线和各种控制信号的值匹配时,暂停执行。2/6/202372曲阜师范大学计算机科学学院EmbeddedICE的数据结构EmbeddedICE是集成在ARM内核中的嵌入式ICE仿真器。其结构如下图所示。通过对EmbeddedICE的控制,对EmbeddedICE中寄存器的读取,可以获得ARM内核的状态,为程序设置断点以及读取Debug通讯通道。EmbeddedICE的串行数据长度是38位,包括:32位数据5位的访问EmbeddedICE中寄存器的地址1个读写控制位2/6/202373曲阜师范大学计算机科学学院EmbeddedICE结构EmbeddedICE扫描链共38位2/6/202374曲阜师范大学计算机科学学院EmbeddedICE的寄存器地址宽度功能地址宽度功能000006Debugcontrol011009Watchpoint0controlvalue000015Debugstatus011018Watchpoint0controlmask000101Abortstatus1000032Watchpoint1addressvalue001006Debugcommandscontrolregister1000132Watchpoint1addressmask0010132Debugcommandsdataregister100102Watchpoint1datavalue0100032Watchpoint0addressvalue1001132Watchpoint1datamask0100132Watchpoint0addressmask101009Watchpoint1controlvalue0101032Watchpoint0datavalue101018Watchpoint1controlmask0101132Watchpoint0datamask2/6/202375曲阜师范大学计算机科学学院Watchpoint寄存器的使用
EmbeddedICE的一个主要作用就是可以在ARM的程序中设置软件或者硬件的断点。在EmbeddedICE中,集成了一个比较器,比较器负责把ARM处理器取指的地址A[31:0]、数据D[31:0]以及一些控制信号与EmbeddedICE中Watchpoint寄存器中设置的数值相比较具体的说应该是进行同或运算比较的结果用来确定输出一个ARM的断点(Breakpoint)信号。具体的运算关系如下公式所描述:({Av[31:0],Cv[4:0]}XNOR{A[31:0],C[4:0]})OR{Am[31:0],Cm[4:0]}==0x1FFFFFFFFF2/6/202376曲阜师范大学计算机科学学院EmbeddedICE断点信号条件当上述表达式为真的时候,断点信号有效,ARM的内核就进入了Debug模式。在Debug模式下,ARM内核的时钟从系统的主时钟(MCLK)被替换成跟踪时钟(DCLK)。跟踪时钟(DCLK)是通过在JTAG的状态机的Run-test/Idle状态的TCK来控制的。
2/6/202377曲阜师范大学计算机科学学院Watchpoint表达式的含义
信号说明Av[31:0]Watchpoint中地址寄存器(Addressregister)的数据Am[31:0]Watchpoint中地址mask寄存器(addressmaskregister)的数据A[31:0]从ARM7TDMI的核中得到的总线的地址,也就是当前处理器取址的地址Dv[31:0]Watchpoint中数据寄存器(dataregister)中的数据Dm[31:0]Watchpoint中数据mask寄存器(datamaskregister)的数据D[31:0]从ARM7TDMI的核中得到的总线的数据,也就是当前处理器取址所到的数据Cv[8:0]Watchpoint中控制寄存器(controlregister)中的数据Cm[7:0]Watchpoint中控制mask寄存器(controlmaskregister)中的数据C[9:0]ARM7TDMI的控制总线2/6/202378曲阜师范大学计算机科学学院3.4.7ARM7TDMI断点的设置ARM中断点的设置主要是设置EmbeddedICE中的寄存器主要包括:设置EmbeddedICE的两个watchpoint单元的地址、数据或控制信号寄存器。当一个(或者两个)watchpoint寄存器满足条件的时候,ARM就从运行状态进入Debug状态。也就是与ARM中的地址(也可以包括数据)和ARM所执行的当前的指令相同的时候2/6/202379曲阜师范大学计算机科学学院硬件断点和软件断点在ARM7TDMI处理器的内核中,有两种断点的设置方式:硬件断点和软件断点硬件断点通过设置EmbeddedICE中的Watchpoint寄存器中的地址相关的寄存器,来实现断点。通过这种方式设置断点,断点数目受EmbeddedICE中的Watchpoint数目的限制(在ARM7TDMI处理器的内核中,只有两组Watchpoint寄存器,最多只能设置两个硬件断点)。硬件断点可以在任何地方设置。不受存储器类型的限制。2/6/202380曲阜师范大学计算机科学学院软件断点软件断点的实现比较复杂,需要如下几个步骤:通过设置EmbeddedICE中的Watchpoint寄存器中的数据相关寄存器(datavalue和datamaskvalue)为一个特殊的32位数字—ARM的未定义指令,比如:0x06000010。替换RAM中的指令为上面所设置的那个未定的指令0x06000010,作为一个标志。当系统运行到RAM中所设定的单元位置时候,那个事先设置的标志数字将被当作一个指令读入处理器的内核。2/6/202381曲阜师范大学计算机科学学院软件断点(续)此时,系统所读入的指令的数据刚好和datavalue中的数字相吻合,系统就进入了Debug模式。这就是软件断点的工作过程。软件断点的数目不受ARM内核的Watchpoint数目的限制,不管系统设置多少个软件断点,仅仅使用了ARM内核的一个Watchpoint资源。软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置。2/6/202382曲阜师范大学计算机科学学院断点设置小结总之,在有两个Watchpoint资源的ARM7TDMI的内核中,断点可以有如下情况:2个硬件断点,没有软件断点1个硬件断点,任意多个软件断点任意多个软件断点2/6/202383曲阜师范大学计算机科学学院3.4.8ARM调试接口ARM7TDMI调试接口基于IEEE标准1149.1-1990以及标准测试访问口和边界扫描体系结构(StandardTestAccessPortandBoundary-ScanArchitecture)。调试扩充可强迫内核进入下列模式之一:暂停模式(调试模式):在断点或观察点,内核进入调试状态。在调试状态,内核停止工作并与系统的其它部分隔离。当调试完成后,调试主机恢复内核和系统状态,程序重新开始执行。监控模式:在断点或观察点,形成指令中止或数据中止而不进入调试状态。内核仍正常接受和服务中断。2/6/202384曲阜师范大学计算机科学学院调试阶段外部调试接口信号或嵌入式ICE-RT逻辑请求迫使ARM7TDMI进入调试状态。激活调试的事件如下:断点(取指);观察点(数据访问);外部调试请求。使用JTAG格式的串行口检测ARM7TDMI的内部状态。在暂停模式下,这可确保不使用外部数据总线即可将指令串行插入进内核流水线。例如,在调试状态,存储多个寄存器指令(STM)可以插入指令流水线,输出ARM7TDMI寄存器的内容。数据可以串行移出而不影响系统的其它部分。在监控状态,JTAG接口用于在调试器与运行在ARM7TDMI核上简单的监控程序之间传送数据。2/6/202385曲阜师范大学计算机科学学院时钟
ARM7TDMI核有如下2个时钟:MCLK是存储器时钟;DCLK是内部调试时钟,由测试时钟TCK生成。在正常工作期间,内核由MCLK时钟驱动,内部逻辑保持DCLK为低电平。当ARM7TDMI在暂停模式时,在TAP状态机控制下,内核由DCLK供给时钟,MCLK自由运行。选择的时钟在信号线ECLK上输出以便由外部系统使用。2/6/202386曲阜师范大学计算机科学学院调试接口信号与调试接口有关的外部信号主要有如下3个:BREAKPT和DBGRQ是处理器进入调试状态的系统请求信号;DBGACK是指示内核处于调试状态的信号。进入调试状态的入口(1)在断点进入调试状态(2)在观察点进入调试状态(3)由调试请求进入调试状态2/6/202387曲阜师范大学计算机科学学院调试接口信号(续)调试状态下ARM7TDMI的动作在暂停模式下,除nMREQ和SEQ外,所有存储器接口输出发生与存储器系统异步的改变。在监控模式下,ARM7TDMI继续执行指令,存储器接口的行为正常。2/6/202388曲阜师范大学计算机科学学院ARM处理器的实时JTAG仿真器
与开发板的连线图2/6/202389曲阜师范大学计算机科学学院英蓓特公司的ARM仿真器照片JTAG实时在线协议转换器通常称为JTAG调试器(或JTAG仿真器),由于ARM处理器广泛使用,通常也把ARM处理器的JTAG实时在线协议转换器称为ARM仿真器。右面给出了深圳市英蓓特公司的ARM仿真器照片。2/6/202390曲阜师范大学计算机科学学院JTAG仿真器连接JTAG仿真器连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。可用于开发和调试包含JTAG接口的ARM电路板。2/6/202391曲阜师范大学计算机科学学院ARM处理器的实时JTAG仿真器
与开发板的连线图2/6/202392曲阜师范大学计算机科学学院实时在线仿真(ICE)与JTAG的区别实时在线仿真系统的硬件主体是在线仿真器(ICE)。在8位单片机调试过程中,可以用这种ICE仿真器完全取代目标板上的MCU。因而目标系统对开发者来说完全是透明的、可控的。对16和32位的单片机还不能做到完全取代。JTAG调试在内嵌了IEEE1149标准电路的CPU上进行,调试时不需要更换CPU。适用于8、16、32位的CPU。2/6/202393曲阜师范大学计算机科学学院Angel与JTAG的关系JTAG调试:协议转换器解释上位机传送过来的命令,通过JTAG控制ARM执行。Angel调试:协议转换器可以直接作为目标板的Firmware的一部分,直接执行从宿主机传送过来的调试命令;并回送相应的数据。Angel可以节省专门的JTAG仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真,而JTAG仿真是通过硬件和控制ARM的EmbeddedICE实现的,可以做到实时仿真。2/6/202394曲阜师范大学计算机科学学院英蓓特ARM仿真器的主要特征下载速度达25KB/S;支持主流开发环境ADS、EmbestIDE、SDT;支持各种ARM系列处理器;支持标准的14/20针JTAG接口;支持最多两个硬件断点/两个数据断点/不限数目的软件断点;支持汇编级调试,支持ARM、THUMB及指令集交叉调试;支持标准C语言程序调试;支持Flash在线编程;通过软件升级方式支持更高版本的ARM核处理器。2/6/202395曲阜师范大学计算机科学学院3.3.7嵌入追踪宏单元ETM跟踪追踪宏单元ETM也称为跟踪调试接口ARM公司开发的一种高级实时软件开发调试工具,是ARM片上系统的一个组件。在CPU运行过程中把现场信息捕捉压缩后输出,然后在PC端就可以对这些数据进行解压分析。2/6/202396曲阜师范大学计算机科学学院ETM—嵌入跟踪宏单元本质上ETM相当于一个嵌入芯片的逻辑分析仪2/6/202397曲阜师范大学计算机科学学院JTAG仿真器和ETM的功能区别基于JTAG的仿真器debug方法是利用芯片内部的EmbeddedICE模块来控制内核,达到单步/断点等调试目的,这种方法的特点是需要把目标CPU停住后才能观察现场情况。在真正的实时系统中,停止CPU运行往往导致现场失真,ETM就能够在CPU运行过程中把现场信息捕捉压缩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《岛》读后感:2024年人类心理分析
- 四川省绵阳市2025届高三适应性考试语文试题及答案
- 部编版中考道德与法治一轮复习:人民当家作主-专项练习题(含答案)
- 掌握2024版ERP系统:采购管理专业培训教程
- 商混站(商品混凝土公司)安全风险分级管控和隐患排查治理双体系方案全套资料汇编完整版
- 营养与健康-矿物质
- 2024年保安员培训:教学大纲的革新与挑战
- 八年级生物上册4.2.3鸟的生殖和发育导学案无答案新版济南版
- 2024-2025学年新教材高中生物课时作业9生态系统的物质循环含解析新人教版选择性必修2
- 2024高考地理一轮复习课时规范练41世界重要地区含解析湘教版
- 2024年公安智能外呼项目合同
- 河南省信阳市2024-2025学年七年级上学期期中历史试题(含答案)
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 2024年学校食堂管理工作计划(六篇)
- 体育赛事组织服务协议
- 天车工竞赛考核题
- 民办非企业单位理事会制度
- 临床输血的护理课件
- 民生银行在线测评真题
- 人教版(PEP)小学六年级英语上册全册教案
- 第二章 旅游线路类型及设计原则
评论
0/150
提交评论