- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲嵌入式系统调试方法
陈慈发 2008年春夏 (2)片上调试方式 片上调试方式是在CPU内部嵌入额外的硬件控制模块,当满足了特定的触发条件时进入某种特殊状态。在该状态下,被调试程序停止运行,主机的调试器可以通过CPU外部特设的通信接口来访问系统资源并执行指令。 主机通信端口与目标板调试通信接口通过一块简单的信号转换电路板连接。 内嵌的控制模块以监控器或纯硬件资源的形式存在,包括一些提供给用户的接口,如JTAG方式和BDM方式。 3.1 基于主机的调试 指没有目标机或目标机是通用计算机平台(如PC104)的一种调试。 基于C语言可移植性原理,有许多程序模块完全可以在主机上开发和调试,这些模块应该用标准C语言编写,与硬件无关,如各种算法程序。 对于汇编语言代码,可以在主机上使用指令模拟器(Instruction Set Simulator,ISS)运行它们,直到需要测试代码与目标系统特殊硬件之间的实时交互操作为止。 基于主机的调试主要存在两大问题,一是目标系统外设无法交互,二是两种计算机体系结构特征——字长与字节排序问题。 字长问题可以通过定义可移植的数据类型来解决。 字节排序问题主要是大小端问题。如果主机不支持大小端配置,那么需要在软件移植到目标系统上之后,调试大小端问题,或者将目标机的大小端配置成与主机的大小端配置相同。 基于主机的调试方法的例子如基于uC/OS-II操作系统的应用开发。基于uC/OS-II的应用开发可以通过计算机进行,该OS提供了可移植的数据类型定义,兼顾了大小端问题,开发完成后,只需要修改少量的移植代码,就可以把应用移植到目标系统中。 基于主机的调试方法的另一个例子是ATI公司的MNT,Nucleus Plus是ATI公司的一个商用嵌入式实时多任务操作系统,支持众多的处理器。MNT是一个仿真开发平台,利用MNT,用户可以在基于Windows 操作系统的计算机上,开发和调试基于Nucleus Plus的应用程序,等目标硬件调试完成后,直接移植到目标机上运行,实现嵌入式软件和硬件的并行开发。 3.2 远程调试器与调试内核 嵌入式目标系统平台一般缺少支持具有完整特性的调试器所需的资源,嵌入式系统调试器通过分离自身来避开这种限制。调试器的大部分驻留在主机中,余下部分驻留在目标机中,留在目标系统中的主要是调试代理,即monitor。调试器的两部分(主机部分和目标机部分)通过串口/并口/以太网等端口相互通信。典型调试体系结构如下图所示。 调试器一般具有以下功能: 设置断点; 从主机中加载程序; 显示或修改内存与处理器的寄存器; 从某地址开始运行; 单步执行; 多任务调试; 资源查看(包括多任务信箱、信号量、队列、任务状态等); 远程调试内核功能与调试器前端的用户界面紧密配合。 调试代理需要两种目标系统资源:一是中断向量,二是软件中断。 调试代理以中断服务程序ISR的方式提供,中断源一般设置成高优先级中断,有时与NMI的中断优先级一样高,通常来自于串口/并口/以太网等设备,由主机控制中断发生与否,以保证调试器访问中断总能被处理到,否则如果某个应用程序关闭了所有中断,那么调试器就再也不能恢复对系统的控制了。 当主机发送命令给目标机,目标机就会立即停止应用软件代码的执行并进入调试代理ISR,保存当前CPU的上下文,然后调试器就控制了目标系统。 3.3 ROM仿真器 3.3.1 ROM仿真器概述 ROM仿真器就是仿真ROM,是用RAM以及附加电路制成。ROM仿真器是一个有2个电缆的盒子: 一端连接到主机串口,下载新的程序到ROM仿真器; 另一端插在目标系统的ROM插座上,目标平台认为它在访问ROM,而它实际访问的是ROM仿真器的RAM,该RAM中含有用户所下载的用于测试的程序。 如下图所示。 ROM仿真器的用途是为程序开发过程(编辑、编译、下载、调试)节省时间,不用频繁为EPROM进行插拔、擦除、烧写、校验等重复性耗时操作。使用ROM仿真器,可将生成程序用ROM仿真器下载到目标系统,运行它,并根据运行结果对主机程序进行修改,再下载,再运行,以至循环。 3.3.2 ROM仿真器的组成 ROM仿真器包括以下元件: 用于匹配目标系统ROM芯片接口的电缆和插座; 用于代替目标系统中ROM的快速RAM; 本地控制处理器; 连接到主机的通信端口; 附加特性,如跟踪存储器、闪存编程算法等。 3.3.3 ROM仿真器的功能 (1)缩短调试周期。烧写一个大的EPROM芯片有时长达几个小时。 (2)灵活设置断点。EPROM中的程序往往是“干净”的程序,不含调试信息,ROM仿真器实际上是RAM,可以在其中嵌入调试信息,从而轻松设置断点。 (3)仿真多种接口。有时目标机的通信端口不够用,ROM仿真器通过建立到主机的虚拟UART端
文档评论(0)