ARM调试方案.ppt

上传人:b****1 文档编号:1385262 上传时间:2022-10-21 格式:PPT 页数:53 大小:2.64MB
下载 相关 举报
ARM调试方案.ppt_第1页
第1页 / 共53页
ARM调试方案.ppt_第2页
第2页 / 共53页
ARM调试方案.ppt_第3页
第3页 / 共53页
ARM调试方案.ppt_第4页
第4页 / 共53页
ARM调试方案.ppt_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

ARM调试方案.ppt

《ARM调试方案.ppt》由会员分享,可在线阅读,更多相关《ARM调试方案.ppt(53页珍藏版)》请在冰豆网上搜索。

ARM调试方案.ppt

ARM调试方案,议程,基本的调试需求你需要什么样的功能?

ARM公司的调试和开发工具。

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

ARM公司的调试和开发组成工具。

嵌入式核调试实现和利用JTAG的调试方案停止模式和监控模式嵌入式跟踪整体化和利用ETMARM开发板,嵌入式核调试,5线JTAG,被调试的系统可以是最终的系统!

也可以用第三方的协议转换工具:

http:

/,Data,Address,Control,BREAKPT,CPU,ARM,调试器和Multi-ICEserver(可以运行在不同的机器上),TAP,EmbeddedICELogic-RT,嵌入式ICE逻辑,两个观察点单元可以通过监控地址总线,数据总线和控制信号来探测观察点(watchpoint)和断点。

每个单元可以用来提供1观察点,或1个ROM或RAM里的硬件断点,或RAM里的多个软件断点调试控制和状态寄存器调试通讯通道注意:

ARM10ARM10家族的调试结构是不同的,虽然原理是一样的。

一共包括8个观察点单元6个在指令地址总线上2个在数据地址总线上这个将在另外一个课题中讲解,观察点,Control,AddrValue,DataValue,ControlValue,AddrMask,DataMask,ControlMask,A31:

0,Comparator,Watchpoint,D31:

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

0,Comparator,Breakpoint,D31:

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

0,Comparator,Breakpoint,D31:

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

r1-r10-systemspeedSTMIAr0,r1-r10-debugspeed,TDI,TCK,Databus,ARMxD,TCK,registers,Debugspeed,Databus,ARMxD,TDO,r1-r10,1,3,MCLK,registers,Systemspeed,Databus,ARMxD,2,Debugger,RMHost(RealMonitor.dll),主机,RMTarget,ApplicationCode+Data,目标板,经过DCC传送的实时监控协议,监控模式调试,主机-在AXD和Multi-ICE之间的控制器实时监控协议非常简单的协议快速没有出错检查允许后台命令实际目标板小的调试监控程序(2k代码字节)集成在目标里以目标代码和原代码的形式提供,调试通讯通道,在ARM和主机调试器之间通过JTAG的通讯信息是由简单串行通讯口来实现的不进入调试模式和停止程序执行ARM上运行的应用代码经过协处理器14来访问三个寄存器通讯数据读寄存器(CommsDataReadRegister)主机到ARM的通讯通讯数据写寄存器(CommsDataWriteRegister)ARM到主机的通讯通讯数据控制寄存器(CommsDataControlRegister)提供在ARM和主机之间同步的握手信号位1写位-当ARM写入新数据时清掉位0读位当ARM有新数据读时设置,DCC查询模式通讯,WriteRegister,R,W,ControlRegister,Scanchain2,;拷贝DCC控制寄存器到r2MRCp14,0,r2,c0,c0,0;检查DCC控制寄存器的位1TSTr2,#0x2;如果位1清掉了,拷贝数据从r1到DCC写寄存器MCREQp14,0,r1,c1,c0,0,;拷贝DCC控制寄存器到r2MRCp14,0,r2,c0,c0,0;检查DCC控制寄存器的位0TSTr2,#0x1;如果位0设置,拷贝数据从DCC写寄存器到r3MRCNEp14,0,r3,c1,c0,0,调试器查询控制寄存器利用扫描链2来察看什么时候写位被设置,读位被清掉接着数据可以被扫描进入或者输出,r1,r3,ReadRegister,ARM,DCC利用中断进行通讯,R,COMMRX,InterruptController,COMMTX,nIRQ,W,Otherinterruptsources,通过MultiICE连接的调试器,向量捕获,允许没有处理软件的异常机制的捕获在ARM7TDMI上执行利用断点当从ROM地址0x0调试时关闭在ARM9TDMI/ARM10和后来的版本上执行利用专门的硬件只对硬件异常敏感到向量表里的跳转将不被捕获留下观察点单元作为一般使用一旦有你自己的处理,则关掉向量捕获AXD:

sppvector_catch0,%RUsPDaif,FIQ,IRQ,(Reserved),DataAbort,PrefetchAbort,SoftwareInterrupt,UndefinedInstruction,Reset,0x1C,0x18,0x14,0x10,0x0C,0x08,0x04,0x00,ARM目标上运行的库代码,但是任何需要的底层的I/O是由主机提供的SWI机制提供的主机访问.SWI接口是ARMulator,Angel和Multi-ICE通用的组成部分Semihosted程序将运行在所有的ARM目标板上,而不需要移植需要连接的调试工具提供这些功能,Semihosting,:

printf(“hellon”);:

应用代码,:

SWI:

库代码,SWI服务程序,与主机上运行的调试器通讯,hello,通过JTAG的Semihosting,sppsemihosting_vector0x8sppsemihosting_enabled1,关掉:

sppsemihosting_enabled0,Breakpoint,0x108,0x104,0x100,.,SWI,.,pc=0x8lr=0x108,MOVSpc,lr,Multi-ICE仿真的SWI服务程序,0x00,0x1C,0x18,0x14,0x10,0x0C,0x08,0x04,Semihosting加上用户SWIs,sppsemihosting_enabled1sppsemihosting_vector0x450,Breakpoint,0x108,0x104,0x100,.,SWI,.,lr=0x108,MOVSpc,lr,SWIHandler,SemiSWI,STMFDsp!

regsLoadSWInumberBifsemiSWIDealwithSWI:

LDMFDsp!

regsMOVSpc,lr,0x450,0x00,0x1C,0x18,0x14,0x10,0x0C,0x08,0x04,sppsemihosting_dcchandler_address0x70000sppsemihosting_vector0x8sppsemihosting_enabled2,0x00,0x1C,0x18,0x14,0x10,0x0C,0x08,0x04,0x108,0x104,0x100,.,SWI,.,pc=0x8lr=0x108,MOVSpc,lr,DCCSemihosting,0x70000,DCC,DCCSemihostingHandlerCode,直接对EmbeddedICE访问,AXD允许直接对EmbeddedICE逻辑寄存器访问可以直接通过GUI或如下的命令行察看REGisters”EICEWatch0”在地址0x4000写时设置一个观察点:

sregEICEWatch0|AddressValue0x00004000sregEICEWatch0|AddressMask0sregEICEWatch0|DataValue0sregEICEWatch0|DataMask0xFFFFFFFFsregEICEWatch0|ControlValue0x10DsregEICEWatch0|ControlMask0x0F8注释:

ARM调试器优先与ADS1.1通过协处理器0访问EmbeddedICE逻辑寄存器.,利用Multi-ICE调试设计,确信DBGEN是接高电平!

Thumb代码上的软件断点需要半字访问RAM必须总是字/半字/字节访问内存Multi-ICE可以在1.0V到5.0V时调试系统自适应到目标逻辑电压目标板可以在2.0V时工作在3.3V时,启动电流是400mA,一般操作时是120mAMulti-ICE2.1出售时跟随一个适当的电源Multi-ICE用20-针连接器多个接地点灵活的时钟配置可以与不同的时钟速度设备同步长JTAG电缆也可以仅仅利用5个信号来调试请小心停

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

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

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