欢迎来到天天文库
浏览记录
ID:37194121
大小:357.10 KB
页数:31页
时间:2019-05-12
《嵌入式系统调试方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、陈慈发2008年春夏3.1基于主机的调试3.2远程调试3.3ROM仿真器3.4在线仿真ICE3.5BDM3.6JTAG3.7软件仿真器调试是嵌入式系统开发过程中必不可少的重要环节,通常计算机应用系统与嵌入式系统的调试环境存在明显差异:◎通用计算机一般采用桌面操作系统,调试器与被调试的程序常常位于同一台计算机上,OS也相同,调试器进程通过OS提供的调用接口(API)来控制被调试的进程;◎嵌入式应用程序通常采用嵌入式操作系统,运行在嵌入式系统上,开发主机常采用通用计算机,开发机和目标机处于不同的机器中,程序在开发主机上开发(编辑、交叉编译、连接定位等),然后下装到目标机(嵌入式
2、系统)进行运行和调试(远程调试)。由于这种差异,导出如下问题:·不同OS之上的调试器与被调试程序之间如何通信;·被调试程序出现异常如何告知调试器;·调试器如何控制及访问被调试程序等。目前采用两种调试方法解决上述问题:monitor方式和片上调试方式。(1)monitor方式monitor方式是在目标OS与调试器内分别内置专用功能模块,用于相互通信从而实现调试功能。两者应通过指定的通信端口并依据相同的远程调试协议来实现通信。目标OS的所有异常处理最终都必须转向通信模块,通知调试器此时的异常号,调试器再依据该异常号向用户显示被调试程序发生了哪一类型的异常现象。调试器控制及访问被
3、调试程序的请求都将被转换为对调试程序的地址空间或目标平台的某些寄存器的访问,目标OS接收到此类请求时可直接进行处理。采用monitor方式,目标OS必须提供支持远程调试协议的通信模块和多任务调试接口,此外还需改写异常处理的有关部分。目标OS需要定义一个设置断点的函数。(2)片上调试方式片上调试方式是在CPU内部嵌入额外的硬件控制模块,当满足了特定的触发条件时进入某种特殊状态。在该状态下,被调试程序停止运行,主机的调试器可以通过CPU外部特设的通信接口来访问系统资源并执行指令。主机通信端口与目标板调试通信接口通过一块简单的信号转换电路板连接。内嵌的控制模块以监控器或纯硬件资源
4、的形式存在,包括一些提供给用户的接口,如JTAG方式和BDM方式。3.1基于主机的调试指没有目标机或目标机是通用计算机平台(如PC104)的一种调试。基于C语言可移植性原理,有许多程序模块完全可以在主机上开发和调试,这些模块应该用标准C语言编写,与硬件无关,如各种算法程序。对于汇编语言代码,可以在主机上使用指令模拟器(InstructionSetSimulator,ISS)运行它们,直到需要测试代码与目标系统特殊硬件之间的实时交互操作为止。基于主机的调试主要存在两大问题,一是目标系统外设无法交互,二是两种计算机体系结构特征——字长与字节排序问题。字长问题可以通过定义可移植的
5、数据类型来解决。字节排序问题主要是大小端问题。如果主机不支持大小端配置,那么需要在软件移植到目标系统上之后,调试大小端问题,或者将目标机的大小端配置成与主机的大小端配置相同。基于主机的调试方法的例子如基于uC/OS-II操作系统的应用开发。基于uC/OS-II的应用开发可以通过计算机进行,该OS提供了可移植的数据类型定义,兼顾了大小端问题,开发完成后,只需要修改少量的移植代码,就可以把应用移植到目标系统中。基于主机的调试方法的另一个例子是ATI公司的MNT,NucleusPlus是ATI公司的一个商用嵌入式实时多任务操作系统,支持众多的处理器。MNT是一个仿真开发平台,利用
6、MNT,用户可以在基于Windows操作系统的计算机上,开发和调试基于NucleusPlus的应用程序,等目标硬件调试完成后,直接移植到目标机上运行,实现嵌入式软件和硬件的并行开发。3.2远程调试器与调试内核嵌入式目标系统平台一般缺少支持具有完整特性的调试器所需的资源,嵌入式系统调试器通过分离自身来避开这种限制。调试器的大部分驻留在主机中,余下部分驻留在目标机中,留在目标系统中的主要是调试代理,即monitor。调试器的两部分(主机部分和目标机部分)通过串口/并口/以太网等端口相互通信。典型调试体系结构如下图所示。主机桌面操作系统编译器连接器编辑器调试器(前端)(指令)模拟
7、器目标机嵌入式操作系统调试代理BootLoader文件系统TCP/IPBSPJVMGUI通信端口调试器一般具有以下功能:设置断点;从主机中加载程序;显示或修改内存与处理器的寄存器;从某地址开始运行;单步执行;多任务调试;资源查看(包括多任务信箱、信号量、队列、任务状态等);远程调试内核功能与调试器前端的用户界面紧密配合。调试代理需要两种目标系统资源:一是中断向量,二是软件中断。调试代理以中断服务程序ISR的方式提供,中断源一般设置成高优先级中断,有时与NMI的中断优先级一样高,通常来自于串口/并口/以太网等设备,由
此文档下载收益归作者所有