开发环境及开发工具

上传人:woxinch****an2018 文档编号:44680537 上传时间:2018-06-14 格式:PPT 页数:59 大小:1.01MB
返回 下载 相关 举报
开发环境及开发工具_第1页
第1页 / 共59页
开发环境及开发工具_第2页
第2页 / 共59页
开发环境及开发工具_第3页
第3页 / 共59页
开发环境及开发工具_第4页
第4页 / 共59页
开发环境及开发工具_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《开发环境及开发工具》由会员分享,可在线阅读,更多相关《开发环境及开发工具(59页珍藏版)》请在金锄头文库上搜索。

1、浙江大学计算机学院 陈文智 2005年3月(4)开发环境及开发工具 嵌入式系统开发周期长和产品需要及时上 市成为矛盾。 选择是一个问题,学习掌握嵌入式系统结 构及其应用更需要时间。 以开发工具和技术咨询为基础 的整体解决 方案是迫切需要的。2 21. 开发环境 嵌入式系统,是指嵌入于 宿主设备,智能地完成宿 主设备功能的计算/控制系 统。 嵌入式系统开发环境,是 以开发嵌入式系统为目的 的工程开发环境。包括办 公环境支持、软件支持、 硬件设备支持。 软件支持,指集成开发环 境与软件模拟器等。 硬件支持,指仿真器、目 标板、示波器、烧录器等 。嵌入 式 软件嵌入式应用软件嵌入式操作系统嵌入 式

2、硬件嵌入式硬件模块嵌入式处理器嵌 入 式 开 发 工 具3 31.1集成开发系统 集成开发系统提供高效明晰的图形化的嵌入式应用软 件开发平台,包括一整套完备的面向嵌入式系统的开 发和调试工具 。 一般包括编辑器、编译器、连接器、调试器、工程管 理器和底层调试接口设备(BDM/JTAG仿真器)等 4 41.1.1编译器 嵌入式语言: ASM/Ada/C/C+/EC/Java/OP/STAPL EC+标准 95年初在日本成立的Embedded C+技术委员 5 5嵌入式c/c+编译器交叉编译能力:能够在pc/unix平台上生成其他cpu平 台目标代码连接/定址器:因为无法提供dos/windows

3、的动态定位 执行能力。嵌入式一般需要目标代码静态定位到具体地 址,定址器完成这一工作。启动代码:初始化处理器和c语言堆栈区等环境的汇 编码。EC+:针对嵌入式的一些实时要求等特点,对标准 C+语言规范的修改扩充。嵌入式C/C+开发环境6 6嵌入式C/C+开发环境l提供目标调试(remote/rom monitor)能力.l另外还有其他一些地方需要注意,如I/O库,大小尾段 等。l主流嵌入式编译器: GNU 、CADUL 、CodeWarrior、GreenHill、Diab/SDS、IAR 、BC/VC+Toolkit.等7 7 (1)早期的Franklin Software Inc. 的 A

4、51/C51与Keil Software Inc.的 CA51/CA251/CA166赫赫有名。 (2)TASKING Inc. 的C/C+/EC+ 编译器 (3)CAD-UL Inc.提供一整套工具开发X86和 68K 。 (4)Wind River Systems, Inc.的Diab C/C+ Compiler Suite,应用于pSOS系统。 (5)IBM 的High C/C+ Compiler ,针对 Power PC。 (6)GNU组织的免费编译器GCC 8 81.1.2 调试器 远程调试 调试器还是运行于通用桌面操作系统的应 用程序,被调试的程序则运行于基于特定 硬件平台的嵌入式

5、操作系统(目标操作系 统)。 9 9问题: 调试器与被调试程序如何通信 被调试程序产生异常如何及时通知调试器 调试器如何控制、访问被调试程序 调试器如何识别有关被调试程序的多任务 信息并控制某一特定任务 调试器如何处理某些与目标硬件平台相关 的信息(如目标平台的寄存器信息、机器 代码的反汇编等)。 1010两种远程调试的方案 一 插桩(stub) 二 片上调试(On Chip Debugging)11111.1.2.1 插桩(stub) 在目标操作系统和调试器内分别加入某些 功能模块,二者互通信息来进行调试。1212步骤l调试器与被调试程序的通信 调试器与目标操作系统通过指定通信端口 (串口、

6、网卡、并口)遵循远程调试协议 进行通信。 l被调试程序产生异常及时通知调试器 目标操作系统的所有异常处理最终都要转 向通信模块,告知调试器当前的异常号; 调试器据此向用户显示被调试程序产生了 哪一类异常。 1313l调试器控制、访问被调试程序 调试器的这类请求实际上都将转换成对被调试程 序的地址空间或目标平台的某些寄存器的访问, 目标操作系统接收到这样的请求可以直接处理。 对于没有虚拟存储概念的简单的嵌入式操作系统 而言,完成这些任务十分容易。 l调试器识别有关被调试程序的多任务信息并控制 某一特定任务 由目标操作系统提供相关接口。目标系统根据调 试器发送的关于多任务的请求,调用该接口提供 相

7、应信息或针对某一特定任务进行控制,并返回 信息给调试器。 1414l调试器处理与目标硬件平台相关的信息 第2条所述调试器应能根据异常号识别目 标平台产生异常的类型也属于这一范畴, 这类工作完全可以由调试器独立完成。支 持多种目标平台正是GNU GDB的一大特 色。 1515目标操作系统支持 远程调试协议的通信模块(包括简单的设 备驱动) 多任务调试接口 改写异常处理的有关部分 定义一个设置断点的函数1616目标标操作系统统添加的这这些模块统块统 称为为“插桩桩 ”若驻驻留于ROM中则则称为为ROM monitor1717 通用操作系统也有具备这类模块 编译运行于Alpha、Sparc或Powe

8、rPC平 台的LINUX内核时若将kgdb开关打开, 就相当于加入了插桩。1818调试过程1919Stub的本质 软件接管目标系统的全部异常处理( exception handler)及部分中断处理 在其中插入调试端口通信模块,与主机的 调试器交互 不用于正式发布的调试版20201.1.2.2.片上调试OnChip Debugging 片上调试是在处理器内部嵌入额外的控制 模块,当满足了一定的触发条件时进入某 种特殊状态 在该状态下,被调试程序停止运行,主机 的调试器可以通过处理器外部特设的通信 接口访问各种资源(寄存器、存储器等) 并执行指令。 主机通信端口与目标板调试通信接口 信号转换电路

9、板连接21212222内嵌的控制模块 以基于微码的监控器(microcode monitor) 或纯硬件资源的形式存在 包括一些提供给用户的接口(如断点寄存器等) 具体产品有Motorola CPU16、CPU32、 Coldfire系列的BDM(Background Debug Mode),Motorola PowerPC 5xx、8xx系列 的EPBDM(Embedded PowerPC Background Debug Mode),IBM、TI的 JTAG(Joint Test Action Debug,IEEE标准 ),还有OnCE、MPSD等等。2323EPBDM的执行流程 相当于用

10、处理器内嵌的调试模块接管中断及异常 处理。 用户通过设置调试许可寄存器(debug enable register)来指定哪些中断或异常发生后处理器 直接进入调试状态,而不是操作系统的处理程序 。 1、进入调试状态后,内嵌调试模块向外部调试 通信接口发出信号,通知一直在通信接口监听的 主机调试器 2、调试器便可通过调试模块使处理器执行任意 系统指令(相当于特权态)。2424 3、所有指令均通过调试模块获取,所有 load/store 均直接访问内存,缓存( cache)及存储管理单元(MMU)均不可 用 4、数据寄存器被映射为一个特殊寄存器 DPDR,通过mtspr和mfspr指令访问。 5、

11、调试器向处理器送rfi(return from interrupt)指令便结束调试状态,被调试 程序继续运行。2525OCD(片上调试)的特点 优点:不占用目标平台的通信端口 无需修改目标操作系统 能调试目标操作系统的启动过程,大大方便了系统开 发人员。 缺点:软件工作量的增加调试器端除了需补充对目标操作系统多任务的识别、 控制等模块 针对使用同一芯片的不同开发板编写各类ROM、 RAM的初始化程序。26261.1.2.3 其他调试器原理 代理(agent) 针对:实时系统,延时,监视点trace point 处理方法: 监视点缓冲 命中监视点,自动唤醒代理,存储数据到缓冲 代理无需通讯 实时

12、监视的可行方案 CPU支持串行工作针对指令缓冲27271.1.2.4典型调试器 Applied Microsystems Corp 的AMC System Debug Tools (CodeWarrior) Signum Systems Corp. 的Chameleon Debugger Wind River Systems, Inc. 的SingleStep /Tornado Debugger 28281.1.3 测试器 嵌入式微处理器测试基准联盟EEMBC(EDN Embedded Microprocessor Benchmark Consortium) EEMBC的测试标准:40多种用于

13、消费类产品、 网络、办公自动化及电信产品、汽车和工业 产品的C语言综合算法。 仅仅凭硬件测试测试 工具来自动记录动记录 嵌入式系 统统的完整测试结测试结 果是不可能的2929测试程序的选择 实际程序用户用来解决问题的实际工作程序.尽管不知道在工作负载中所占的比例. 如C编译器,文本编辑器等, 有输入,输出,参数 核心基准测试程序(kernel benchmark)从实际程序中抽出来的核心代码段,适于独立评价某一方面的性能 如Livemore Loops(浮点循环), Linpack等3030 简单基准测试程序(toy benchmark)事先知道结果的小程序(10100行) 如快速排序,八皇后

14、问题 等 综合基准程序(synthetic benchmark)根据大量实际程序的统计数据(指令和操作数的使用频度)人为设计编制的程序 如Whetstone, Dhrystone等31313232常见测试工具 Applied Microsystems Corp. 的 CodeTEST,拥有性能分析、内存分析、 代码跟踪和高级覆盖率分析四大功能模块 。单元级、集成级和系统级测试 。 Vector Software, Inc的VectorCAST, 功能涵盖环境构造器、测试用例产生器、 执行管理器、测试报告产生器、代码覆盖 率、静态分析 33331.2 仿真开发 非硬件平台开发 1源程序模拟器(S

15、imulator) 2实时在线仿真系统ICE 34341.2.1 源程序模拟器(Simulator) 简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设。 高级的模拟器可以利用计算机的外部接口模拟出处理器的I/O电气信号。 模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和 测试工具。 在指令执行时间、中断响应、定时器等方面很可能与实际处理器有相当的差别。 和ICE有区别 、 3535优点 模拟器软件独立于处理器硬件 一般与编译器集成在同一个环境中 有效的源程序检验和测试工具。 3636缺点 以一种处理器模拟另一种处理器的运行, 在指令执行时间、中断响应、定时器等方 面很可能与实际处理器有相当的差别 它无法和ICE一样,仿真嵌入式系统在应 用系统中的实际执行情况。 3737ChipView-x51 for Windows 3838ChipView-166 for Windows 3939SystemViewSystemView40404141WinCE的Pocket系列模拟器42421.2.2实时在线仿真系统ICE-仿真器 ICE具有三大功能 ICE排除了设计逻辑错误。通过实际执行,对应 用程序进行原理性检验,可以发现人的思维不能发现 的问题。 ICE可以发现与排除硬件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号