嵌入式系统基础教程第04讲第3章嵌入式调试技术课件.ppt
《嵌入式系统基础教程第04讲第3章嵌入式调试技术课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统基础教程第04讲第3章嵌入式调试技术课件.ppt(84页珍藏版)》请在三一办公上搜索。
1、嵌入式系统原理与开发,第04讲南京大学计算机系 俞建新主讲,嵌入式系统原理与开发第04讲,第3章 嵌入式微处理器技术基础,本章主要介绍以下内容:嵌入式处理器的调试技术边界扫描测试技术JTAG,第3章 嵌入式微处理器技术基础本章主要介绍以下内容:,3.3 嵌入式系统调试技术,指令集模拟器ROM仿真器实时在线仿真片上调试器与背景调试模式,基于Angle的调试方案边界扫描测试技术和JTAG接口概述Nexus调试标准半主机调试方式,3.3 嵌入式系统调试技术指令集模拟器基于Angle的调试方,嵌入式系统调试技术概貌,嵌入式计算机调试基本结构主机目标机结构主机常常是PC平台原因:运算能力相对较弱存储能力
2、和显示能力较小数据吞吐率较小很难在目标程序运行的计算设备上直接进行硬件软件调试。,嵌入式系统调试技术概貌嵌入式计算机调试基本结构,嵌入式系统调试技术概貌,8051单片机寻址范围:0000H FFFFH 容量64KB地址长度:16位片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址DPTR是16位地址指针,寻址范围就可达到64KBkeil C51,嵌入式系统调试技术概貌8051单片机,Keil C51的系统要求,Keil C51的系统要求,主机和目标机之间调试信道,主机往往和目标机的体系结构不同。因此,需要有通信转换器对调试信息进行转换。,主机和目标机之间调试信道主机往往和目标机的
3、体系结构不同。因此,SDT(Software Development Kit ,软件开发工具包)介绍,ARM SDT包括一套完整的应用软件开发工具 *armcc ARM的C编译器,具有优化功能,兼容于ANSI C(American National Standards Institute,美国国家标准学会)。 *tcc THUMB的C编译器,同样具有优化功能,兼容于ANSI C。 *armasm 支持ARM和THUMB的汇编器。 *armlink ARM连接器,连接一个和多个目标文件,最终生成ELF( executable and linkable format )格式的可执行映像文件 *ar
4、msd ARM和THUMB的符号调试器。,SDT(Software Development Kit ,,Keil简介,Keil简介,调试程序界面,Keil调试界面,调试程序界面Keil调试界面,Keil生成的hex文件(STC-ISP打开),Hex文件和Elf文件都是程序汇编的产物。,Keil生成的hex文件(STC-ISP打开)Hex文件和E,3.3.1 指令集模拟器,指令集模拟器ISS,Instruction Set Simulator在一台计算机上模拟另外一台计算机上目标程序(机器指令)运行过程的软件工具有时也叫做软仿真器嵌入式系统开发的不可或缺工具,3.3.1 指令集模拟器指令集模拟器
5、,指令集模拟器的结构,指令集模拟器是一个纯软件系统内部有一个反映目标处理器硬件的数据结构以时序状态机的方式工作可以根据目标机指令集定义执行目标指令按照实现方法的不同指令集模拟器分为解释型编译型,指令集模拟器的结构指令集模拟器是一个纯软件系统,解释型和编译型,编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,翻译只做了一次,运行时不需要翻译,像C/C+、Pascal/Object Pascal(Delphi)等都是编译语言。解释则不同,解释性语言的程序不需要编译,解释性语言每执行一次就要翻译一次,效率比较低,解释是一句一句的翻译,如Java、Jav
6、aScript、VBScript、Perl、Python、Ruby、MATLAB 等等。,解释型和编译型编译型语言写的程序执行之前,需要一个专门的编译,指令集模拟器的运行,指令集模拟器的操作界面与IDE (Integrated Development,集成开发环境)类似模仿目标机的取指、译码和执行操作将中间执行结果或者最终执行结果存入目标机映像数据结构调试人员可以观察目标机映像寄存器或者映像存储器的单元,了解目标代码的执行结果调试程序界面,指令集模拟器的运行指令集模拟器的操作界面与IDE (Inte,指令集模拟器主要用途,指令集模拟器主要用在以下几种场合:没有目标机开发板有目标机开发板,但使用
7、目标机开发板成本较高调试的程序模块不需要在实际开发板上执行,例如学习ARM汇编语言程序模块代码的先行调试,以加快调试速度,指令集模拟器主要用途指令集模拟器主要用在以下几种场合:,流行的ARM指令集模拟器,有两种比较流行的指令集模拟器:ARMulatorSkyEye还有一些研究中的ARM指令集模拟器,流行的ARM指令集模拟器有两种比较流行的指令集模拟器:,ARM公司推出的ARMulator,ARMulator是业界著名的指令集仿真器运行在PC平台上ARM体系结构的指令集模拟器集成在SDT 2.51(软件开发工具包)和ADS 1.2( ARM Developer Suite ,全套的实时开发软件工
8、具)上的插件由四个部分组成:处理器核模型、存储器接口、处理器接口、操作系统接口。,ARM公司推出的ARMulatorARMulator是业界著,指令模拟精度的级别,指令模拟精度有三个级别指令级周期级时序(节拍)级ARMulator完全实现了指令级和周期级模拟精度,但是没有完全实现时序级精度。,指令模拟精度的级别指令模拟精度有三个级别,指令集模拟器ARMulator对ARM程序运行进行指令周期数统计的结果快照,指令集模拟器ARMulator对ARM程序运行进行指令周期,Armulator的指令周期统计结果说明,Armulator的指令周期统计结果说明,SkyEye,一个ARM体系结构的嵌入式仿真
9、和集成开发环境国内开放源码的自由软件项目运行环境:Linux平台和Windows的Cygwin( cygwin是一个在windows平台上运行的Unix模拟环境)能够仿真的CPU包括:不带MMU( Memory Management Unit,内存管理单元)的Atmel 91x40带MMU的ARM720T等基于ARM7TDMI的内核SkyEye还能够模拟其它一些硬件外设,如串口、网络芯片、内存、时钟等,SkyEye一个ARM体系结构的嵌入式仿真和集成开发环境,指令集模拟器缺点,部分集成开发环境提供了指令集模拟器,可方便用户在 PC 机上完成一部分简单的调试工作,但是由于指令集模拟器与真实的硬件
10、环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。,指令集模拟器缺点部分集成开发环境提供了指令集模拟器,可方便用,3.3.2 ROM仿真器,嵌入式系统的程序存储器为ROM(只读存储器)时,如果调试需要修改代码、设置断点及更新程序代码,就需要进行离线编程。离线编程是一个费时间的工作,用RAM(随机存取存储器)替代ROM可以解决这个问题ROM(只读存储器)仿真器用RAM(随机存储器)以及附加电路制成的替代ROM进行离线编程的工具MCS-51单片机研发过程中常常使用ROM仿真工具,3.3.2 ROM仿真器嵌入式系统
11、的程序存储器为ROM(只,ROM仿真系统组成和结构框图,ROM仿真系统组成和结构框图,ROM仿真器原理,仿真器由两组RAM区,RAM1和RAM2区,分别被目标机和仿真器分别操作,隔离电路的动作是由仿真器CUP控制,仿真器CUP是听命于上位机指令。某一时刻仿真器CPU对应于RAM1区,目标机CUP对应于RAM2区,此时上位机可以对RAM1区的数据进行更改,而RAM2区作为目标机的ROM被使用;比如说两个RAM起始数据都为P3=0 xFE,RAM1被上位机指令修改为P3=0 xFF,此时的RAM2仍然被目标机CUP控制,P3口输出为0 xFE;,ROM仿真器原理仿真器由两组RAM区,RAM1和RA
12、M2区,,ROM仿真器原理,当上位机发出切换指令,仿真器接受此指令并且进行隔离切换,此时的仿真器CUP对应于RAM2(P3=0 xFE),目标机对应于RAM1(P3=0 xFF),所以目标机输出P3=0 xFF,而ROM2将会继续做修改操作,直到下次切换信号到来。,ROM仿真器原理当上位机发出切换指令,仿真器接受此指令并且进,ROM仿真器原理,为了避免目标机在取指或参数期间产生切换,采用和 来进行控制。,ROM仿真器原理为了避免目标机在取指或参数期间产生切换,采用,ROM仿真器照片,支持各种51系列芯片的JY-E2300仿真器照片,ROM仿真器照片支持各种51系列芯片的JY-E2300仿真器,
13、3.3.3 实时在线仿真,实时在线仿真ICE,In-Circuit Emulator目前最为有效的调试嵌入式系统的手段通过ICE的实际执行,开发者可以排除人们难以发现的隐藏在设计方案中的逻辑错误。ICE的另外一个主要功能是在应用系统中仿真微控制器的实际执行优点是功能强大,软硬件均可以做到完全实时在线调试;缺点是价格昂贵。,3.3.3 实时在线仿真实时在线仿真,在线仿真器,在线仿真器使用仿真头完全取代目标板上的 CPU ,可以完全仿真 ARM 芯片的行为,提供更加深入的调试功能。但这类仿真器为了能够全速仿真时钟速度高于 100MHz 的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵
14、。在线仿真器通常用在 ARM 的硬件开发中,在软件的开发中较少使用,其价格高昂也是在线仿真器难以普及的因素。,在线仿真器在线仿真器使用仿真头完全取代目标板上的 CPU ,,嵌入式系统基础教程第04讲第3章嵌入式调试技术课件,3.3.4 片上调试技术,片上调试技术OCD,On-Chip Debugging嵌入式调试技术中运用最广泛的一种片上调试是在CPU的内部嵌入额外的控制模块,即片上调试器;使得CPU的工作模式分为正常模式和调试模式。,3.3.4 片上调试技术片上调试技术,常用的片上调试技术,目前常用的片上调试技术主要有三种:背景调试模式BDM,Background Debug ModeJTA
15、GIEEE 1149.1NexusIEEE-5001 ISTO,常用的片上调试技术目前常用的片上调试技术主要有三种:,背景调试模式,背景调试模式Motorola(摩托罗拉)公司专有的片上调试器。Motorola公司是第一个把片上调试器集成在处理器内核中的嵌入式微处理器厂商。BDM首先在68300系列处理器上实现现在在其他微控制器上得到应用,背景调试模式背景调试模式,BDM与ICE的区别,传统ICE调试时,使用ICE中的CPU来取代目标板中的CPU,目标板和ICE之间使用多芯扁平电缆连接。而ICE在使用时一般还需要与主机(一般是PC)连接。(ICE调试是可以完全取代目标板的CPU)。在BDM调试
16、方式下嵌入式处理器被停机,各种调试命令可以被发送到处理器中访问内存和寄存器。因此,满足BDM调试的微处理器内部已经包含了用于调试的微码(不是所有的芯片都可以用BDM调试的),调试时仿真器软件和目标板上CPU的调试微码通信,目标板上的CPU无需取出。(不完全取代)。,BDM与ICE的区别传统ICE调试时,使用ICE中的CPU来,BDM的烧写及在线调试,BDM调试器内部有一个8位的MC9HC08JB16单片机,该单片机有USB接口,可与PC机信息交互。HC08单片机和目标单片机间仅使用一根I/O线通信,这根相连的信号线名为BKGD。HC08单片机将BKGD置为输出,以串行发送命令,发送完成后转为输
17、入,以接收信息。目标单片机收到命令后转为输出,根据调试器发来的命令回送信息,然后立即转入接收态。BDM工具以此方式实现目标单片机的在线调试、内部闪存的烧写等功能,BDM的烧写及在线调试BDM调试器内部有一个8位的MC9HC,BDM接口,虽然使用的是6引脚接插件,实际上有用引脚只有4个。其中BKGD连接到目标处理器的BKGD引脚,RESET连接到目标处理器的RESET引脚,GND是目标板的地信号,而VDD信号是来自目标板的电源信号。,BDM接口虽然使用的是6引脚接插件,实际上有用引脚只有4个。,BDM调试器与主机和目标开发板之间的连接,BDM调试器与主机和目标开发板之间的连接,3.3.5 基于A
18、ngel的调试方案,Angel是ARM公司的调试监控程序也称为调试代理由多个程序部件组成与传统调试监控程序相类似驻留在目标机上Angel接收主机上发送过来的调试命令,执行指定的调试操作,并将调试结果反馈回主机。适用于各种ARM硬件平台。,3.3.5 基于Angel的调试方案Angel是ARM公司的,调试监控程序/驻留监控软件,驻留监控软件( Resident Monitors )是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。 驻留监控软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 基础教程 04 调试 技术 课件

链接地址:https://www.31ppt.com/p-1340653.html