第十六章 嵌入式开发调试
来源:互联网 发布:京东词条优化 编辑:程序博客网 时间:2024/06/08 02:59
调试工作需要配合其他的模块或者产品方可完成。
嵌入式开发调试一共包括以下四种:模拟调试方式,ROM Monitor方式,内嵌JTAG仿真,在线仿真(ICE)。
2 嵌入式系统开发过程
任务分析,处理器选择,操作系统选择,硬件设计,驱动及BSP设计,操作系统移植,应用程序设计,代码固化。
简单来说就是:PC软件开发,移植测试,产品发布。
3 嵌入式集成开发环境包括:嵌入式软件,嵌入式硬件和嵌入式集成开发工具。
嵌入式集成开发环境一般包括编辑器,编译器,连接器,调试器,工程管理器和底层调试接口设备(JTAG)。
4 交叉编译能力:在某一个平台下,能够生成在其他平台上能够运行的代码。
5 嵌入式系统开发调试
嵌入式系统开发的调试:与桌面系统不同,需要远程调试,专门的调试接口。
远程调试器:提供灵活方便的调试界面,远程调试器运行于通用桌面操作系统。
由于嵌入式系统的可用资源有限,嵌入式开发和调试工作通常要通过高性能的宿主机完成
嵌入式应用软件通过宿主机上的交叉编译器,完成交叉编译和连接后下载到目标机。
其中宿主机是进行嵌入式软件开发的主机,而目标机是将要开发的目标板。
6 调试的硬件支持
来自处理器的支持
支持单步执行(single-steping)
支持设置标志位(flag)
提供特殊指令组,通过指令来支持调试器的设计
提供对重新编译和增加或去除中断点的支持
提供硬件中断设置的支持
提供对JTAG的支持
7 调试器原理
远程调试(Remote Debug):调试器运行于通用桌面操作系统的应用程序。被调试的程序则运行于嵌入式系统(目标系统)。通过Embedded ICE Interface Box。
三种远程调试方案:
插桩(stub)在目标操作系统和调试器内分别加入某些功能模块,两者互通信息来进行调试。
片上调试(On Chip Debugging)在处理器内部嵌入额外的控制模块,内嵌的控制模块。
代理:而传统的调试方法即使调试器支持批处理命令避免了用户输入命令,观察结果带来的延迟,它与目标系统之间的通信也可能错过对目标平台外设信号的响应。
针对某些调式器提供的监视点(trace point)这一特殊调试手段,目标方的插桩在原有的基础上被改进。
8 模拟开发调试方式
通过基于宿主机的软件,在主机上模拟目标机中处理器的功能和指令。如ARM公司的ARMulator模拟器。
它方便调试系统内核,以及开发初期的可行性调研。
中断系统是模拟器的核心,任务的调度本质上都是通过中断完成的(非抢占式系统例外)。
9 Rom monitor调试方式
Rom monitor是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。它运行在目标机的Flash或ROM的一段程序,它负责监控目标机上被调试程序的运行情况,通过和宿主机的配合,完成嵌入式系统的调试。它本质上还是一种软件调试方式。缺点:对硬件设备的要求比较高,必须确保目标板硬件完好,在硬件稳定之后才能进行应用软件的开发,不能对程序的全速运行进行完全仿真。
ARM的Real-time Trace和RealMonitor。
10 ARM实时监控
ARM9E和ARM10中的改进
触发中断后,进入一段非常小的中断监控程序中,得到所需要的信息后迅速把控制权转让给先前的任务,在监控程序内处理器完全可以再接收外界的中断和其他触发事件,而不是停止运行。而ROM Monitor是触发中断后时入调试模式状态而停止内核运行。
11 JTAG
JTAG:Joint Test Action Group联合测试行动小组
ARM处理器内含Embedded ICE 宏单元,并留有JTAG调试接口,支持在线仿真。
标准的JTAG接口是4线:TMS,TCK,TDI,TDO,分别为模式选择,时钟,数据输入和数据输出线。
现在常用于实现ISP(In-System rogrammable:在线编程)
他的基本原理是边界扫描(Boundary Scan),它属于完全非插入式(即不使用片上资源)调试。
JTAG调试的过程:调试主机发出调试命令,经过协议转换器进行命令解释,主机上运行的调试软件通过JTAG接口直接和ARM7TDMI内核对话。
12 ICE在线仿真调试方式
In-Circuit Emulator(实时在线仿真)它价格比较昂贵,通常用在ARM硬件开发中,软件开发较少用到。
它支持单步执行,断点,反汇编,原程序级调试。它能够提供更加仿真的调试功能。
Multi-ICE在线仿真器是ARM公司自己的JTAG在线仿真器。
- 第十六章 嵌入式开发调试
- linux 下嵌入式开发调试
- 模拟器开发以及嵌入式系统内核调试
- 嵌入式软件调试开发环境Tornado
- 嵌入式开发中使用DDD进行调试
- 嵌入式开发调试外设的心得
- 嵌入式开发中使用DDD进行调试
- 嵌入式开发交叉调试环境搭建
- 嵌入式开发中使用DDD进行调试
- 嵌入式开发中使用DDD进行调试
- 嵌入式开发调试学习与思考
- 《Windows CE嵌入式开发入门——基于Xscale架构》 第8章 调试与仿真
- 利用VC开发环境进行嵌入式系统内核调试
- 构建嵌入式系统-主机/开发板调试模式的种类
- RVDS和MDK嵌入式开发工具调试脚本编写
- 嵌入式开发远程调试arm-linux-gdb的移植
- 嵌入式开发中NFS调试环境搭建-V0.2
- 基于CCS的嵌入式软件开发与调试
- 大数相乘
- 第十四章 微软Windows+Mobile
- 第十五章 嵌入式Linux
- archlinux virtualbox net bridge net error
- 使用Jmeter对软件进行压力测试
- 第十六章 嵌入式开发调试
- 百试不爽的seo关键字文章的写法
- 程序员面试题精选-- 字符串的组合
- jsf xhtml form中 页面中使用 html标签
- asp.net 简易服务器使用方法
- 英国首相卡梅伦哀悼乔布斯:他是位奇才
- 经典c语言笔试题
- linux进程间通信(system v消息队列,阻塞式)实例
- 关键词在3个标签中的写法