《嵌入式调试技术PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《嵌入式调试技术PPT讲稿.ppt(110页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式调试技术嵌入式调试技术第1页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院2第第3章章 嵌入式微处理器技术基础嵌入式微处理器技术基础l本章主要介绍以下内容:l嵌入式微处理器典型技术l主流嵌入式微处理器l嵌入式处理器的调试技术l边界扫描测试技术JTAG第2页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院33.3 嵌入式系统调试技术嵌入式系统调试技术l指令集模拟器lROM仿真器l实时在线仿真l片上调试器与背景调试模式l基于Angle的调试方案l边界扫描测试技术和JTAG接口概述l跟踪接口ETMlNexus调试标准l半
2、主机调试方式第3页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院4嵌入式系统调试技术概貌嵌入式系统调试技术概貌l嵌入式计算机调试基本结构l主机目标机结构l主机常常是PC平台l原因:l运算能力相对较弱l存储能力和显示能力较小l数据吞吐率较小l很难在目标程序运行的计算设备上直接进行硬件软件调试。第4页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院5主机和目标机之间调试信道主机和目标机之间调试信道l主机往往和目标机的体系结构不同。因此,需要有通信转换器对调试信息进行转换。第5页,共110页,编辑于2022年,星期日2023/
3、4/20曲阜师范大学 计算机科学学院63.3.1 指令集模拟器指令集模拟器l指令集模拟器lISS,Instruction Set Simulatorl在一台计算机上模拟另外一台计算机上目标程序(机器指令)运行过程的软件工具l有时也叫做软仿真器l嵌入式系统开发的不可或缺工具 第6页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院7指令集模拟器的结构指令集模拟器的结构l指令集模拟器是一个纯软件系统l内部有一个反映目标处理器硬件的数据结构l以时序状态机的方式工作l可以根据目标机指令集定义执行目标指令l按照实现方法的不同指令集模拟器分为l解释型l编译型第7页,共11
4、0页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院8指令集模拟器的运行指令集模拟器的运行l指令集模拟器的操作界面与IDE类似l模仿目标机的取指、译码和执行操作l将中间执行结果或者最终执行结果存入目标机映像数据结构l调试人员可以观察目标机映像寄存器或者映像存储器的单元,了解目标代码的执行结果第8页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院9指令集模拟器主要用途指令集模拟器主要用途l指令集模拟器主要用在以下几种场合:l没有目标机开发板l有目标机开发板,但使用目标机开发板成本较高l调试的程序模块不需要在实际开发板上执行,例如学习AR
5、M汇编语言程序l模块代码的先行调试,以加快调试速度第9页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院10流行的流行的ARM指令集模拟器指令集模拟器l有两种比较流行的指令集模拟器:lARMulatorlSkyEyel还有一些研究中的ARM指令集模拟器第10页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院11ARM公司推出的公司推出的ARMulatorlARMulator是业界著名的指令集仿真器l运行在PC平台上lARM体系结构的指令集模拟器l集成在SDT 2.51和ADS 1.2上的插件l由四个部分组成:处理器核模型、
6、存储器接口、处理器接口、操作系统接口。第11页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院12指令模拟精度的级别指令模拟精度的级别l指令模拟精度有三个级别l指令级l周期级l时序(节拍)级lARMulator完全实现了指令级和周期级模拟精度,但是没有完全实现时序级精度。第12页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院13指令集模拟器指令集模拟器ARMulator对对ARM程序运行程序运行进行指令周期数统计的结果快照进行指令周期数统计的结果快照第13页,共110页,编辑于2022年,星期日2023/4/20曲阜师范
7、大学 计算机科学学院14Armulator的指令周期统计结果说明的指令周期统计结果说明第14页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院15SkyEyel一个ARM体系结构的嵌入式仿真和集成开发环境l国内开放源码的自由软件项目l运行环境:Linux平台和Windows的Cygwinl能够仿真的CPU包括:l不带MMU的Atmel 91x40l带MMU的ARM720T等基于ARM7TDMI的内核lSkyEye还能够模拟其它一些硬件外设,如串口、网络芯片、内存、时钟等第15页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学
8、院163.3.2 ROM仿真器仿真器l嵌入式系统的程序存储器为ROM时,如果调试需要修改代码、设置断点及更新程序代码,就需要进行离线编程。l离线编程是一个费时间的工作,用RAM替代ROM可以解决这个问题lROM仿真器l用RAM以及附加电路制成的替代ROM进行离线编程的工具lMCS-51单片机研发过程中常常使用ROM仿真工具第16页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院17ROM仿真器照片仿真器照片l支持各种51系列芯片的JY-E2300仿真器照片第17页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院183.3.
9、3 实时在线仿真实时在线仿真l实时在线仿真lICE,In-Circuit Emulatorl目前最为有效的调试嵌入式系统的手段l通过ICE的实际执行,开发者可以排除人们难以发现的隐藏在设计方案中的逻辑错误。lICE的另外一个主要功能是在应用系统中仿真微控制器的实际执行l优点是功能强大,软硬件均可以做到完全实时在线调试;缺点是价格昂贵。第18页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院193.3.4 片上调试技术片上调试技术l片上调试技术lOCD,On-Chip Debuggingl嵌入式调试技术中运用最广泛的一种l片上调试是在CPU的内部嵌入额外的控制
10、模块,即片上调试器;使得CPU的工作模式分为正常模式和调试模式。第19页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院20常用的片上调试技术常用的片上调试技术l目前常用的片上调试技术主要有三种:l背景调试模式lBDM,Background Debug ModelJTAGlIEEE 1149.1lNexuslIEEE-5001 ISTO第20页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院21背景调试模式背景调试模式l背景调试模式lMotorola公司专有的片上调试器。lMotorola公司是第一个把片上调试器集成在处理
11、器内核中的嵌入式微处理器厂商。lBDM首先在68300系列处理器上实现l现在在其他微控制器上得到应用第21页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院22BDM与与ICE的区别的区别l传统ICE调试时,使用ICE中的CPU来取代目标板中的CPU,目标板和ICE之间使用多芯扁平电缆连接。而ICE在使用时一般还需要与主机(一般是PC)连接。l在BDM调试方式下嵌入式处理器被停机,各种调试命令可以被发送到处理器中访问内存和寄存器。因此,满足BDM调试的微处理器内部已经包含了用于调试的微码,调试时仿真器软件和目标板上CPU的调试微码通信,目标板上的CPU无需取
12、出。第22页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院23BDM调试器与主机和目标开发板调试器与主机和目标开发板之间的连接之间的连接 第23页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院243.3.5 基于基于Angel的调试方案的调试方案lAngel是ARM公司的调试监控程序l也称为Angel调试代理l由多个程序部件组成l与传统调试监控程序相类似l驻留在目标机上lAngel接收主机上发送过来的调试命令,执行指定的调试操作,并将调试结果反馈回主机。l适用于各种ARM硬件平台。第24页,共110页,编辑于2022年
13、,星期日2023/4/20曲阜师范大学 计算机科学学院25Angel的功能的功能l与JTAG调试代理不同,Angel需要占用一定的系统资源,例如内存空间和串口等。l基于Angel的调试系统包含两个关键部分,位于主机上的调试软件和驻留在目标机上的Angel调试监控程序。lAngel调试系统主要分成以下三层:应用层、功能支持层、通道管理层。lAngel的两种版本:完整版本和最小版本。第25页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院26Angel调试协议的主机端组件调试协议的主机端组件第26页,共110页,编辑于2022年,星期日2023/4/20曲阜师范
14、大学 计算机科学学院27Angel调试协议的目标端组件调试协议的目标端组件第27页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院28边界扫描测试技术边界扫描测试技术l边界扫描测试技术和JTAG接口是嵌入式系统最具特色的技术l集成电路研制时的内部电路测试l嵌入式软件开发时的程序调试第28页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院293.3.6 边界扫描技术和边界扫描技术和JTAG接口接口lJTAG是一种片上调试接口,即OCD接口。lOCD英文原文:lOn-Chip Debugging InterfacelJTAG的
15、建立使得集成电路固定在PCB(Printed Circuit Board,印刷电路板)上,只通过边界扫描便可以被测试。l含有JTAG口的芯片种类较多,如CPU、DSP、CPLD/FPGA等,广泛得到应用。第29页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院30测试摩尔定律测试摩尔定律l1999年英特尔公司的副总裁Patrick Celsinger先生在美国大西洋城举行的国际测试会议上提出了测试摩尔定律,并就此了讲演。l该定律预测未来几年,每一晶体管的硅投资成本将低于其测试成本。lPatrick Celsinger先生指出,硅硅成成本本已已迅迅速速下下降降
16、,测测试试成成本本却却基基本本保保持持不不变变。并且,被测器件的速度常常比测试设备能测的速度高。也就是说,测试设备的发展速度已跟不上测试对象的发展。同时,测试成本在制造成本中所占比例过大。第30页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院31double d_bh;short s_bh;double d_bh;short s_bh;sense_horizontal_velocity(&d_bh);sense_horizontal_velocity(&d_bh);s_bh=d_bh;/s_bh=d_bh;/OPERAND ERROROPERAND ERR
17、OR代码出错案例:代码出错案例:阿丽亚娜阿丽亚娜5 5型火箭发射失败型火箭发射失败第31页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院32l将将大大的的浮浮点点数数转转换换成成整整数数是是一一种种常常见见的的程程序序错错误误来来源源。1996年6月4日,对于Ariane 5火箭的初次航行来说,这样一个错误产生了灾难性的后果。发射后仅仅37秒,火箭偏离它的飞行路径,解体并爆炸了。火箭上载有价值5亿美元的通信卫星。6亿美元付之一炬。后来的调查显示,控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据。l失事调查报告指出,火箭爆炸是因为:它没有发送
18、飞行控制信息,而是送出了一个诊断位模式,表明在将一个64位浮点数转换成16位有符号整数时,产生了溢出。溢出值测量的是火箭的水平速率,这比早先的Ariane 4火箭所能达到的高出了5倍。在设计Ariane 4火箭的软件时,他们小心地分析了数字值,并且确定水平速率绝不会超出一个16位的数。不幸的是,他们在Ariane 5火箭的系统中简单地重新使用了这一部分,而没有检查它所基于的假设。第32页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院33JTAG基本概念基本概念lJTAG是Joint Test Action Group(联合测试行动组)的缩写,联合测试行动组
19、是IEEE的一个下属组织l该组织研究标准测试访问接口和边界扫描结构(Standard Test Access Port and Boundary-Scan Architecture)lJTAG的研究成果被接纳为IEEE1149.1-1990规范lJTAG成为电子行业的一种国际测试标准l现在,人们通常用JTAG来表示IEEE1149.1-1990规范,或者满足IEEE1149规范的接口或者测试方法。第33页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院34JTAG扫描循环示意图扫描循环示意图第34页,共110页,编辑于2022年,星期日2023/4/20曲阜
20、师范大学 计算机科学学院35边界扫描单元边界扫描单元lJTAG标准定义了一个串行的移位寄存器l寄存器的每一个单元分配给IC芯片的相应引脚l每一个独立的单元称为BSC(Boundary-Scan Cell)边界扫描单元l这个串联的BSC在IC内部构成JTAG回路l所有的BSR(Boundary-Scan Register)边界扫描寄存器通过JTAG测试激活第35页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院36ARM的的JTAG调试结构调试结构第36页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院37ARM调试系统说明
21、调试系统说明l调试系统一般包括3部分:l调试主机调试主机是运行软件调试器的计算机l例如ADW,ARM Debugger for Windowsl调试主机允许发出高级命令,如设置断点或检查存储器内容。l协议转换器协议转换器处理调试主机调试主机和ARM7TDMI处理器JTAG接口接口之间的通讯l包括调试主机发出的高级命令以及JTAG接口的低级命令。l一般通过增强型并行口进行连接。第37页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院38ARM调试系统说明(续)调试系统说明(续)l调试目标调试目标lARM CPU主处理器逻辑:对调试有硬件支持。l嵌入式ICE-R
22、T逻辑:这是用于产生调试异常(如断点)的寄存器和比较器的集合。lTAP控制器:用JTAG串行接口控制扫描链的动作。第38页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院39协议转换器的调试扩充功能协议转换器的调试扩充功能lARM7TDMI具有易于在最低层调试的硬件扩充,其调试扩充功能如下列出:l允许暂停程序的执行;l检查和修改内核的内部状态;l查看和修改存储器系统的状态;l执行中止异常,允许实时的内核监控;l重新开始程序执行。第39页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院403.4.3 ARM7TDMI扫描链布
23、局扫描链布局第40页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院41ARM7TDMI内核扫描链结构内核扫描链结构113位38位33位第41页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院42JTAG接口的接口的IC内部结构内部结构第42页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院43JTAG状态转换图状态转换图第43页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院44JTAG信号信号lTMS:测试模式选择(Test Mode Select
24、)l通过TMS信号控制JTAG状态机的状态。lTCK:JTAG的时钟信号lTDI:数据输入信号lTDO:数据输出信号lnTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)。第44页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院453.4.4 TAP控制器控制器lTAP控制器内部有多个寄存器l测试数据寄存器lJTAG控制指令寄存器l旁路寄存器lARM7TDMI器件识别码(ID)寄存器l扫描路径选择寄存器第45页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院46JTAG的的TAP控制器结构
25、控制器结构第46页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院47测试数据寄存器测试数据寄存器l在TDI和TDO之间可以连接的测试数据寄存器有如下8个:l指令寄存器;l旁路寄存器;lARM7TDMI的器件识别(ID)码寄存器;l扫描路径选择寄存器;l扫描链0、1、2和3。第47页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院48JTAG控制指令寄存器控制指令寄存器lJTAG接口中指令寄存器长度是4位l在指令寄存器共安排10条控制指令,见下表。指令二进制指令二进制EXTEST0000HIGHZ0111SCAN_N001
26、0CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS1111第48页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院49JTAG的指令寄存器的指令寄存器l在SHIFT-IR态,将指令寄存器选做TDI和TDO之间串行路径。见(a)l在UPDATE-IR态,指令寄存器的值成为当前指令。见(b)l在CAPTURE-IR态,将b0001加载到该寄存器。该值在SHIFT-IR态移位输出。见(c)l复位时,IDCODE(b1110)成为当前指令。见(d)l指令寄存器的最低有
27、效位首先被扫描输入和输出。指令寄存器TDITDOSHIFT-IR状态状态(a)指令寄存器值=0001CAPTURE-IR状态状态(c)TDITDO当前指令寄存器TDITDOUPDATE-IR状态状态(b)当前指令寄存器IDCODE=0001IDCODE-IR状态状态(d)TDITDO第49页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院50旁路寄存器旁路寄存器l功能:l通过提供TDI和TDO之间的路径,在扫描测试期间对器件旁路。l长度:l1位l操作方式:l当BYPASS指令是指令寄存器中的当前指令时,串行数据在SHIFT-DR态以1个TCK周期的延迟从TD
28、I传到TDO。旁路寄存器没有并行输出。l在CAPTURE-DR态,从旁路寄存器的并行输入端装入“0”。第50页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院51ARM7TDMI器件器件识别码识别码(ID)寄存器寄存器l识别码用途:读32位器件识别码。不提供可编程的识别码。l长度:32位。寄存器的格式如下图所示。l操作方式l当IDCODE指令是当前指令时,将ID寄存器选做TDI和TDO之间的串行路径。ID寄存器没有并行输出。在CAPTURE-DR态,32位器件识别码从其并行输入端加载到ID寄存器。寄存器的最低有效位首先被扫描输出。版本 4位部件编号 16位制
29、造者标识 12位0311128第51页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院52扫描路径选择寄存器扫描路径选择寄存器l用途和长度l变换当前活动的扫描链,4位。l操作方式l仅当执行了一条SCAN_N指令或当发生复位时,当前所选的扫描链改变。复位时,将扫描链0选做活动的扫描链。l在SHIFT-DR态,SCAN_N指令把扫描路径选择寄存器作为TDI和TDO之间的串行数据移位路径。l在CAPTURE-DR态,将b1000加载到该寄存器。这个值在SHIFT-DR态加载输出,同时装入新值。l在UPDATE-DR态,由寄存器中的值选择一个扫描链成为当前活动的扫描
30、链。所有进一步的指令(如INTEST)都应用到该扫描链上。第52页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院53扫描链编号分配扫描链编号分配扫描链编号功能0宏单元扫描测试1调试2嵌入式ICE-RT逻辑编程3外部边界扫描(由ASIC设计者实现)4保留8保留第53页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院543.4.5 JTAG扫描链工作原理扫描链工作原理lJTAG扫描链由扫描单元组成l每一个被测试逻辑电路引出信号线同它的引脚之间配置一个扫描单元l每一个扫描单元的内部由两个D触发器和两个多路选择器组成l分别把逻辑
31、电路输入输出线同引脚之间的穿越扫描单元的电流方向成为横向,沿扫描单元串接线运动的电流方向成为纵向。lJTAG扫描链一共有四种操作:挂起、捕获、移位和更新。第54页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院55JTAG扫描单元构造扫描单元构造纵向纵向横向横向横向四种操作四种操作:挂起,移挂起,移位,俘获,更新位,俘获,更新第55页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院56JTAG扫描链的组成扫描链的组成LogicPinPinPinPinLogicLogicLogicLogic纵向横向PinPinLogic第5
32、6页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院57JTAG处于挂起状态处于挂起状态横向直行横向直行横向直行横向直行如同扫描链不如同扫描链不存在存在第57页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院58捕获捕获JTAG状态状态当前引脚当前引脚信号的快照信号的快照存入扫描链存入扫描链第58页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院59移位数据移位数据纵纵向向直直行行此刻处理器的此刻处理器的工作脉冲暂停工作脉冲暂停第59页,共110页,编辑于2022年,星期日2023/4/
33、20曲阜师范大学 计算机科学学院60移位结束移位结束纵纵向向直直行行此刻处理器此刻处理器的工作脉冲的工作脉冲暂停暂停第60页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院61数据更新数据更新JTAG扫描链取代扫描链取代系统向处理器输系统向处理器输入信号,并且替入信号,并且替代处理器向系统代处理器向系统输出信号。输出信号。第61页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院62扫描链扫描链0lScan Chain 0:有113个扫描单元,包括ARM核的所有的I/O、地址数据总线和输入输出控制信号。这条链上的信号复杂,不
34、易控制,但是包含的信息丰富,可以通过这条链得到ARM7TDMI内核的所有信息。l从查询数据输入到输出,扫描链的顺序为:(1)数据总线位0-位31;(2)内核控制信号;(3)地址总线位31-位0;(4)嵌入式ICE-RT控制信号。l嵌入式ICE-RT控制信号(特别是DBGRQI)首先被扫描输出。第62页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院63扫描链扫描链0单元单元编号信号类型编号信号类型132D0D31输入/输出41BL0输入33BREAKPT输入42BL1输入34NENIN输入43BL2输入35NENOUT输出44BL3输入36LOCK输出45D
35、CTL输出37BIGEND输入46nRW输出38DBE输入47DBGACK输出39MAS0输出48CGENDBGACK输出40MAS1输出49nFIQ输入第63页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院64扫描链扫描链0单元单元(续续1)编号信号类型编号信号类型50nIRQ输入59nMREQ输出51nRESET输入60SEQ输入52ISYNC输入61nTRANS输入53BRGRQ输入62CPB输入54ABORT输入63nM4输出55CPA输入64nM3输出56nOPC输出65nM2输出57IFEN输入66nM1输出58nCPI输出67nM0输出第64
36、页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院65扫描链扫描链0单元单元(续续2)编号信号类型编号信号类型68nEXEC输出69ALE输出70ABE输入71APE输入72TBIT输出73nWAIT输入74105A31A0输出106113ICE-RT信号第65页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院66扫描链扫描链1l扫描链1:有33个扫描单元,包括ARM核的数据总线和一个断点控制信号。这是一条很有用的链,通过控制这条链,可以控制ARM核执行指定的指令,从而实现对ARM的内部寄存器、协处理器以及外部存储器的读写
37、操作。第66页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院67扫描链扫描链1(续)(续)l扫描链1的前32位用于数据值,加上在BREAKPT内核输入上的扫描单元。第33位有如下4个用途:l在正常INTEST测试条件下,允许将已知值扫描到BREAKPT的输入。l在EXTEST测试条件下,捕获从系统加到BREAKPT输入的值。l在调试期间,第33位的值决定在执行指令之前ARM7TDMI核是否同步回系统速度。lARM7TDMI核进入调试状态后,该位第一次被捕获并被扫描输出。其值告诉调试器内核是否由断点(位33清零)或由观察点(位33置位)进入调试状态。第67页
38、,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院68扫描链扫描链2lScan Chain 2共有38个扫描单元,通过控制EmbeddedICE宏单元,实现对ARM执行指令的断点、观察点的控制。l从TDI到TDO的扫描链次序如下:l读/写;l寄存器地址位4-位0;l数据值位31-位0。第68页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院693.4.6 嵌入式嵌入式ICE-RT逻辑逻辑l嵌入式ICE-RT逻辑也称为Embedded ICE或者Embedded ICE-RT,其主要功能是为ARM7TDMI核提供集成的在线调试
39、支持。lARM公司的片上测试部件。l使用ARM7TDMI的TAP控制器来控制嵌入式ICE-RT逻辑的串行数据输入。l下图给出了内核、嵌入式ICE-RT逻辑和TAP控制器之间的关系。图中仅显示了有关的信号。第69页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院70嵌入式嵌入式ICE-RT连线结构图连线结构图第70页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院71嵌入式嵌入式ICE-RT逻辑的组成逻辑的组成l嵌入式ICE-RT逻辑的组成如下:l2个实时观察点单元;l3个独立的寄存器:调试控制寄存器、调试状态寄存器、中止状
40、态寄存器;l调试通信通道DCC(Debug Communications Channel)。第71页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院72嵌入式嵌入式ICE-RT逻辑的组成(续)逻辑的组成(续)l调试控制寄存器和调试状态寄存器提供嵌入式ICE-RT操作的所有控制。在选择监控模式时使用中止状态寄存器。l可以编程1个或2个观察点单元来暂停内核程序的执行。当编程进入嵌入式ICE-RT的值与当前出现在地址总线、数据总线和各种控制信号的值匹配时,暂停执行。第72页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院73Em
41、beddedICE的数据结构的数据结构lEmbeddedICE是集成在ARM内核中的嵌入式ICE仿真器。其结构如下图所示。l通过对EmbeddedICE的控制,对EmbeddedICE中寄存器的读取,可以获得ARM内核的状态,为程序设置断点以及读取Debug通讯通道。lEmbeddedICE的串行数据长度是38位,包括:l32位数据l5位的访问EmbeddedICE中寄存器的地址l1个读写控制位第73页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院74EmbeddedICE结构结构EmbeddedICE扫描链共38位第74页,共110页,编辑于2022年,
42、星期日2023/4/20曲阜师范大学 计算机科学学院75EmbeddedICE的寄存器的寄存器地址宽度功能地址宽度功能000006Debug control011009Watchpoint 0 control value000015Debug status011018Watchpoint 0 control mask000101Abort status1000032Watchpoint 1 address value001006Debug commands control register 1000132Watchpoint 1 address mask0010132Debug command
43、s data register 100102Watchpoint 1 data value01000 32Watchpoint 0 address value 1001132Watchpoint 1 data mask0100132Watchpoint 0 address mask 101009Watchpoint 1 control value0101032Watchpoint 0 data value 101018Watchpoint 1 control mask0101132Watchpoint 0 data mask 第75页,共110页,编辑于2022年,星期日2023/4/20曲阜
44、师范大学 计算机科学学院76Watchpoint寄存器的使用寄存器的使用 lEmbeddedICE的一个主要作用就是可以在ARM的程序中设置软件或者硬件的断点。l在EmbeddedICE中,集成了一个比较器,比较器负责把ARM处理器取指的地址A31:0、数据D31:0以及一些控制信号与EmbeddedICE中Watchpoint寄存器中设置的数值相比较l具体的说应该是进行同或运算l比较的结果用来确定输出一个ARM的断点(Breakpoint)信号。l具体的运算关系如下公式所描述:l(Av31:0,Cv4:0 XNOR A31:0,C4:0)OR Am31:0,Cm4:0=0 x1FFFFFFF
45、FF第76页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院77EmbeddedICE断点信号条件断点信号条件l当上述表达式为真的时候,断点信号有效,ARM的内核就进入了Debug模式。l在Debug模式下,ARM内核的时钟从系统的主时钟(MCLK)被替换成跟踪时钟(DCLK)。l跟踪时钟(DCLK)是通过在JTAG的状态机的Run-test/Idle状态的TCK来控制的。第77页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院78Watchpoint表达式的含义表达式的含义 信号说 明Av31:0Watchpoint中地
46、址寄存器(Address register)的数据Am31:0Watchpoint中地址mask寄存器(address mask register)的数据A31:0从ARM7TDMI的核中得到的总线的地址,也就是当前处理器取址的地址Dv31:0Watchpoint中数据寄存器(data register)中的数据Dm31:0Watchpoint中数据mask寄存器(data mask register)的数据D31:0从ARM7TDMI的核中得到的总线的数据,也就是当前处理器取址所到的数据Cv8:0Watchpoint中控制寄存器(control register)中的数据Cm7:0Watch
47、point中控制mask寄存器(control mask register)中的数据C9:0ARM7TDMI的控制总线第78页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院793.4.7 ARM7TDMI断点的设置断点的设置lARM中断点的设置主要是设置EmbeddedICE中的寄存器l主要包括:设置EmbeddedICE的两个watchpoint单元的地址、数据或控制信号寄存器。l当一个(或者两个)watchpoint寄存器满足条件的时候,ARM就从运行状态进入Debug状态。l也就是与ARM中的地址(也可以包括数据)和ARM所执行的当前的指令相同的时候
48、第79页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院80硬件断点和软件断点硬件断点和软件断点l在ARM7TDMI处理器的内核中,有两种断点的设置方式:硬件断点和软件断点硬件断点和软件断点l硬件断点l通过设置EmbeddedICE中的Watchpoint寄存器中的地址相关的寄存器,来实现断点。l通过这种方式设置断点,断点数目受EmbeddedICE中的Watchpoint数目的限制(在ARM7TDMI处理器的内核中,只有两组Watchpoint寄存器,最多只能设置两个硬件断点)。l硬件断点可以在任何地方设置。不受存储器类型的限制。第80页,共110页,编辑
49、于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院81软件断点软件断点l软件断点的实现比较复杂,需要如下几个步骤:l通过设置EmbeddedICE中的Watchpoint寄存器中的数据相关寄存器(data value和data mask value)为一个特殊的32位数字ARM的未定义指令,比如:0 x06000010。l替换RAM中的指令为上面所设置的那个未定的指令0 x06000010,作为一个标志。l当系统运行到RAM中所设定的单元位置时候,那个事先设置的标志数字将被当作一个指令读入处理器的内核。第81页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学
50、 计算机科学学院82软件断点(续)软件断点(续)l此时,系统所读入的指令的数据刚好和data value中的数字相吻合,系统就进入了Debug模式。这就是软件断点的工作过程。l软件断点的数目不受ARM内核的Watchpoint数目的限制,不管系统设置多少个软件断点,仅仅使用了ARM内核的一个Watchpoint资源。l软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置。第82页,共110页,编辑于2022年,星期日2023/4/20曲阜师范大学 计算机科学学院83断点设置小结断点设置小结l总之,在