ImageVerifierCode 换一换
格式:PPT , 页数:53 ,大小:2.64MB ,
资源ID:1385262      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1385262.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM调试方案.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM调试方案.ppt

1、ARM 调试方案,议程,基本的调试需求你需要什么样的功能?ARM公司的调试和开发工具。嵌入式核的调试实现和利用JTAG的调试方案停止模式和监控模式嵌入式跟踪使用ETMARM 开发板,基本的调试需求,运行控制设置数据访问断点设置指令断点代码的单步执行状态控制处理器状态读写寄存器值系统状态系统内存访问下载代码执行历史执行跟踪信息内存访问历史,ARM 调试系统组件,执行AXD调试器的主机(ADS的一部分)和 Multi-ICE server,协议转换器(Multi-ICE),跟踪接口单元(MultiTrace),开发板(Integrator Core Module),Trace Port,JTAG

2、Port,并口,串口l/以太网,议程,基本的调试需求你需要什么样的功能?ARM公司的调试和开发组成工具。嵌入式核调试实现和利用JTAG的调试方案停止模式和监控模式嵌入式跟踪整体化和利用ETMARM 开发板,嵌入式核调试,5 线JTAG,被调试的系统可以是最终的系统!也可以用第三方的协议转换工具:http:/,Data,Address,Control,BREAKPT,CPU,ARM,调试器和Multi-ICE server(可以运行在不同的机器上),TAP,EmbeddedICELogic-RT,嵌入式ICE逻辑,两个观察点单元可以通过监控地址总线,数据总线和控制信号来探测观察点(watchpo

3、int)和断点。每个单元可以用来提供1 观察点,或1个 ROM或RAM里的硬件断点,或RAM里的多个软件断点调试控制和状态寄存器调试通讯通道注意:ARM10ARM10家族的调试结构是不同的,虽然原理是一样的。一共包括8个观察点单元6 个在指令地址总线上2个在数据地址总线上 这个将在另外一个课题中讲解,观察点,Control,AddrValue,DataValue,ControlValue,AddrMask,DataMask,ControlMask,A31:0,Comparator,Watchpoint,D31:0,0 xF000,0 x0,0 xffffffff,Data write,0 xF

4、000,Memory,Location to be watched,一个观察点就是一个断点,这个断点在当以某种方式访问特定内存区域时被触发这个例子里,当向地址0 xF000 写时,将触发这个观察点每一个观察点单元可以设置成一个观察点,而且只能设置一个,硬件断点,0 x8000,ARM-0 x3Thumb-0 x1,0 xffffffff,Opcode fetch,0 x8000,Memory,Breakpoint to be set here,Control,AddrValue,DataValue,ControlValue,AddrMask,DataMask,ControlMask,A31:0

5、,Comparator,Breakpoint,D31:0,当内核试图执行内存里一个特定地址的指令时,将会触发一个硬件断点这个例子里,当要执行从地址0 x8000索取的指令时,将会触发一个硬件断点硬件断点可以在RAM或ROM里设置每个观察点单元可以被用来设置一个硬件断点,而且只能一个,软件断点,Memory,0 xffffffff,0 xeeeeeeee,0 x0,Opcode fetch,Control,AddrValue,DataValue,ControlValue,AddrMask,DataMask,ControlMask,A31:0,Comparator,Breakpoint,D31:0

6、,一个软件断点是当一个特定的指令从任何地址被预取时触发的一个断点这个例子表明了观察点单元的配置 这对所有的软件断点都是一样的为了设置一个断点,可以使用Multi-ICE在特定的地方写一个特别的指令这些只能在RAM里在操作每一个观察点单元可以用来设置无数的软件断点.,(The“special”value),命中一个断点,停止模式调试由标准的 EmbeddedICE&EmbeddedICE-RT支持内核进入调试状态和停止状态内核与系统的其余部分分离发出DBGACK信号(调试器通过JTAG而检测到)没有中断处理,除非调试器重新启动执行代码处理器和系统的状态可以通过扫描内核的指令来察看和修改,紧接着执

7、行它们监控模式调试只由增强功能的 EmbeddedICE-RT支持在ARM9E,ARM10 和稍后的ARM7TDMI版本上有内核通过一个异常中断而进入常驻软件监控程序可以连续处理中断处理器和系统的状态可以通过监控程序的调试命令来察看和修改,读系统状态(在停止模式),从地址0 x8000 向后读 10 个字,MOV r0,#0 x8000LDMIA r0!,r1-r10-system speedSTMIA r0,r1-r10-debug speed,TDI,TCK,Databus,ARMxD,TCK,registers,Debugspeed,Databus,ARMxD,TDO,r1-r10,1,

8、3,MCLK,registers,Systemspeed,Databus,ARMxD,2,Debugger,RMHost(RealMonitor.dll),主机,RMTarget,ApplicationCode+Data,目标板,经过DCC传送的实时监控协议,监控模式调试,主机-在AXD 和 Multi-ICE之间的控制器实时监控协议 非常简单的协议快速 没有出错检查允许后台命令实际目标板小的调试监控程序(2k 代码字节)集成在目标里以目标代码和原代码的形式提供,调试通讯通道,在ARM和主机调试器之间通过JTAG的通讯信息是由简单串行通讯口来实现的不进入调试模式和停止程序执行ARM上运行的应用

9、代码经过协处理器14来访问三个寄存器通讯数据读寄存器(Comms Data Read Register)主机到ARM的通讯通讯数据写寄存器(Comms Data Write Register)ARM到主机的通讯通讯数据控制寄存器(Comms Data Control Register)提供在ARM和主机之间同步的握手信号位 1 写位-当ARM写入新数据时清掉位 0 读位 当ARM有新数据读时设置,DCC 查询模式通讯,Write Register,R,W,Control Register,Scan chain 2,;拷贝 DCC 控制寄存器到 r2MRC p14,0,r2,c0,c0,0;检查

10、DCC 控制寄存器的位1TST r2,#0 x2;如果位1清掉了,拷贝数据从r1到 DCC 写寄存器 MCREQ p14,0,r1,c1,c0,0,;拷贝 DCC 控制寄存器到 r2MRC p14,0,r2,c0,c0,0;检查DCC 控制寄存器的位0TST r2,#0 x1;如果位0设置,拷贝数据从DCC 写寄存器 到r3 MRCNE p14,0,r3,c1,c0,0,调试器查询控制寄存器利用扫描链2来察看什么时候写位被设置,读位被清掉接着数据可以被扫描进入或者输出,r1,r3,Read Register,ARM,DCC 利用中断进行通讯,R,COMMRX,InterruptControll

11、er,COMMTX,nIRQ,W,Other interrupt sources,通过Multi ICE连接的调试器,向量捕获,允许没有处理软件的异常机制的捕获在ARM7TDMI 上执行利用断点当从ROM 地址 0 x0 调试时关闭在ARM9TDMI/ARM10和后来的版本上执行利用专门的硬件只对硬件异常敏感到向量表里的跳转将不被捕获留下观察点单元作为一般使用一旦有你自己的处理,则关掉向量捕获AXD:spp vector_catch 0,%RUsPDaif,FIQ,IRQ,(Reserved),Data Abort,Prefetch Abort,Software Interrupt,Undef

12、ined Instruction,Reset,0 x1C,0 x18,0 x14,0 x10,0 x0C,0 x08,0 x04,0 x00,ARM 目标上运行的库代码,但是任何需要的底层的I/O是由主机提供的 SWI 机制提供的主机访问.SWI 接口是ARMulator,Angel 和 Multi-ICE通用的组成部分Semihosted 程序将运行在所有的ARM目标板上,而不需要 移植需要连接的调试工具提供这些功能,Semihosting,:printf(“hellon”);:,应用代码,:SWI:,库代码,SWI 服务程序,与主机上运行的调试器通讯,hello,通过JTAG 的Semih

13、osting,spp semihosting_vector 0 x8spp semihosting_enabled 1,关掉:spp semihosting_enabled 0,Breakpoint,0 x108,0 x104,0 x100,.,SWI,.,pc=0 x8lr=0 x108,MOVS pc,lr,Multi-ICE仿真的SWI服务程序,0 x00,0 x1C,0 x18,0 x14,0 x10,0 x0C,0 x08,0 x04,Semihosting 加上用户SWIs,spp semihosting_enabled 1spp semihosting_vector 0 x450

14、,Breakpoint,0 x108,0 x104,0 x100,.,SWI,.,lr=0 x108,MOVS pc,lr,SWI Handler,SemiSWI,STMFD sp!,regsLoad SWI numberB if semiSWIDeal with SWI:,LDMFD sp!,regsMOVS pc,lr,0 x450,0 x00,0 x1C,0 x18,0 x14,0 x10,0 x0C,0 x08,0 x04,spp semihosting_dcchandler_address 0 x70000spp semihosting_vector 0 x8spp semihost

15、ing_enabled 2,0 x00,0 x1C,0 x18,0 x14,0 x10,0 x0C,0 x08,0 x04,0 x108,0 x104,0 x100,.,SWI,.,pc=0 x8lr=0 x108,MOVS pc,lr,DCC Semihosting,0 x70000,DCC,DCCSemihosting HandlerCode,直接对EmbeddedICE访问,AXD 允许直接对EmbeddedICE 逻辑寄存器访问可以直接通过 GUI或如下的命令行察看REGisters”EICE Watch 0”在地址0 x4000写时设置一个观察点:sreg EICE Watch 0|

16、Address Value 0 x00004000sreg EICE Watch 0|Address Mask 0 sreg EICE Watch 0|Data Value 0sreg EICE Watch 0|Data Mask 0 xFFFFFFFF sreg EICE Watch 0|Control Value 0 x10Dsreg EICE Watch 0|Control Mask 0 x0F8注释:ARM调试器优先与 ADS1.1 通过协处理器0访问EmbeddedICE 逻辑寄存器.,利用Multi-ICE调试设计,确信 DBGEN 是接高电平!Thumb 代码上的软件断点需要半字访问RAM必须总是字/半字/字节访问内存Multi-ICE可以在1.0V 到 5.0V时调试系统自适应到目标逻辑电压目标板可以在2.0V时工作在3.3V时,启动电流是400mA,一般操作时是 120mAMulti-ICE 2.1 出售时跟随一个适当的电源Multi-ICE用20-针 连接器多个接地点灵活的时钟配置可以与不同的时钟速度设备同步 长 JTAG 电缆也可以仅仅利用5 个信号来调试请小心停

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1