嵌入式系统9-嵌入式系统开发.ppt

上传人:marr****208 文档编号:133899127 上传时间:2020-05-31 格式:PPT 页数:66 大小:1.77MB
返回 下载 相关 举报
嵌入式系统9-嵌入式系统开发.ppt_第1页
第1页 / 共66页
嵌入式系统9-嵌入式系统开发.ppt_第2页
第2页 / 共66页
嵌入式系统9-嵌入式系统开发.ppt_第3页
第3页 / 共66页
嵌入式系统9-嵌入式系统开发.ppt_第4页
第4页 / 共66页
嵌入式系统9-嵌入式系统开发.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《嵌入式系统9-嵌入式系统开发.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统9-嵌入式系统开发.ppt(66页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统开发 2 一 嵌入式开发的特点 1 需要集成软硬件开发环境嵌入式应用软件开发要使用交叉开发环境 交叉开发环境集成了编辑器 交叉编译器 交叉调试器 仿真软件 simulator 工程管理器于一体商业化的界面友好的同MicrosoftVisualStudio可视化开发环境相似 免费如GNU工具链运行在字符界面下交叉开发的硬件环境包括宿主机和目标板 3 2 嵌入式产品开发流程 元器件选型 原理图编制 印制板 样板试制 硬件功能测试 BSP调试 RTOS移植 协议栈移植 应用程序调试 系统联调 样机交付 4 3 开发完成后需要进行固化和测试 嵌入式应用软件在开发完成后 应生成固化版本 烧写到

2、目标板的ROM中运行 5 4 软件要求更高 开发难度加大 与 位开发比较 嵌入式产品开发有如下特点 前期投入大 开发工具投入高 项目周期长 项目管理和进度控制困难 质量保证要求高 6 二 嵌入式开发的流程 与通用软件的开发流程大同小异 整个开发过程可分为总体规划 项目立项 需求分析 系统分析 系统设计 系统实现和后续流程7个阶段 7 UML的应用 I Logix公司的Rhapsody系列产品基于统一建模语言UML的可视化编程环境把UML各类视图映射为具体目标机程序语言用于复杂实时嵌入式应用软件从分析 设计一直到代码实现和软件测试的开发环境NASA的火星探路者航天器就是运用Rhapsody在Vx

3、Works上开发应用程序 8 三 开发环境 嵌入式系统开发环境 是以开发嵌入式系统为目的的工程开发环境 包括办公环境支持 软件支持 硬件设备支持 软件支持 指集成开发环境与软件模拟器等 硬件支持 指仿真器 目标板 示波器 烧录器等 9 3 1集成开发系统 集成开发系统提供高效明晰的图形化的嵌入式应用软件开发平台 包括一整套完备的面向嵌入式系统的开发和调试工具 一般包括编辑器 编译器 连接器 调试器 工程管理器和底层调试接口设备 BDM JTAG仿真器 等 10 3 1 1编译器 嵌入式语言 ASM Ada C C EC Java OP STAPLEC 标准95年初在日本成立的EmbeddedC

4、 技术委员 11 嵌入式c c 编译器交叉编译能力 能够在pc unix平台上生成其他cpu平台目标代码连接 定址器 因为无法提供dos windows的动态定位执行能力 嵌入式一般需要目标代码静态定位到具体地址 定址器完成这一工作 启动代码 初始化处理器和c语言堆栈区等环境的汇编码 EC 针对嵌入式的一些实时要求等特点 对标准C 语言规范的修改扩充 嵌入式C C 开发环境 12 嵌入式C C 开发环境 提供目标调试 remote rommonitor 能力 另外还有其他一些地方需要注意 如I O库 大小尾段等 主流嵌入式编译器 GNU CADUL CodeWarrior GreenHill

5、Diab SDS IAR BC VC Toolkit 等 13 1 早期的FranklinSoftwareInc 的A51 C51与KeilSoftwareInc 的CA51 CA251 CA166赫赫有名 2 TASKINGInc 的C C EC 编译器 3 CAD ULInc 提供一整套工具开发X86和68K 4 WindRiverSystems Inc 的DiabC C CompilerSuite 应用于pSOS系统 5 IBM的HighC C Compiler 针对PowerPC 6 GNU组织的免费编译器GCC 14 3 1 2调试器 远程调试调试器还是运行于通用桌面操作系统的应用程

6、序 被调试的程序则运行于基于特定硬件平台的嵌入式操作系统 目标操作系统 15 问题 调试器与被调试程序如何通信被调试程序产生异常如何及时通知调试器调试器如何控制 访问被调试程序调试器如何识别有关被调试程序的多任务信息并控制某一特定任务调试器如何处理某些与目标硬件平台相关的信息 如目标平台的寄存器信息 机器代码的反汇编等 16 两种远程调试的方案 一插桩 stub 二片上调试 OnChipDebugging 17 3 1 2 1插桩 stub 在目标操作系统和调试器内分别加入某些功能模块 二者互通信息来进行调试 驻留监控软件ResidentMonitors或ROMMonitor插桩Stub 18

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

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

9、若将kgdb开关打开 就相当于加入了插桩 24 调试过程 25 Stub的本质 软件接管目标系统的全部异常处理 exceptionhandler 及部分中断处理在其中插入调试端口通信模块 与主机的调试器交互不用于正式发布的调试版 26 3 1 2 2 片上调试OnChipDebugging 片上调试是在处理器内部嵌入额外的控制模块 当满足了一定的触发条件时进入某种特殊状态在该状态下 被调试程序停止运行 主机的调试器可以通过处理器外部特设的通信接口访问各种资源 寄存器 存储器等 并执行指令 主机通信端口与目标板调试通信接口信号转换电路板连接 27 28 内嵌的控制模块 以基于微码的监控器 mic

10、rocodemonitor 或纯硬件资源的形式存在包括一些提供给用户的接口 如断点寄存器等 具体产品有MotorolaCPU16 CPU32 Coldfire系列的BDM BackgroundDebugMode MotorolaPowerPC5xx 8xx系列的EPBDM EmbeddedPowerPCBackgroundDebugMode IBM TI的JTAG JointTestActionDebug IEEE标准 还有OnCE MPSD等等 29 30 EPBDM的执行流程 相当于用处理器内嵌的调试模块接管中断及异常处理 用户通过设置调试许可寄存器 debugenableregister

11、 来指定哪些中断或异常发生后处理器直接进入调试状态 而不是操作系统的处理程序 1 进入调试状态后 内嵌调试模块向外部调试通信接口发出信号 通知一直在通信接口监听的主机调试器2 调试器便可通过调试模块使处理器执行任意系统指令 相当于特权态 31 3 所有指令均通过调试模块获取 所有load store均直接访问内存 缓存 cache 及存储管理单元 MMU 均不可用4 数据寄存器被映射为一个特殊寄存器DPDR 通过mtspr和mfspr指令访问 5 调试器向处理器送rfi returnfrominterrupt 指令便结束调试状态 被调试程序继续运行 32 OCD 片上调试 的特点 优点 不占用

12、目标平台的通信端口无需修改目标操作系统能调试目标操作系统的启动过程 大大方便了系统开发人员 缺点 软件工作量的增加调试器端除了需补充对目标操作系统多任务的识别 控制等模块针对使用同一芯片的不同开发板编写各类ROM RAM的初始化程序 33 JTAG仿真器 也称为JTAG调试器通过CPU芯片的JTAG边界扫描口进行调试的设备JTAG调试的目标程序是在目标板上执行JTAG接口还常用于实现ISP In SystemProgrammable 在线编程 对FLASH等器件进行编程优点 与插桩方式的缺点相对应 该方式不占用目标平台的通信端口 无需修改目标操作系统 能调试目标操作系统的启动过程 大大方便了系

13、统开发人员缺点 软件工作量的增加 调试器端除了需补充对目标操作系统多任务的识别 控制等模块 还要针对使用同一芯片的不同开发板编写各类ROM RAM的初始化程序 34 在线仿真器 全仿真器 ROM仿真器 使用仿真器完全取代目标板上的CPU通过连接目标系统上的ROM插座 实现虚拟串 ethernet口和ROMMonitor可以完全仿真CPU芯片的行为 35 3 1 2 3其他调试器原理 代理 agent 针对 实时系统 延时 监视点tracepoint处理方法 监视点缓冲命中监视点 自动唤醒代理 存储数据到缓冲代理无需通讯实时监视的可行方案 36 3 1 2 4典型调试器 AppliedMicro

14、systemsCorp的AMCSystemDebugTools CodeWarrior SignumSystemsCorp 的ChameleonDebuggerWindRiverSystems Inc 的SingleStep TornadoDebugger 37 3 1 3测试器 嵌入式微处理器测试基准联盟EEMBC EDNEmbeddedMicroprocessorBenchmarkConsortium EEMBC的测试标准 40多种用于消费类产品 网络 办公自动化及电信产品 汽车和工业产品的C语言综合算法 仅凭硬件测试工具来自动记录嵌入式系统的完整测试结果是不可能的 38 测试程序的选择

15、实际程序用户用来解决问题的实际工作程序 尽管不知道在工作负载中所占的比例 如C编译器 文本编辑器等 有输入 输出 参数核心基准测试程序 kernelbenchmark 从实际程序中抽出来的核心代码段 适于独立评价某一方面的性能如LivemoreLoops 浮点循环 Linpack等 39 简单基准测试程序 toybenchmark 事先知道结果的小程序 10 100行 如快速排序 八皇后问题等综合基准程序 syntheticbenchmark 根据大量实际程序的统计数据 指令和操作数的使用频度 人为设计编制的程序如Whetstone Dhrystone等 40 常见测试工具 AppliedMi

16、crosystemsCorp 的CodeTEST 拥有性能分析 内存分析 代码跟踪和高级覆盖率分析四大功能模块 单元级 集成级和系统级测试 VectorSoftware Inc的VectorCAST 功能涵盖环境构造器 测试用例产生器 执行管理器 测试报告产生器 代码覆盖率 静态分析 41 3 2仿真开发 非硬件平台开发1源程序模拟器 Simulator 2实时在线仿真系统ICE 42 目前的嵌入式仿真软件大致可分成几类 系统级仿真目的大多数是快速仿真整个计算机系统如商业的vmware virtualpc simics x86 64 virtio和自由的plex86 Bochs和SimOS等用它们研究内核的执行情况则比较困难嵌入式开发仿真 目标是在通用的Linux和Windows平台实现一个仿真集成开发环境 模拟常见的嵌入式计算机系统如商业的ADSARMulator和自由的gdb armulator armulator skyeye等指令集仿真 主要用于仿真硬件的详细体系结构目的是用于硬件的分析 设计和检测 方便系统软件前期开发 43 1 2 1源程序模拟器 Simulator 简单的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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