当前位置:文档之家› 开发环境及开发工具-精选文档

开发环境及开发工具-精选文档

10
两种远程调试的方案
一 插桩(stub) 二 片上调试(On Chip Debugging)
11
1.1.2.1 插桩(stub)
在目标操作系统和调试器内分别加入某些 功能模块,二者互通信息来进行调试。
12
步骤
1. 调试器与被调试程序的通信 调试器与目标操作系统通过指定通信端 口(串口、网卡、并口)遵循远程调试 协议进行通信。 2. 被调试程序产生异常及时通知调试器 目标操作系统的所有异常处理最终都要 转向通信模块,告知调试器当前的异常 号;调试器据此向用户显示被调试程序 产生了哪一类异常。
嵌入 式 软件 嵌入式应用软件 嵌入式操作系统 嵌 入 式 开 发 工 具
嵌入 式 硬件
嵌入式硬件模块 嵌入式处理器
3
1.1集成开发系统
集成开发系统提供高效明晰的图形化的嵌入式应用软 件开发平台,包括一整套完备的面向嵌入式系统的开 发和调试工具 。 一般包括编辑器、编译器、连接器、调试器、工程管 理器和底层调试接口设备(BDM/JTAG仿真器)等
21
22
内嵌的控制模块
以基于微码的监控器(microcode monitor) 或纯硬件资源的形式存在 包括一些提供给用户的接口(如断点寄存器等) 具体产品有Motorola CPU16、CPU32、Coldf ire系列的BDM(Background Debug Mod e),Motorola PowerPC 5xx、8xx系列的EP BDM(Embedded PowerPC Background D ebug Mode),IBM、TI的JTAG(Joint Test Action Debug,IEEE标准),还有OnCE、M PSD等等。
13
3. 调试器控制、访问被调试程序 调试器的这类请求实际上都将转换成对被调试 程序的地址空间或目标平台的某些寄存器的访 问,目标操作系统接收到这样的请求可以直接 处理。对于没有虚拟存储概念的简单的嵌入式 操作系统而言,完成这些任务十分容易。 4. 调试器识别有关被调试程序的多任务信息并控 制某一特定任务 由目标操作系统提供相关接口。目标系统根据 调试器发送的关于多任务的请求,调用该接口 提供相应信息或针对某一特定任务进行控制, 并返回信息给调试器。
8
1.1.2 调试器
远程调试
调试器还是运行于通用桌面操作系统的应 用程序,被调试的程序则运行于基于特定 硬件平台的嵌入式操作系统(目标操作系 统)。
9
问题:
调试器与被调试程序如何通信 被调试程序产生异常如何及时通知调试器 调试器如何控制、访问被调试程序 调试器如何识别有关被调试程序的多任务 信息并控制某一特定任务 调试器如何处理某些与目标硬件平台相关 的信息(如目标平台的寄存器信息、机器 代码的反汇编等)。
20
1.1.2.2.片上调试OnChip Debugging
片上调试是在处理器内部嵌入额外的控制 模块,当满足了一定的触发条件时进入某 种特殊状态 在该状态下,被调试程序停止运行,主机 的调试器可以通过处理器外部特设的通信 接口访问各种资源(寄存器、存储器等) 并执行指令。 主机通信端口与目标板调试通信接口 信号转换电路板连接
7
(1)早期的Franklin Software Inc. 的A51/C5 1与Keil Software Inc.的 CA51/CA251/CA166 赫赫有名。 (2)TASKING Inc. 的C/C++/EC++ 编译器 (3)CAD-UL Inc.提供一整套工具开发X86和6 8K 。 (4)Wind River Systems, Inc.的Diab C/C++ Compiler Suite,应用于pSOS系统。 (5)IBM 的High C/C++ Compiler ,针对Pow er PC。 (6)GNU组织的免费编译器GCC
(4)开发环境及开发工具
浙江大学计算机学院 陈文智 2019年3月
嵌入式系统开发周期长和产品需要及时上 市成为矛盾。 选择是一个问题,学习掌握嵌入式系统结 构及其应用更需要时间。 以开发工具和技术咨询为基础 的整体解决 方案是迫切需要的。
2
1. 开发环境
嵌入式系统,是指嵌入于 宿主设备,智能地完成宿 主设备功能的计算/控制系 统。 嵌入式系统开发环境,是 以开发嵌入式系统为目的 的工程开发环境。包括办 公环境支持、软件支持、 硬件设备支持。 软件支持,指集成开发环 境与软件模拟器等。 硬件支持,指仿真器、目 标板、示波器、烧录器 等。
6
嵌入式C/C+ote/rom monitor)能力. 另外还有其他一些地方需要注意,如I/O库,大小尾段 等。 主流嵌入式编译器:
GNU 、CADUL 、CodeWarrior、GreenHill、Diab/SDS、IAR、 BC/VC+Toolkit….等
16
目标操作系统添加的这些模块统称为“插桩”
若驻留于ROM中则称为ROM monitor
17
通用操作系统也有具备这类模块 编译运行于Alpha、Sparc或PowerPC平 台的LINUX内核时若将kgdb开关打开, 就相当于加入了插桩。
18
调试过程
19
Stub的本质
软件接管目标系统的全部异常处理(exce ption handler)及部分中断处理 在其中插入调试端口通信模块,与主机的 调试器交互 不用于正式发布的调试版
14
5. 调试器处理与目标硬件平台相关的信息 第2条所述调试器应能根据异常号识别目 标平台产生异常的类型也属于这一范 畴,这类工作完全可以由调试器独立完 成。支持多种目标平台正是GNU GDB的 一大特色。
15
目标操作系统支持
远程调试协议的通信模块(包括简单的设 备驱动) 多任务调试接口 改写异常处理的有关部分 定义一个设置断点的函数
4
1.1.1编译器
嵌入式语言: ASM/Ada/C/C++/EC/Java/OP/STAPL EC++标准 95年初在日本成立的Embedded C++技术委员
5
嵌入式C/C++开发环境
嵌入式c/c++编译器 交叉编译能力:能够在pc/unix平台上生成其他cpu 平台目标代码 连接/定址器:因为无法提供dos/windows的动态定 位执行能力。嵌入式一般需要目标代码静态定位到具体 地址,定址器完成这一工作。 启动代码:初始化处理器和c语言堆栈区等环境的 汇编码。 EC++:针对嵌入式的一些实时要求等特点,对标准 C++语言规范的修改扩充。
相关主题