浙江大学嵌入式课件--嵌入式系统7.ppt_第1页
浙江大学嵌入式课件--嵌入式系统7.ppt_第2页
浙江大学嵌入式课件--嵌入式系统7.ppt_第3页
浙江大学嵌入式课件--嵌入式系统7.ppt_第4页
浙江大学嵌入式课件--嵌入式系统7.ppt_第5页
已阅读5页,还剩354页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统开发 浙江大学计算机学院陈天洲tzchen E2005年3月 2 嵌入式系统开发周期长和产品需要及时上市成为矛盾 选择是一个问题 学习掌握嵌入式系统结构及其应用更需要时间 以开发工具和技术咨询为基础的整体解决方案是迫切需要的 3 一 嵌入式开发的特点 1 需要集成软硬件开发环境嵌入式应用软件开发要使用交叉开发环境 交叉开发环境集成了编辑器 交叉编译器 交叉调试器 仿真软件 simulator 工程管理器于一体商业化的界面友好的同MicrosoftVisualStudio可视化开发环境相似 免费如GNU工具链运行在字符界面下交叉开发的硬件环境包括宿主机和目标板 4 2 嵌入式产品开发流程 元器件选型 原理图编制 印制板 样板试制 硬件功能测试 BSP调试 RTOS移植 协议栈移植 应用程序调试 系统联调 样机交付 5 3 开发完成后需要进行固化和测试 嵌入式应用软件在开发完成后 应生成固化版本 烧写到目标板的ROM中运行 6 4 软件要求更高 开发难度加大 与 位开发比较 嵌入式产品开发有如下特点 前期投入大 开发工具投入高 项目周期长 项目管理和进度控制困难 质量保证要求高 7 二 嵌入式开发的流程 与通用软件的开发流程大同小异 整个开发过程可分为总体规划 项目立项 需求分析 系统分析 系统设计 系统实现和后续流程7个阶段 8 1 总体规划市场预测 技术准备 资金准备 资料收集 资料研究 项目需求报告编制 项目需求报告讨论准备 项目需求报告讨论 项目需求报告修改 项目需求报告验收 参与者及职责 输出成果及后序工作 技术可行性实验 项目计划书 2 项目立项立项申请 项目立项评估 项目进度计划 项目立项审批 3 需求分析资料收集 需求分析编制 讨论准备 需求分析讨论 需求分析修改 需求分析验收 9 4 系统分析系统分析准备 确定问题域 需求建模 建立分析对象模型 系统分析合并 系统分析测试 系统分析修改 测试后 系统分析验收 5 系统设计系统设计 系统设计准备 界面设计 建立设计模型 系统设计合并 对象持久化设计 详细设计 系统设计测试 系统设计修改 测试后 系统设计验收 一般采用自顶向下的设计方法 10 6 系统实现芯片选型 关键电路试验 原理图编制 原理图评审 印制板 样板试制 硬件功能测试 硬件稳定性测试 BSP调试 RTOS移植 协议栈移植 软件代码编制准备 软件代码编制 软件单元代码走读 代码单元测试 单元代码修改 单元代码回归测试 系统联调 系统集成测试 样机交付 文档交付 7 后续流程试批量 培训安装 试运行 产品维护 批量 售后服务 产品新版本 产品生命周期结束 11 UML的应用 I Logix公司的Rhapsody系列产品基于统一建模语言UML的可视化编程环境把UML各类视图映射为具体目标机程序语言用于复杂实时嵌入式应用软件从分析 设计一直到代码实现和软件测试的开发环境NASA的火星探路者航天器就是运用Rhapsody在VxWorks上开发应用程序 12 三 开发环境 嵌入式系统 是指嵌入于宿主设备 智能地完成宿主设备功能的计算 控制系统 嵌入式系统开发环境 是以开发嵌入式系统为目的的工程开发环境 包括办公环境支持 软件支持 硬件设备支持 软件支持 指集成开发环境与软件模拟器等 硬件支持 指仿真器 目标板 示波器 烧录器等 13 3 1集成开发系统 集成开发系统提供高效明晰的图形化的嵌入式应用软件开发平台 包括一整套完备的面向嵌入式系统的开发和调试工具 一般包括编辑器 编译器 连接器 调试器 工程管理器和底层调试接口设备 BDM JTAG仿真器 等 14 31 1编译器 嵌入式语言 ASM Ada C C EC Java OP STAPLEC 标准95年初在日本成立的EmbeddedC 技术委员 15 嵌入式c c 编译器交叉编译能力 能够在pc unix平台上生成其他cpu平台目标代码连接 定址器 因为无法提供dos windows的动态定位执行能力 嵌入式一般需要目标代码静态定位到具体地址 定址器完成这一工作 启动代码 初始化处理器和c语言堆栈区等环境的汇编码 EC 针对嵌入式的一些实时要求等特点 对标准C 语言规范的修改扩充 嵌入式C C 开发环境 16 嵌入式C C 开发环境 提供目标调试 remote rommonitor 能力 另外还有其他一些地方需要注意 如I O库 大小尾段等 主流嵌入式编译器 GNU CADUL CodeWarrior GreenHill Diab SDS IAR BC VC Toolkit 等 17 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 18 交叉编译和链接 代码生成阶段需要完成的工作包括 编码 交叉编译和链接 交叉调试和测试等 嵌入式一般需要目标代码静态定位到具体地址 由交叉连接 定址器定址器完成这一工作 目前主流嵌入式编译器有 GCC GDB CADUL CodeWarrior GreenHill Diab SDS IAR eVC PlatformBuilder等等 注意字节顺序 19 3 1 2调试器 远程调试调试器还是运行于通用桌面操作系统的应用程序 被调试的程序则运行于基于特定硬件平台的嵌入式操作系统 目标操作系统 20 问题 调试器与被调试程序如何通信被调试程序产生异常如何及时通知调试器调试器如何控制 访问被调试程序调试器如何识别有关被调试程序的多任务信息并控制某一特定任务调试器如何处理某些与目标硬件平台相关的信息 如目标平台的寄存器信息 机器代码的反汇编等 21 两种远程调试的方案 一插桩 stub 二片上调试 OnChipDebugging 22 3 1 2 1插桩 stub 在目标操作系统和调试器内分别加入某些功能模块 二者互通信息来进行调试 驻留监控软件ResidentMonitors或ROMMonitor插桩Stub 23 步骤 调试器与被调试程序的通信调试器与目标操作系统通过指定通信端口 串口 网卡 并口 遵循远程调试协议进行通信 被调试程序产生异常及时通知调试器目标操作系统的所有异常处理最终都要转向通信模块 告知调试器当前的异常号 调试器据此向用户显示被调试程序产生了哪一类异常 24 调试器控制 访问被调试程序调试器的这类请求实际上都将转换成对被调试程序的地址空间或目标平台的某些寄存器的访问 目标操作系统接收到这样的请求可以直接处理 对于没有虚拟存储概念的简单的嵌入式操作系统而言 完成这些任务十分容易 调试器识别有关被调试程序的多任务信息并控制某一特定任务由目标操作系统提供相关接口 目标系统根据调试器发送的关于多任务的请求 调用该接口提供相应信息或针对某一特定任务进行控制 并返回信息给调试器 25 调试器处理与目标硬件平台相关的信息第2条所述调试器应能根据异常号识别目标平台产生异常的类型也属于这一范畴 这类工作完全可以由调试器独立完成 支持多种目标平台正是GNUGDB的一大特色 26 目标操作系统支持 远程调试协议的通信模块 包括简单的设备驱动 多任务调试接口改写异常处理的有关部分定义一个设置断点的函数 27 目标操作系统添加的这些模块统称为 插桩 若驻留于ROM中则称为ROMmonitor 28 通用操作系统也有具备这类模块编译运行于Alpha Sparc或PowerPC平台的LINUX内核时若将kgdb开关打开 就相当于加入了插桩 29 调试过程 30 Stub的本质 软件接管目标系统的全部异常处理 exceptionhandler 及部分中断处理在其中插入调试端口通信模块 与主机的调试器交互不用于正式发布的调试版 31 3 1 2 2 片上调试OnChipDebugging 片上调试是在处理器内部嵌入额外的控制模块 当满足了一定的触发条件时进入某种特殊状态在该状态下 被调试程序停止运行 主机的调试器可以通过处理器外部特设的通信接口访问各种资源 寄存器 存储器等 并执行指令 主机通信端口与目标板调试通信接口信号转换电路板连接 32 33 内嵌的控制模块 以基于微码的监控器 microcodemonitor 或纯硬件资源的形式存在包括一些提供给用户的接口 如断点寄存器等 具体产品有MotorolaCPU16 CPU32 Coldfire系列的BDM BackgroundDebugMode MotorolaPowerPC5xx 8xx系列的EPBDM EmbeddedPowerPCBackgroundDebugMode IBM TI的JTAG JointTestActionDebug IEEE标准 还有OnCE MPSD等等 34 35 EPBDM的执行流程 相当于用处理器内嵌的调试模块接管中断及异常处理 用户通过设置调试许可寄存器 debugenableregister 来指定哪些中断或异常发生后处理器直接进入调试状态 而不是操作系统的处理程序 1 进入调试状态后 内嵌调试模块向外部调试通信接口发出信号 通知一直在通信接口监听的主机调试器2 调试器便可通过调试模块使处理器执行任意系统指令 相当于特权态 36 3 所有指令均通过调试模块获取 所有load store均直接访问内存 缓存 cache 及存储管理单元 MMU 均不可用4 数据寄存器被映射为一个特殊寄存器DPDR 通过mtspr和mfspr指令访问 5 调试器向处理器送rfi returnfrominterrupt 指令便结束调试状态 被调试程序继续运行 37 OCD 片上调试 的特点 优点 不占用目标平台的通信端口无需修改目标操作系统能调试目标操作系统的启动过程 大大方便了系统开发人员 缺点 软件工作量的增加调试器端除了需补充对目标操作系统多任务的识别 控制等模块针对使用同一芯片的不同开发板编写各类ROM RAM的初始化程序 38 JTAG仿真器 也称为JTAG调试器通过CPU芯片的JTAG边界扫描口进行调试的设备JTAG调试的目标程序是在目标板上执行JTAG接口还常用于实现ISP In SystemProgrammable 在线编程 对FLASH等器件进行编程优点 与插桩方式的缺点相对应 该方式不占用目标平台的通信端口 无需修改目标操作系统 能调试目标操作系统的启动过程 大大方便了系统开发人员缺点 是软件工作量的增加 调试器端除了需补充对目标操作系统多任务的识别 控制等模块 还要针对使用同一芯片的不同开发板编写各类ROM RAM的初始化程序 39 在线仿真器 全仿真器 ROM仿真器 使用仿真头完全取代目标板上的CPU通过连接目标系统上的ROM插座 实现虚拟串 ethernet口和ROMMonitor可以完全仿真CPU芯片的行为 40 3 1 2 3其他调试器原理 代理 agent 针对 实时系统 延时 监视点tracepoint处理方法 监视点缓冲命中监视点 自动唤醒代理 存储数据到缓冲代理无需通讯实时监视的可行方案CPU支持串行工作针对指令缓冲 41 3 1 2 4典型调试器 AppliedMicrosystemsCorp的AMCSystemDebugTools CodeWarrior SignumSystemsCorp 的ChameleonDebuggerWindRiverSystems Inc 的SingleStep TornadoDebugger 42 3 1 3测试器 嵌入式微处理器测试基准联盟EEMBC EDNEmbeddedMicroprocessorBenchmarkConsortium EEMBC的测试标准 40多种用于消费类产品 网络 办公自动化及电信产品 汽车和工业产品的C语言综合算法 仅凭硬件测试工具来自动记录嵌入式系统的完整测试结果是不可能的 43 测试程序的选择 实际程序用户用来解决问题的实际工作程序 尽管不知道在工作负载中所占的比例 如C编译器 文本编辑器等 有输入 输出 参数核心基准测试程序 kernelbenchmark 从实际程序中抽出来的核心代码段 适于独立评价某一方面的性能如LivemoreLoops 浮点循环 Linpack等 44 简单基准测试程序 toybenchmark 事先知道结果的小程序 10 100行 如快速排序 八皇后问题等综合基准程序 syntheticbenchmark 根据大量实际程序的统计数据 指令和操作数的使用频度 人为设计编制的程序如Whetstone Dhrystone等 45 46 常见测试工具 AppliedMicrosystemsCorp 的CodeTEST 拥有性能分析 内存分析 代码跟踪和高级覆盖率分析四大功能模块 单元级 集成级和系统级测试 VectorSoftware Inc的VectorCAST 功能涵盖环境构造器 测试用例产生器 执行管理器 测试报告产生器 代码覆盖率 静态分析 47 3 2仿真开发 非硬件平台开发1源程序模拟器 Simulator 2实时在线仿真系统ICE 48 目前的嵌入式仿真软件大致可分成几类 系统级仿真目的大多数是快速仿真整个计算机系统如商业的vmware virtualpc simics x86 64 virtio和自由的plex86 Bochs和SimOS等用它们研究内核的执行情况则比较困难嵌入式开发仿真 目标是在通用的Linux和Windows平台实现一个仿真集成开发环境 模拟常见的嵌入式计算机系统如商业的ADSARMulator和自由的gdb armulator armulator skyeye等指令集仿真 主要用于仿真硬件的详细体系结构目的是用于硬件的分析 设计和检测 方便系统软件前期开发 49 1 2 1源程序模拟器 Simulator 简单的模拟器可以通过指令解释方式逐条执行源程序 分配虚拟存储空间和外设 高级的模拟器可以利用计算机的外部接口模拟出处理器的I O电气信号 模拟器软件独立于处理器硬件 一般与编译器集成在同一个环境中 是一种有效的源程序检验和测试工具 在指令执行时间 中断响应 定时器等方面很可能与实际处理器有相当的差别 和ICE有区别 50 优点 模拟器软件独立于处理器硬件一般与编译器集成在同一个环境中有效的源程序检验和测试工具 51 缺点 以一种处理器模拟另一种处理器的运行 在指令执行时间 中断响应 定时器等方面很可能与实际处理器有相当的差别它无法和ICE一样 仿真嵌入式系统在应用系统中的实际执行情况 52 ChipView x51forWindows 53 ChipView 166forWindows 54 SystemView 55 56 WinCE的Pocket系列模拟器 57 3 2 2实时在线仿真系统ICE 仿真器 ICE具有三大功能ICE排除了设计逻辑错误 通过实际执行 对应用程序进行原理性检验 可以发现人的思维不能发现的问题 ICE可以发现与排除硬件干扰等引起的异常执行行为 通过在应用系统中仿真微控制器的实时执行 系统的异常执行行为得到制止 高级的ICE带有完善的跟踪功能 它可以将应用系统的实际状态变化 微控制器对状态变化的反应 以及应用系统对控制的响应等以一种录像的方式连续记录下来 以供分析 在分析中优化控制过程 58 ICE不仅是软件硬件排错工具 同时也是提高和优化系统性能指标的工具 高档ICE工具 如美国NOHAU公司的产品 是可根据用户投资裁剪功能的系统 亦可根据需要选择配置各种档次的实时逻辑跟踪器 Trace 实时映象存储器 ShadowRAM 及程序效率实时分析功能 PPA 59 常见ICE AppliedMicrosystemsCorp 的CodeICE EL CodeTAP SuperTAP PowerTAP仿真器Lauterbach Inc 的TRACE32 ICE仿真器SignumSystemsCorp 的Signum系列仿真器EmbeddedSupportToolsCorp 的visionICE仿真器 60 EMUL ARMSupportstheARM7andARM9CORES EMUL PPCEmulatorSupportingtheXilinxPowerPCFamily 61 3 3仿真器与调试器的功能 内存查看寄存器浏览单步 断点设置跟踪程序下载执行Flash烧写操作系统任务级状态查看 62 3 4仿真器与调试器的历史 全仿真器使用硬件仿真芯片和仿真内存 连接困难 价格昂贵 如常见的51仿真器 Rommonitor调试器的一场革命 最廉价的一种方式 烧入Flash的一段小程序 可通过串 并 ethernet口调试 63 仿真器与调试器的历史 Rom仿真器通过连接目标系统上的Rom插座 实现虚拟串 ethernet口和Rommonitor 与Rom下载器不同 Rommonitor与Rom仿真器的优点 Cpu无关 下载程序速度快 价格便宜 monitor程序的 鸡 蛋 悖论Rom仿真器对C C 开发环境的支持很重要 64 仿真器与调试器的历史 BDM背景调试模式 由motorola提出 把相应调试微码放入处理器 使用高速串口进行访问 rommonitor的进一步扩展 JTAG边界扫描协议 是IEEE规范 目前是主流 使外界可以访问ASIC内部寄存器的技术 65 仿真器与调试器的历史 BDM JTAG调试器 与仿真器的区别 同样能够直接控制处理器硬件 在单板的硬件调试能力比rommonitor强 价格便宜 连接方便仿真器使用仿真内存 调试器需要目标板 仿真器支持硬件断点能力强仿真器可以支持trace功能 排错能力强 66 四 主要开发工具 67 68 4 1MontaVistaLinux 跨平台开发 它支持14个主机开发环境 包括RedHat YellowDogLinux SuSE Mandrake Solaris以及VMWareonWindowsNT 2000本提供了215多个主机配套工具和嵌入式目标平台开发组件软件包扩展了针对嵌入式跨平台开发的各类开放源代码工具的支持支持x86和PowerPC平台的Linux跟踪工具 包括内核性能和执行分析器 ext3日志文件系统 69 4 2CodeWarrior IDE 提供统一的图形用户界面来集成各种开发工具 支持多种主机平台 多种编程语言 多种处理器和多种实时操作系统 称为下一代集成开发环境 包括以下模块 编辑器 源码浏览器 搜索引擎 构造系统 调试器 工程管理器支持多语言 多平台 界面统一Plugin设计 根据不同开发IDE的需要 提供特殊的服务软件 70 4 3MULTI IDE 支持多语言 多目标系统的高度集成化系统 包括 工程生成工具源代码调试器事件分析器性能分析器实时错误检查工具图形浏览器文本编辑器版本控制系统 71 4 4CAD ULWorkbench 1 提供工程模板 2 工程导向的软件开发过程管理 3 通过工具管理器灵活配置选用各开发工具 4 在工具管理器中通过对话框来设置修改各工具选项 并提供在线帮助 5 可灵活植入其它开发工具 6 可浏览工程文件和外部文件的引用从属关系 7 包含一个具备语法检查功能的标准源代码编辑器 也可植入外部编辑器 8 图形对象的浏览器 用于工程源码分析 9 支持版本控制功能 72 4 5QNXMomentics QNX6 2 C C EmbeddedC 及Java代码开发器源代码调试器内存分析器系统剖析器系统生成器目标观察器目标导航器目标代理版本控制器系统分析器板级支持包驱动器开发包GNU工具链图形界面产生器 73 4 6MicrosoftWindowsEmbedded 1 WindowsCE NET eMbeddedVisualC 4 0 2 WindowsXPEmbedded VisualStudio NET 3 WindowsNTEmbedded TargetDesigner ComponentDesigner 五 基于VxWorks的嵌入式开发技术 5 1VxWorks简介 参考书 嵌入式实时操作系统Vxworks及其开发环境Tornado 孔祥营 电力出版社 2002 76 VxWorks支持32位的CPU 包括Intel公司的x86 Motorola公司的68k和PowerPC MIPS ARM Intel公司的i960 Hitachi公司的SH 77 VxWorks的IMAGE有三个层次 四个部分 78 windkernel 1 windkernel是一个微内核 这个特点导致VxWorks有许多的Components2 windkernel对外设不做假设 所谓对外设不做假设是指操作系统不假设用户开发的板子上是否有总线以及有什麽样的总线 也不假设内存的大小及内存如何定位 不假设I O及有多少I O IMAGE中就要有板级支持包BSP 即驱动程序 来完成对外设的管理 79 功能组成 任务的管理与调度 任务的同步与通信 动态内存的管理 软时钟的管理 I O管理 80 版本 最简内核任务的管理与调度纳核8kVxWorks 标准的单CPU版本VxFusion 标准的多CPU版本 81 统一的API 由操作系统内核提供的服务原语搭建起来的服务原语 是不可打断的系统调用的时间尽量小 尽量是常量和可确定 82 验证性 FAAFDA 83 实时性 使tc contextswich 和ts systemcall 尽可能小 尽可能是常量和可确定可确定tc和ts有一个上限不会出现峰值不会随系统任务的增多而增多 84 85 Components 基本模块领域扩展模块 领域解决方案 86 基本模块 WDBAgent 两种工作模式 中断或查询 支持系统级和任务级调试Shell Loader 支持动态地下载或卸载模块WindView支持模块 支持利用WindView动态调试目标程序CodeTest支持模块 支持利用CodeTest测试系统的代码覆盖率和内存使用情况SENS 是VxWorks的可裁减的增强型网络协议栈 ScalableEnhancedNetworkStack 它除了提供TCP IP协议栈 还支持其他协议 最大的特点就是采用零拷贝机制 即打包 解包是通过指针的方式 87 网络扩展模块 提供了丰富的网络协议 BSD4 3 TCPV4 UDPetc 路由协议 OSPF RIPetc 和网络应用 ping SNMP DHCPserver client DNS telnetserver FTPserver NFSserver client TFTPserver client 等文件系统 支持五种文件格式 MS DOS RAW NFS CD ROM RT11卷标格式 为了实现后向兼容 对存储介质不做假设 可以是电的 如PCMCIA的ATA 磁的ANSIC模块 解决了以下问题 库集成 库不可重入 版本兼容及移植性 该库中的函数大致可分为 类 字符处理功能 字符串处理功能 通用功能 I O处理功能 88 POSIX VxDCom VxMP VxTrueFFS VxVMI 89 领域扩展模块 领域解决方案 Telecom 2 Carrier网 边缘交换机 VoIP网关 核心路由器 3 消费类网络 CabelModem xDSLModem 网关 家用网络设备 90 ConsumerElec TIA TornadoforInternetAppliance 应用 Set topBox 卫星 Cable Web PDADigitalCameraEmbeddedBrowser 91 BSP BoardSupportPackage 由两部分组成初始化 驱动程序初始化从系统上电复位开始直到windkernel和usrRoot根任务启动的这段时间 系统的执行过程驱动程序 一些包含I O操作的子函数 92 初始化 包括 CPUInitCPUInit初始化CPU的内部寄存器 BoardInitBoardInit初始化智能I O的寄存器 将device打通SystemInitSystemInit为系统的运行准备数据结构 进行数据初始化 93 驱动程序 不能自动执行 只能被动调用三种方式任务直接调用任务调用SystemCall任务调用服务 94 95 对内存使用采用FlatMode 静态分配的IMAGE占用空间 code data bss 系统的动态空间 windkernel创建的REGION 0 用户的动态空间 96 97 VxWorksk可被静态或动态链接 VxWorks在开发阶段可动态地下载目标文件 并与操作系统及其它目标文件动态链接 链接以后是浮动的 只在装载时才与绝对物理地址相对应VxWorks成品阶段是采用静态链接的 98 RAM类型的IMAGE 99 ROM类型的IMAGE 100 成品时的IMAGE和调试时的IMAGE 成品时的IMAGE有两种运行模式 ROM residentimage BSP初始化时把image中的data段复制到RAM中 code在ROM中运行 101 102 ROM basedimage BSP初始化时把image完全搬到RAM中执行 包括image中的data段和bss段 分压缩和非压缩两种类型 103 104 调试时的Image 先由引导代码把ROMBootProgram搬到RAM中 BootProgram初始化调试下载通道和调试信息输出通道被调试的IMAGE通过Host与Target之间的某种耦合方式download到Target的RAM中 然后接受控制权 实现调试 105 106 Image的在线升级 存储介质 flash flashdisk升级通道 升级时期 升级保护 升级安全 升级IMAGE的部分或整体 107 Debug 108 硬件 非在线问题 工艺 在线问题 设计问题 上电以后不能正常运行BSP VxWorks和Components 没有发现bugApp语句逻辑层 程序语句的逻辑是否正确功能层 设计的功能是否可以实现任务层 任务的划分 调度是否合理系统层 系统的可靠性 效率 109 调试的手段及工具 纯硬的手段万用表 示波器 逻辑分析仪 针对非在线的硬件问题和部分的在线硬件问题半硬半软的手段ICE BDM 针对部分硬件的在线问题和BSP的调试纯软的手段CrossDebugger 针对App的调试 110 ICE的方法 运行的IMAGE在仿真器中 由仿真器的CPU在用户的硬件环境下运行来调试软件 限制 价格 使用率的比率太高 CPUdependence 111 BDM的方法 在运行IMAGE的CPU上支持一种断点逻辑硬件调试代理宿主机通过并口连接的Adapter连接到CPU的BDM接口上 进行软件的调试 限制 CPU必须支持BDM方式 步骤 BDMDebugger下载Registerlist激活板子 BDMDebuggerIMAGE下载到目标板的RAM中 112 113 软件调试 宿主机与目标机通过某种方式耦合 宿主机上的调试器通过目标机上的调试代理来进行软件的调试优点是性价比高 114 CrossDebugger Crosswind 照相机 静态调试 在某一个时间点捕捉到CPU的寄存器 内存 应用程序的任务 队列 信号量等 可以调试App下面的2 5层摄象机 动态调试 WindView SystemBrowser 可以看到程序在动态运行时发生的情况 如任务的切换轨迹等 CodeTest可测试系统的代码覆盖率以及内存的动态分配和释放情况ScopeTools可分析系统内某个变量随时间的变化曲线 每个函数或任务占用CPU的时间 以及内存的使用情况 115 WindView 按功能分trace 用于发现偶然bug 即与历史状态相关的bugprofile 利用直方图 百分率进行统计分析 举例 通过直方图统计任务对CPU的占用时间 进行分析一个事后分析的工具 记录一个Recorder 以file的形式存在宿主机上 然后对其进行分析 这个Recorder具有三个特点 singlebuffer transmit wraproundVxWorks采用wrapround方式 总是记录最后一段时间的系统运行情况 在记录开始前应该设置de trigger的events选项 以免在通信还未中断的情况下已经死机 目标机就会把死机的标志不断地送回宿主机 而会把死机前记录的情况覆盖掉 116 SystemBrowser是一个定时采样 事后分析的工具 采样的对象可以是堆栈 队列 堆栈等 117 Vxworks 嵌入式Linux共同特性 多任务 多进程的操作系统 具备软实时特性 标准的linux内核不具备硬实时特性 需另加硬实时调度器 构成真正的实时操作系统 118 EmbeddedLinux的优点 系统开发成本低 投资效益高 源码开放 现有程序资源丰富 web服务器 数据库 GUI等 开放的操作系统 网络功能强大 拥有完整TCP IP协议栈 程序的通用性好 代码可重用 主机式开发环境 摒弃了复杂的宿主机 目标机的开发模式 在由目标机构造的系统中 真正做到了直接开发应用程序的代码 产品开发速度加快 提早上市 提高了竞争力 控制了开发风险 119 embeddedLinux的缺点 占用资源较大 运行linux至少需要8M 16M的内存 2M的ROM没有VxWorks普及Embeddelinux却是发展方向 120 Tornado WIN95 NT环境下的第二代IDE 是基于软总线的开放环境 是一种层次结构 Manager ProjectTools InternalBUS symbolserver communicateserver 121 122 ToolsSet CrossCompiler GNUforallarchitectureDiabDataforPPC 68k Mips ARMetc CrossDebugger 照相机 CrossWind摄象机 WindView SystemBrowser CodeTest ScopeToolsProjectFacility VxWorks的自动配置工具Simulator Integratedsimulator fullsimulator 123 任务三种状态 ReadyDelayedPended事件驱动R E 不同优先级抢占 同一优先级时间片轮转E R 被其他任务抢占或时间片耗尽E B 所需资源没有满足B R 所需资源得到满足 124 125 RTOS任务调度的算法 Pre empty 不同优先级的任务采用抢占方式 126 Timeslice 相同优先级的任务采用时间片轮转方式 KernelTimeSlice ticks 127 VxWorks的任务调度算法 VxWorks的每个任务可以规定自己的priority mode 可否设断点 是否支持浮点操作 128 任务之间的关系 通信 松耦合 实现机制 一个消息队列紧耦合 实现机制 两个消息队列任务之间的通信也可以用信号量来构造 控制 数据保护 信号量或互斥量同步 信号量 信号或消息队列 129 VxWorks的Object 面向对象的操作系统 VxWorks的对象 Task MessageQueue Semophore Timer Pipe FileDescriptor 对象的属性 生存性 对象可以被创建或删除在生存期间 可被标识和管理 Name ID ControlBlock平等性 对象之间不象Unix中的父子进程间那样存在继承关系 对象的服务 系统使用系统服务对对象进行操作 6 1tornado 131 TorandoII嵌入式集成开发系统结构图 132 TorandoII嵌入式开发系统Tornado软件工具包 TornadoToolsPackages CDevelopers C Developers TornadoStandard Coretools TornadoPrototyper Coretools VxSim TornadoProfessional CoretoolsWindView TwoadditionalWindPowertools TornadoPowerProfessional CoretoolsWindView VisualSlickEdit FouradditionalWindPowertools TornadoC Professional CoretoolsWindView TwoadditionalWindPowertools WindPowerC tools TornadoC PowerProfessional CoretoolsWindView VisualSlickEditFouradditionalWindPowertools WindPowerC tools 133 核心工具1 图形化的交叉调试器 Debugger CrossWind WDB 远程的源代码集成调试器支持任务级和系统级调试支持混合源代码和汇编代码显示支持多目标机同时调试 134 2工程配置工具 ProjectFacility Configuration 对VxWorks操作系统及其组件进行自动地配置Makefile自动生成维护软件工程维护自动的依赖性分析代码容量计算自动裁剪 135 3集成仿真器 IntegratedSimulator VxSim支持CrossWind WindView Browser 提供与真实目标机一致的调试和仿真运行环境可以没有BSP 操作系统配置 目标机硬件 136 4诊断分析工具 WindViewfortheIntegratedSimulator 动态诊断和分析工具目标机硬件上实际运行的应用程序的许多的详细情况 137 5C C 编译环境 C C CompilationEnvironment 交叉编译器DiabC C Compiler 唯一获得MOTOROLA白金大奖的嵌入式编译器GNUC C Compiler 应用最广泛的编译器 iostreams类库支持C 中的格式化的和类型安全的I O扩展到用户自定义数据类型一些列的工具异常事件处理 标准模板库 STL StandardTemplateLibrary 运行类型识别 RTTI Run TimeTypeIdentification 支持静态构造器和析构器的加载器 C 调试器 138 6主机目标机连接配置器 Launcher 允许开发者轻松地设置和配置一定的开发环境 也提供对开发环境的管理和许多管理功能 139 7目标机系统状态浏览器 Browser 提供目标系统的全面状态总结 也允许开发者监视独立的目标系统对象 任务 信号灯 消息队列 内存分区 定时器 模块 变量 堆栈等 140 8命令行执行工具 WindSh 命令行解释器可以直接解释执行C语句表达式 调用目标机上的C函数 访问系统符号表中登记的变量 还可以直接执行TCL语言 141 9多语言浏览器 WindNavigator 源程序代码浏览 图形化显示函数调用关系 快速地进行代码定位 142 10图形化核心配置工具 WindConfig 使用图形向导方式智能化的自动配置VxWorks内核及其组件参数 143 11增量加载器 IncrementalLoader 可以动态的加载新增模块并在目标机与内核实现动态链接运行 144 备选工具 Optioanaltools WindPower工具WindPowerC 工具 145 WindPower工具 1 软件逻辑分析仪WindView1 原型仿真器VxSim1 显示软件包ScopePak4 性能检测包PerformancePak5 代码测试器CodeTest6 编辑工具VisualSlickEditforTornado 146 软件逻辑分析仪WindView 提供嵌入式系统中各种动态运行过程的细节 147 原型仿真器VxSim 完整的原型和仿真工具在没有实际的目标硬件的前提下 先进行包括网络和基于多处理器的原型应用程序设计允许开发者在开发周期的前期就进行大量的应用程序测试 148 显示软件包ScopePak ScopePak的组成部分包括 软件示波器StethoScope实时数据收集 图形显示 文档和调试工具跟踪示波器TraceScope追踪程序执行过程的工具 149 性能检测包PerformancePak 包括 CPU运行概况分析工具ProfileScope提供细节的 到每个函数的运行信息 可以帮助开发者查看CPU工作情况和确定性瓶颈内存使用分析工具MemScope控制内存使用 检查内存泄露 查看内存使用情况 150 代码测试器CodeTest 包括 覆盖率分析CoverageModule动态的内存分配分析MemoryModule替代探针的targetagent 151 Tornado软件工具包的WindPowerC 工具 WFC基础类库WindFoundationClasses为基本I O 数据结构 算法和VxWorks函数提供面向对象的接口C 对象跟踪器Look forTornado面向对象的C 的可视化调试工具 152 5 3网络设备中VxWorks开发 网络产品实现方法的演进实时系统VxWorks介绍Tornado开发环境介绍BSP设备驱动 153 实现方法的演进 基于PC的架构 80 s 90 sEarly 软件实现基于ASIC MPU的架构 90 sMiddle 软件控制 硬件线速处理 154 基于PC的架构 CPU 存储器 网卡 PCI MAC 本地缓存 网卡 PCI PCI显卡 Ethernet Ethernet 主板 OS Linux API 应用程序 应用程序 硬件 源代码 C MAC 终端 BIOS 问题 1 接口速率问题 upto100M 2 处理容量问题 3 安全性问题 上层软件 本地缓存 155 工作组 园区路由器的基本结构 Cisco7200router CPU Host B dram sram pcmcia Pci B Linecard Linecard Linecard Linecard Linecard Linecard Eprom duart Pci B 156 路由器基本结构 157 基于ASIC MPU的架构 1 输入处理 输出处理 交换 路由协议 拥塞控制 其它安全计费 接纳控制 控制平面 数据平面 路由查找 路由器层次结构 硬件 上层软件 158 基于ASIC MPU的架构 2 BSP MPU 存储器 ASICL2switch L3Forwarding CPU总线 MAC Ethernet RTOS Vxworks API 应用程序 应用程序 硬件 MAC Ethernet 串口 E口 存储器 Tornado开发环境 C源代码 2 1 问题 1 速率与功能受限于Chip 2 ASIC 速率低 FPGA 周期长 4 可扩展性差 159 注 AAL层对用户信息相当L4的下边界 对控制信息相当L2的下边界 ATM层次模型 160 161 单板介绍 交换板 去主控板 U2 U2 162 网络产品实现方法的演进实时系统VxWorks介绍Tornado开发环境介绍BSP设备驱动 5 3网络设备中VxWorks开发 163 实时系统定义 对于给定一个时间约束量 0 如果系统S在T1时刻接受到输入 在T2时刻给出合理的输出 且使T2 T1 则称系统S满足要求的时间 的实时性 通常称系统S为实时系统 正确 但迟后的结果也是错误的 164 时间约束是相对的关键因素 系统对外部激励的响应时间 实时系统 165 计算机系统的组成 应用软件 H W OperatingSystem 抽象层 间 件 中 166 实时操作系统 实时操作系统允许应用程序满足严格的时间要求多任务内核实时调度 基于优先级的抢占 任务间通信互斥其它功能作为库由Kernel调度 167 实时操作系统 168 与非实时操作系统的区别 基于优先级抢占的调度高效 快小 可配置 169 实时操作系统中的概念 多任务调度优先权时间片通信和同步资源共享事件互斥信号量邮箱 170 多任务 目的 优化系统资源 CPU时间 内存 磁盘 驱动器 的使用多任务OS允许多个任务并发和独立地在系统上运行实现独占和共享系统资源根据所需的输入 输出资源 控制任务执行任务 Task Process Agent Thread逻辑整体动态 进程 实体 171 Task与Program的区别 程序 program 静态实体 由一个或多个指令序列 管理一组数据 内部或外部变量 任务 task 动态实体 运行一个或多个程序 以实现处理器上指定的活动 172 任务的不同状态 运行 挂起 阻塞 删除 运行 处理器分配 休眠 其它任务抢先 唤醒 等待资源 只等待处理器 173 调度 调度器负责任务的状态管理和当前任务的选择分发器选择由调度器推举的当前的任务 有效的上下文切换 处理器分配算法的判据选择有 任务优先 其寿命 消耗的CPU时间 等等用调度器动态调整 174 优先权 优先权 系统错误处理硬件事件管理设备驱动器最短用户任务最长 注释唯一重要的优先权是任务之间的相对优先权 175 通信和同步 任务互操作 以便合作完成公共活动目的管理任务间共享的系统资源 避免系统死锁 176 资源共享 资源可以是软件或硬件局部 仅在一个任务内使用 或公用能共享的资源有最大的进入能力 177 互斥 避免数据或者代码不一致的机制互斥当几个任务共享非重入资源 判据 时发生互斥信号量信号量类同于售票机 178 邮箱 邮箱是任务之间的交换区2个队列与邮箱有关一个是消息队列一个是任务队列 多个发送和接受 msg1 msg2 msg3 send receive 179 5 3网络设备中VxWorks开发 网络产品实现方法的演进实时系统VxWorks介绍基本定义内核 Wind 任务间通信POSIX ISR WatchdogI O系统及其他Tornado开发环境介绍BSP设备驱动 180 Vxworks操作系统是一个嵌入式实时操作系统 RTOS Vxworks与其它实时OS一样 基于以下两个重要机制 多任务环境及任务间通信 硬件中断处理Vxworks多任务内核完成的功能是 实时调度 任务间通信及互斥 其它功能则作为系统库围绕在内核周围 它们可根据需要进行剪裁 Vxworks与非实时系统的不同之处在于 Vxworks的优先抢占机制基于调度 Vxworks对外部事件的反应和处理快 Vxworks容量小并且可配置 微内核结构 VxWorks 181 VxWorks组件 高性能实时内核POSIX 1003 1b 兼容接口I O系统本地文件系统C C 开发支持共享内存虚拟内存目标机驻留工具 182 VxWorks组件 续 工具库性能评估工具目标机代理板支持包 BSP VxWorks仿真器和逻辑分析仪 WindView 网络组件 183 5 3网络设备中VxWorks开发 网络产品实现方法的演进实时系统VxWorks介绍基本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论