资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
第11页 / 共33页
第12页 / 共33页
第13页 / 共33页
第14页 / 共33页
第15页 / 共33页
第16页 / 共33页
第17页 / 共33页
第18页 / 共33页
第19页 / 共33页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式系统,第八讲,ARM,程序的调试,西安电子科技大学计算机学院,2,本节内容,调试的基本要求,调试方法简介,基于,JTAG,的片上,ICE,1,调试的基本要求,使程序能够在用户控制下运行,对感兴趣的数据进行访问和观察(,WatchPoint,),对感兴趣的指令设置断点(,BreakPoint,),单步执行,检查与改变处理器的状态,对各寄存器进行读写,检查与改变系统的状态,对系统存储器的访问,下载代码(,Download Code,),保存存储器内容(,Save As,),3,2.1 PC,上的调试,程序编写、项目管理、编译、调试都在同一台计算机上完成(,IDE,,,Integrated Design Environment,集成设计环境),MS VC,MS VB,Borland C+Builder,一般是通过在断点插入相关的调试软件指令来实现调试功能的,4,2.2,基于模拟器的调试方法,定义:,使用模拟器对复杂的系统进行建模,用软件来模拟硬件系统的功能。,没有硬件的情况下在,PC,机上模拟系统运行相应程序,用途:,用于系统的前期算法分析和体系结构设计。,用于应用程序的开发。,缺点:,难以真实反映,SOC,芯片的所有外设:中断无法处理。,通过,PC,的外设模拟系统外设,有一定的限制。,难以进行实时性的系统仿真。,难以进行设备驱动开发。,5,I,指令集模拟器的调试方法,利用主机(一般是,PC,)的资源构建一个虚拟的目标机系统,该系统通过解释执行目标处理器的二进制代码来仿真运行目标程序,VM,为指令集综合模拟器,ARM Armulator,模拟运行,ARM,指令系统,Palm OS,的模拟器模拟运行,68K,指令系统,6,PC,PC OS(MS Windows),VM(,虚拟机,),虚拟机构建的环境,:,寄存器,存储器等等,目标机的,RTOS,App1,App2,App n,.,II,操作系统模拟器的调试方法,除了指令集模拟器还有操作系统模拟器,ASIX OS,模拟器,Sybian OS,模拟器,Android OS,模拟器,由于在,OS,层面上进行仿真,应用程序运行在,PC,的二进制代码(不是,ARM,指令),所以在目标系统上需要重新编译,7,PC,PC OS(MS Windows),RTOS API,封装,App1,App2,App n,.,由,PC OS,模拟的,RTOS,环境,:,任务,任务间通信,III ARMulator(,模拟器的改进虚拟原型,),8,ARM ADS,RDI,接口,Armulator,MultiICE Server,Angle,Armulator Mem,接口,虚拟的,AMBA,总线,C,语言模型,EMI,模型,SDRAM,模型,中断控制器模型,其他模块模型,用户自己编写的模型,ARM IDE,本质上还是指令级,节拍精度的模拟器,但是通过用户扩展的外围模型,极大增加了系统的真实性。,Armulator,指令集模拟器功能,ARMulator,是一个指令级的仿真程序,运行在主机上。,由于,ARMulator,可以报告各指令执行时的机器周期,它还可以用来进行应用程序的性能分析。,ARMulator,被设计为允许容易地扩展软件模型,使之包括诸如,Cache,(高速缓冲存储器)、特殊存储器时序特性等系统特征。,9,Armulator,指令集模拟器优缺点,优点,是目前无硬件调试的最真实、最细致、最通用的方法。,可模拟所有指令,甚至可模拟到指令的执行时序。,对用户全开放,用户可按其规则自己创建模拟的对象。,缺点,模拟器难以真实反映所有的外设,对外部中断将更困难。,难以实时仿真,仿真的时序和硬件时序有差异。,不能很好进行外设的驱动开发。,10,2.3,在目标机上驻留监控软件,1,、原理(大使兼间谍),被调试的应用程序放在,RAM,中;,监控程序,(Monitor),放在,ROM(flash),中;,监控程序负责按主机的要求控制应用程序的执行节奏;并随时将目标机上的各种状态报告给主机。,需要时可将控制权全部交给应用程序。,11,通信接口,flash,sdram,Host PC&,Debugger,串口电缆,以太网,USB,CPU,Q,:单步调试怎么实现?,2,、基于调试代理,(Angel),的调试方法,驻留,Angel,是一段驻留在开发板,ROM,中的一段程序,系统,Boot,后,,Angle,接管整个系统并初始化系统和通信接口。,通信,Angel,通过一定的通信协议与主机的,Debugger,通信。,下载和移交,Debugger,通过特定的命令通知,Angel,将用户调试的程序下载到目标板的,SDRAM,中的特定地址,并可以按照,Debugger,的要求将控制权交给相应的代码地址。,断点和数据上传的实现,对于用户设置的断点,,Angel,会在断点的位置插入一条软陷指令,当用户的程序执行到断点时,系统会产生一个软陷异常。中断后可以由,Angel,接管系统,并将系统当前的寄存器和某些内存值传给主机,Debugger,。,12,Angel,调试的优缺点,Angel,调试的缺点:,需要占用目标板的资源:处理器,存储器和通信接口,没有办法在,ROM,区设置断点,难以跟踪数据变化,Angel,调试的优点:,不需额外的调试硬件,成本低廉,13,2.4,基于仿真器(在线调试)的调试方法,1,、,目标系统中的处理器被取掉,代之以与仿真器的连接,2,、,仿真器上的处理器可以相同,也可以是一个有更多引脚的变型芯片(对内部状态有更高的可观察性)。,3,、,仿真器上还有缓冲器,以及各种硬件资源,可以用来观察系统运行状态。,4,、,跟踪缓冲器和硬件资源由运行在主机上的软件来管理。,14,仿真器,flash,sdram,Host PC&,Debugger,CPU,插座,通信接口,CPU,控制,逻辑,监测数据总线,和控制总线,CPU,电缆,采用在线调试方法的优缺点,优点,可以设置,ROM,断点,可以观测数据总线的变化从而实现观测点,不占用目标板资源,这种调试方法在单片机系统中得到广泛的采用,缺点,为了观测一个深嵌入的核心的信号,需要引出许多管脚。,在线仿真器中的嵌入式微处理器并不是目标系统中的处理器,所以传统的在线仿真器无法真是仿真目标系统的嵌入式微处理器。,在线仿真器拥有自己的目标处理器、,RAM,、,ROM,和自己的嵌入式软件,所以是非常昂贵的,(,尤其对于高速设备而言,),。,15,2.5,基于片上在线调试器的调试方法,1,、,Debugger,将调试命令通过通信接口传给协议转换器。,2,、协议转换器将,PC,的通信协议转换成为,JTAG,的协议,并和片内的,ICE,逻辑进行通信,从而实现调试的功能。,16,JTAG,接口,flash,sdram,Host PC&,Debugger,CPU,协议转换器,并口,以太网口,USB,口,ICE,2.5.1,基于,JTAG,的片上,ICE,1,、扫描链,0,可以用来访问,ARM7TDMI,的所有外围部件和嵌入式微处理器核心的所有输入输出管脚,包含下面几部分:数据总线;控制信号;地址总线;各寄存器值。,2,、扫描链,1,的扫描单元共,33,个,为扫描链,0,的一个子集,包括了数据总线的,31,位到,0,位,接下来是,DBGBREAK,信号。,3,、扫描链,2,主要用于访问,ICE,逻辑部件中的各寄存器。,4,、,EmbeddedICE,逻辑电路包括一组寄存器和比较器,它可以用来产生调试时需要的异常中断,如产生断点等。,5,、,TAP,控制器可以通过,JTAG,接口控制各个硬件扫描链。,17,待调试的,CPU,内核,TAP,控制器,ICE,电路,处理器芯片,Scan 0,Scan 1,Scan 2,JTAG,的,5,根信号线,2.5.2 CPU,核、,ICE,和,TAP,之间的关系,18,2.5.3 ICE,模块主要功能和原理,产生BREAKPT和DBGRQI信号送给CPU核,当发生指令断点或数据断点则BREAKPT信号有效,当有调试请求时,则DBGRQI信号有效,这两个信号的产生是通过比较数据总线、地址总线、控制总线上的值和对应的断点寄存器的值产生的,CPU进入仿真状态后DBGACK信号为高;进入仿真状态后,CPU时钟会切换为DCLK,DCLK是由JTAG接口的TCK产生的时钟。,19,片上在线调试器的优点,通过标准的,JTAG,接口来访问芯片上的,ICE,模块,不需要目标资源或者特殊硬件。,这种芯片上在线仿真器的处理器是用户所使用的实际处理器,可以发现一些实际的问题。(,不是仿真了,就是真的!,),芯片上在线仿真的成本比传统的在线仿真器要低许多。,20,2.5.5 ADS,调试环境(,IDE,),21,ARM AXD,RDI,接口,Armulator,MultiICE Server,Angle,Armulator Mem,接口,ARM IDE,并行口,串行口,Code Worrier,仿真器,目标板,JTAG,接口,串口,编译器,汇编器,联接器,CPU,flash,sdram,虽然传统上这个协议,转换器还被称为仿真器,但是含义已经不一样了,ADS SemiHost(,半主机,),功能,ANSI C,中有很多设计到输入输出的标准,C,函数,这些函数如何在嵌入式系统中实现?比如最常用的,printf(),函数,ARM,给出了一个解决方案,即函数在目标机上运行,利用调试主机的屏幕(控制台)作为这些函数的输出。,22,flash,sdram,Host PC&,Debugger,CPU,协议转换器,printf(“Hello World!”);,Hello World!,目标可以是最终的系统,23,Host PC&,Debugger,并口,以太网口,USB,口,西安电子科技大学计算机学院,24,3 JTAG,JTAG是Joint Test Action Group的缩写是IEEE1149.1标准,JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试,在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线,I/O口等,从而达到调试的目的,西安电子科技大学计算机学院,25,JTAG,接口定义,20,针接口定义,14,针接口定义,西安电子科技大学计算机学院,26,JTAG,典型接口,TMS:测试模式选择(Test Mode Select),通过TMS信号控制JTAG状态机的状态,TCK:JTAG的时钟信号,TDI:数据输入信号,TDO:数据输出信号,nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell),西安电子科技大学计算机学院,27,嵌入式,ICE,逻辑,两个观察点单元,可以通过监控地址总线,数据总线和控制信号来探测观察点(,watchpoint),和断点。,每个单元可以用来提供,1,观察点,或,1,个,ROM,或,RAM,里的硬件断点,或,RAM,里的多个软件断点,调试控制和状态寄存器,调试通讯通道,西安电子科技大学计算机学院,28,观察点,Control,Addr,Value,Data,Value,Control,Value,Addr,Mask,Data,Mask,Control,Mask,A31:0,C,o,m,p,a,r,a,t,o,r,Watchpoint,D31:0,0,xF000,0,x0,0,xffffffff,Data write,0,xF000,Memory,Location to be watched,一个观察点就是一个断点,这个断点在当以某种方式访问特定内存区域时
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6