欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年嵌入式系统软件开发和设计流程复习课程 .pdf

    • 资源ID:35749023       资源大小:116.52KB        全文页数:13页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年嵌入式系统软件开发和设计流程复习课程 .pdf

    本文由 hquwgz 贡献 ppt文档可能在WAP 端浏览体验不佳。建议您优先选择TXT ,或下载源文件到本机查看。嵌入式系统及应用第九章嵌入式系统软件的开发主要内容嵌入式软件开发工具嵌入式系统开发模式实时软件分析设计方法第一节嵌入式软件开发工具嵌入式软件开发工具的分类嵌入式软件的交叉开发环境嵌入式软件实现阶段的开发过程 嵌入式软件开发工具的发展趋势嵌入式软件开发工具“工欲善其事, 必先利其器”嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。嵌入式软件开发工具的分类嵌入式软件开发阶段嵌入式软件开发工具的分类根据不同的阶段,嵌入式软件开发工具可以分为:需求分析工具(Requirement Analysis Tools ) 软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具 (Testing Tools) 配置管理工具、维护工具等 Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST Phases Requirement Analysis Software Design Coding Test Release 主要嵌入式软件开发工具产品嵌入式软件开发工具的分类嵌入式软件的开发可以分为以下几种:编写简单的板级测试软件,主要是辅助硬件的调试 开发基本的驱动程序开发特定嵌入式操作系统的驱动程序(板级支持包) 开发嵌入式系统软件,如:嵌入式操作系统等开发应用软件嵌入式软件开发工具的分类从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为:与嵌入式OS相关的开发工具,用于开发:基于嵌入式OS的应用部分驱动程序等与嵌入式OS无关的开发工具,用于开发:基本的驱动程序辅助硬件调试程序系统软件等嵌入式软件的交叉开发环境交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括:文本编辑器交叉编译器交叉调试器仿真器下载器等交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。运行平台Target 目标机应用系统调 试 代 理开发平台Host 宿主机开发环境运 行 库 应用软件 应用中间件 目标机 OS 目标机硬件 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 编辑编译连接调试宿主机 OS 宿主机硬件交叉开发环境嵌入式软件的交叉开发环境宿主机( Host) :是用于开发嵌入式系统的计算机。一般为PC机(或者工作站) ,具备丰富的软硬件资源, 为嵌入式软件的开发提供全过程支持。目标机 (Target ) :即所开发的嵌入式系统, 是 嵌入式软件的运行环境,其硬件软件是为特定应用定制的。在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。嵌入式软件的交叉开发环境物理连接和逻辑连接物理连接是指宿主机与目标机通过物理线路连接物理连接在一起,连接方式主要有三种:串口以太口 OCD (On Chip Debug )方式,如JTAG 、BDM 等物理连接是逻辑连接的基础。逻辑连接指宿主机与目标机间按某种通信协议建逻辑连接 立起来的通信连接,目前逐步形成了一些通信协议的标准。嵌入式软件实现阶段的开发过程设计完成后, 嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、 调试和固化运行。软件的生成主要是在宿主机上进行,利用各种工具完成软件的生成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。调试是通过交叉调试器完成软件的调试工作。 调试完成调试后还需进行必要的测试工作。固化运行是先用一定的工具将应用程序固化到目标机上,固化运行然后启动目标机,在没有任何工具干预的情况下应用程序 能自动地启动运行。嵌入式软件生成阶段三个过程源代码程序的编写 编译成各个目标模块链接成可供下载调试或固化的目标程序库文件源程序目标模块可供调试 / 固 化编辑器交叉编译器交叉链接器交叉编译把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU (嵌入式微处理器)上的二进制程序。嵌入式软件的调试交叉调试器是指调试程序和被调试程序运行在不同机器上的调试器调试器通过某种方式能控制目标机上被调试程序的运行方式通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等交叉调试调试器和被调试程序运行在不同的计算机上可独立运行, 无需操作系统支持可独立运行,被调试程序的装载由调试器完成需要通过外部通信的方式来控制被调试程序可以直接调试不同指令集的程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 非交叉调试调试器和被调试程序运行在同一台计算机上需要操作系统的支持被调试程序的装载由专门的 Loader程序完成 Loader程序完成不需要通过外部通信的方式来控制被调试程序只能直接调试相同指令集的程序嵌入式软件的调试交叉调试方式 Crash and Burn Rom Monitor Rom Emulator In Circuit Emulator On Chip Debugging Simulator方式(非交叉)在宿主机上编写代码反复检查代码,反复检查代码,直到编译通过,通过,生成可执行程序将程序固化(将程序固化(Burn)到目标机的非易失) 性存储器(性存储器(E2PROM、FLASH等)中、 等 Crash and Burn 启动目标机运行,启动目标机运行,观察程序是否正常工作 N 最早的嵌入式应用软件调试方法。 Y 在宿主机上反复检查码,查找问题根源改写代码结束 ROM Monitor ROM Monitor是被固化且运行在目标机上的一段程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一起完成对应用程序的调试。调试器与ROM Monitor 之间的通信遵循远程调试协议。宿主机调试器目标机监控程序 (ROM 被调试 Monitor) 程序嵌入式硬件物理上的连接 ROM Monitor调试方式调试方式逻辑上的连接 Windows或其它桌或其它桌面操作系统 PC 机等硬件机等硬件 ROM Monitor 在目标机上电或复位后首先执行的就是 ROM Monitor ,它对目标机进行一些必要的初始化初始化要求的外围设备,如最基本的串口和用于内存刷新的系统计时器芯片;初始化用于下载映像的内存系统;初始化中断控制器和安装中断处理程序。初始化自己的程序空间等待宿主机端的命令 ROM Monitor ROM Monitor能配合调试器完成:程序映像下载对目标机系统内存的读写对寄存器的读写设置和清除不同类型的断点单步执行指令复位系统等调试功能 ROM Monitor 调试过程 (1) 启动目标机, 监控器掌握对目标机的控制,等待和调试器建立连接;(2)启动调试器,并和监控器建立起通信连接;( 3)使用调试器将应用程序下载到目标机上的RAM空间中;(4)使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;(5)如果程序有问题,在调试器的帮助下定位错误;修 改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。 ROM Monitor 优点名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 1) 提高调试程序的效率,缩短开发周期,降低成本 2) 简单、 方便 3) 可扩展性强, 可支持许多高级调试功能 4) 成本低廉, 不需专门的调试硬件支持 5) 几乎所有的交叉调试器都支持这种方式 ROM Monitor 缺点 1) 2) Debug Monitor需要用 Crash and Burn方法开发。当 ROM Monitor 占用 CPU时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。某些调试功能依赖于CPU硬件的支持(如硬件断点功能) ROM Monitor要占用目标机一定数量的资源,如CPU 、 RAM 、ROM和通信设备等资源。调试环境不同于实际目标环境。 3) 4) 5) 仿真开发方式嵌入式应用的开发经常会遭遇缺少目标机环境、缺乏目标机芯片等资源的问题,而开发过程又不可能停止,因此自然就提出了根据不同的应用需要,利用仿真器件、仿真环境进行开发的方法。硬件仿真开发 ROM Emulator ICE OCD 软件仿真开发 ROM Emulator ROM Emulator是一种用于替代目标机上的 ROM芯片的设备,即ROM 仿真器。利用这种设备,目标机可以没有ROM 芯片,但目标机的 CPU可以读取ROM Emulator 设备上 ROM芯片的内容: ROM Emulator 设备上的 ROM芯片的地址可以实时地映射到目标机的 ROM 地址空间,从而仿真( Emulation ) 目标机的 ROM 。 ROM Emulator ROM Emulator 的调试方式是一种不完全的调试方式: ROM Emulator 设备只是为目标机提供 ROM 芯片和在Target 和 Host 间建立一条高速的通信通道,因此它经常和前面两种调试方式结合起来形成一种完备的调试方式。 ROM Emulator 的典型应用就是和 ROM Monitor的调试方式相结合。 ROM Emulator 优点目标机可以没有ROM 芯片、可以使用ROM Emulator 提供的 ROM 空间且不需要用别的 工具来写ROM 。 缺点目标机必须能支持外部ROM 存储空间,而且由于其通常要和ROM Monitor配合使用,因此它拥有ROM Monitor 的所有缺点。 ICE ICE(In-Circuit Emulator )是一种用于替代目标机上CPU的设备, 即在线仿真器。它比一般的CPU有更多的引出线, 能够将内部的信号输出到被控制的目标机。 ICE 上的 Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。 ICE 连接 ICE 和目标机时, 一般是将目标机的CPU 取下, 而将 ICE 的 CPU引出线接到目标机的 CPU 插槽。用 ICE 进行调试时,在Host 端运行的调试器通过 ICE 来控制目标机上运行的程序。宿主开发平台 ICE调试结构调试结构目标平台名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - ICE ICE 功能特点同时支持软断点和硬件断点的设置设置各种复杂的断点和触发器实时跟踪目标程序的运行,并可实现选择性的跟踪支持“ Time Stamp” 允许用户设置“Timer ” 提供“ Shadow RAM ” ,能在不中断被调试程序的运行下查看内存和变量即非干扰调试查询 ICE 适用于: 1) 2) 3) 4) 调试实时的应用系统调试设备驱动程序对硬件进行功能和性能的测试实时性能分析缺点: 1) 2) 价格太昂贵,不利于团队开发所仿 CPU有限 OCD OCD (On Chip Debugging )是 CPU芯片提供的一种调试功能(片上调试),可以认为是一种廉价的ICE 功能: OCD 的价格只有 ICE 的 20% ,但提供了ICE 80%的功能。宿主机调试器目标机逻辑上的连接被调试程序 Windows或其它桌或其它桌面操作系统 PC 机等硬件机等硬件仿真器物理连接并口、并口、串口或网络接口为特定处理器而建造 OCD接 嵌入式接 硬件口针形连接器 OCD调试结构调试结构 OCD 调试方法 1) 2) 3) 将 CPU的模式分为一般模式和调试模式一般模式下, CPU从内存读取指令执行调试模式下,CPU首先从调试端口读取指令,通过调试端口可以控制CPU进入和退出调试模式;Host端的调试器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。 OCD 优点 1) 2) 3) 4) 5) 不占用目标机的资源调试环境和最终的程序运行环境基本一致支持软硬断点、Trace功能精确计量程序的执行时间提供时序分析功能 OCD 缺点 1) 调试的实时性不如ICE 2) 不支持非干扰调试查询 3) CPU 必需具有OCD 功能 OCD 存在各种实现 ? ? BDM (Background Debugging Mode) JTAG(Joint Test Access Group) (主流方式)( )名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - (主流方式) (主流方式) OnCE(On Chip Emulation)各种 OCD 仿真器实例边界扫描技术(JTAG ) JTAG标准测试访问接口与边界扫描结构(Standard Test Access Port and Boundary Scan Architecture) ,已被 IEEE1149.1 标准所采纳,是面向用户的测试接口。该接口一般由 4 个引脚组成:测试数据输入 (TDI) 测试数据输出 (TDO ) 测试时钟 (TCK ) 测试模式选择引脚(TMS )异步测试复位引脚(TRST ,可选)边界扫描技术(JTAG )优点可以通过边界扫描操作测试整个板的电气连接,特别为表面贴元件提供方便各个引脚信号的采样,并可强制引脚输出用以测试外围芯片 可以软件下载、执行、调试和控制,为复杂的实时跟踪调试提供路径可以进行多内核和多处理器的板级和芯片级的调试,通过串接 ,为芯片制造商提供芯片生产、测试的途径不占用系统资源,能够调试没有外部总线的芯片,代价非常小边界扫描技术(JTAG )缺点通过串口依次传递数据,速度比较慢只能进行软件断点级别的调试不能完成实时跟踪和多种事件触发等复杂调试功能几种增强版本 ARM芯片的实时调试方案(E-TRACE ) 背景调试模式BDM 片上仿真 OnCE Nexus标准提出一个在JTAG之上的嵌入式处理器调试的统一标准将调试开发分成四级第一级使用JTAG的简单静态调试;第二级支持编程跟踪和实时多任务的跟踪,并允许用户用 I/O引脚作为多路复用辅助调试口;第三级包括处理器运行时的数据写入跟踪和存储器的读写跟踪;第四级增加了存储替换并触发复杂的硬件断点。 Nexus标准通过 Nexus 标准可以解决以下问题调试内部总线没有引出的处理器,如含有片内存储器的芯片传统在线仿真器无法实现的高速调试深度流水线和有片上Cache 的芯片,能够探测具体哪条指令被取指和最终执行可以稳定地进行多内核处理器的调试 Simulator 交叉开发方式存在如下缺点:硬件支持必须有目标机或评估板易使用性普通编程人员不熟悉廉价性成本高不高可移植性、可扩展性团队开发较难开发周期较长 Simulator 一种软件仿真器, 在宿主机上创建一个虚拟的目标机环境, 再将应用系统下载到这个虚拟目标机上运行调试。软件仿真的对象仿真处理器仿真外设仿真环境软件仿真的级别指令级仿真开发 API 级仿真开发用户 IDE 应用编程接口 API 目标操作系统库 TOSLib 编辑: C、 C+ 编译、链接调试通信 虚拟目标环境仿真调试代理 EDA 应用系统虚拟目标硬件 V-Target 宿主机 OS 应用仿真开发环境示意图应用仿真开发环境示意图设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 编码仿真库仿真编译 N 仿真调试正确 Y 运行库编译链接下载交叉调试固化运行调试固化测试结合了仿真的软件开发过程运行维护 Simulator 优点最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目 标机上的应用系统,并且在调试时可以利用 Host 资源提供更详细的错误诊断信息。 Simulator 缺点 1) 和实际的运行环境差别很大 2) 3) 4) 设备模拟的局限性较大实时特性较差对 Host 的资源要求较高适用范围对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序。嵌入式软件的测试测试工具: 能够用来辅助测试的工具,主要用来支持测试人员的工作,本身不能直接用来进行测试。测试工具一般都是通用工具,测试人员应该根据实际情况对它们进行适当的调整。嵌入式软件测试中经常用到的测试工具有:内存分析工具性能分析工具覆盖分析工具缺陷跟踪工具等嵌入式软件的测试内存分析工具嵌入式系统的内存资源通常是受限的,内存分析工具可以用来处理在进行动态内存分配时产生的缺陷。当动态分配的内存被错误地引用时,产生的错误通常难以再现,出现的失效难以追踪,使用内存分析工具可以很好地检测出这类缺陷。 目前常用的内存分析工具有软件和硬件两种:基于软件的内存分析工具可能会对代码的执行性能带来很大影响, 从而影响系统的实时性; 来很大影响, 从而影响系统的实时性;基于硬件的内存分析工具对系统性能影响小,基于硬件的内存分析工具对系统性能影响小,但价格昂贵,并且只能在特定的环境中使用。昂贵,并且只能在特定的环境中使用。嵌入式软件的测试性能分析工具嵌入式系统的性能通常是一个非常关键的因素,开发人员一般需要对系统的某些关键代码进行优化来改进性能。性能分析工具可以提供有关数据,可以提供有关数据, 帮助确定哪些任务消耗了过多的执行时间,了过多的执行时间,从而可以决定如何优化软件,以获得更好的时间性能。软件,以获得更好的时间性能。引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。以及名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - 程序结构上的缺陷。嵌入式软件的测试覆盖分析工具在进行白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过分析过程一般通过插桩来完成, 插桩可以是在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,或者是两者的结合。开发人员通过对分析结果进行总结,可以确定哪些代码被执行过,哪些代码被遗漏了。目前常用的覆盖分析工具一般都提供有关功能覆盖、分支覆盖、条件覆盖等信息。覆盖分析工具实例测试工具实例:逻辑分析仪工作机理:在不打断被测程序运行流程的基础上,对程序运行中的相关信息进行采集和分析,然后通过真实再现程序运行的逻辑流程和分析程序运行数据,帮助用户优化系统设计和解决出现的问题。与调试工具的对比调试器:调试器:照相机逻辑分析仪:逻辑分析仪:摄像机测试工具实例:逻辑分析仪主要功能:真实再现程序运行流程发现系统死锁及软件造成的死机发现系统内存泄漏指导对任务的合理划分指导关键路径设计与验证指导合理分配任务堆栈 CPU 使用率统计指导合理设计中断服务程序测试工具实例:逻辑分析仪嵌入式应用软件运行的逻辑流程测试工具实例:逻辑分析仪系统堆栈使用率分析嵌入式软件的固化运行当调试完成之后,程序代码需要被完全烧入到目标板的非易失性存储器(如ROM或闪存)中,并且在真实的硬件环境上运行,这个过程叫做固化。调试环境与固化环境的区别:代码定位不同初始化部分不同嵌入式软件的固化运行阶段编译链接调试环境目标文件需要调试信息应用系统目标代码不需要Boot 应用系统目标代码不需要 Boot 模块,模块, 此模块已由目标板上的监控器程序实现。监控器程序实现。程序的所有代码段、程序的所有代码段、 数据段都依次被定位到调试空间的RAM 依次被定位到调试空间的 RAM 中。宿主机上的调试器读入被调试文件,宿主机上的调试器读入被调试文件,并将其下载到目标机上的调试空间中,目标机掉电后所有信息全部丢失。 被调试程序在目标监控器的控制下运行,并与后者共享某些资源,运行,并与后者共享某些资源,如 CPU 资源、 RAM 资源以及通信设备如串口、网口等)资源。(如串口、网口等)资源。固化环境目标文件不需要调试信息应用系统目标代码必须以Boot 应用系统目标代码必须以Boot 模块作为入口模块。模块作为入口模块。程序的各逻辑段按照其不同的属性分别定位到非易失性存储空间( ROM )或 RAM 中。 空间( ROM ) RAM中在宿主机上利用固化工具将可固化的应用程序写入目标机的非易失性存储器中, 存储器中,目标机掉电后信息不丢失。定位名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - 下载运行程序在真实的目标硬件环境上运行嵌入式软件的固化运行 Boot模块:当应用程序在真实的目标环境下运行时将首先执行该程序,它至少由系统加电时执行的代码组成。 Boot Boot 模块的主要功能:初始化CPU环境,使目标 CPU 机硬件到已知的状态初始化芯片的引脚初始化系统外部控制寄存器初始化基本输入输出设备初始化 MMU ,包括片选控制寄存器等执行数据拷贝嵌入式软件开发工具发展趋势向着开放的、集成化的方向发展具有系统设计、可视化建模、仿真和验证功能自动生成代码和文档具有更高的灵活性第二节嵌入式系统开发模式概述处理器及硬件开发平台的选定操作系统选定开发环境选定嵌入式系统开发模式概述最大特点:软硬件综合开发。最大特点:软硬件综合开发。原因:原因: 1) 嵌入式产品是软硬件的结合体软件针对硬件开发、固化, 2) 软件针对硬件开发、固化,不能进行任意修改系统定义时期系统总体设计硬件设计制作 No 软件设计实现软硬件集成功能性能测试符合要求 Yes 嵌 入 式 系 统 开 发 过 程产品系统总体设计系 统 总 体 框 架软 硬 件 划 分处 理 器 选 定操 作 系 统 选 定开 发 环 境 选 定硬件设计制作功能模块图设计硬件概要设计逻辑电路图设计硬件详细设计 PCB 设计与制作硬件制作 PCB 测试硬件测试软件设计实现软件概要设计软件详细设计软件实现软件测试软硬件协同开发通常的嵌入式系统开发嵌入式软件开发嵌入式系统集成、测试、集成、测试、验证嵌入式硬件开发软/ 硬件协同开发名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - 嵌入式软件开发嵌入式系统协同设计、测试、协同设计、测试、验证嵌入式硬件开发处理器及硬件开发平台的选定选择依据: 应用的类型及I/O 接口主频及功耗对不同类型存储器的支持封装产品生命力和厂家实力、技术支持及第三方软件的支持硬件开发平台的选择操作系统选定选择依据:选择嵌入式OS的必要性自建、购买或使用开源软件对嵌入式操作系统的功能、性能要求与硬件平台和开发工具的关系行业标准技术支持版税或服务费操作系统与硬件平台的关系操作系统应支持选定的硬件平台如果不支持,需考虑移植工作不同类型嵌入式微处理器之间的移植:任务上下文切换、时钟、中断等同类型微处理器但不同类型硬件板之间的移植:硬件接口及设备驱动程序操作系统与开发工具的关系工具是否能为基于特定操作系统的应用开发提供最大支持:运行库与OS相结合提供应用工程创建和管理功能,构建基于特定操作系统的应用框架对操作系统的剪裁与配置提供高级调试功能提供配套的应用逻辑分析工具、覆盖测试工具等开发环境及工具选定对硬件平台的支持所使用的编程语言 C/C+ 汇编语言 JAVA 与嵌入式操作系统的关系第三节实时软件分析设计方法 DARTS分析设计方法分析设计方法 DARTS分析设计方法嵌入式实时软件系统的生存周期需求分析与说明系统设计 DARTS 设计方法数据流分析划分任务定义任务接口任务设计模块构筑任务与系统集成嵌入式实时软件系统的生命周期需求分析与详细说明系统设计任务分解 , 任务分解 , 定义任务间接口关系任务设计按模块方式设计每个任务,定义模块间接口按模块方式设计每个任务,模块构筑完成每个模块的详细设计、完成每个模块的详细设计、编码和单元测试任务与系统集成系统测试实 例 说 明机器人控制器系统机器人控制器系统控制设备由内部控制器和外部控制面板组成控制器控制六个转并与数字 I/O 轴,并与数字 I/O 传感器交互作用。传感器交互作用。转轴和 I/O 由程序转轴和 I/O 由程序 I/O 控制该程序由控制面板操作启动执行手动上电运行停止断电结束程序选择控制面板控制执行过程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - 按下“上电”按钮,系统进入了上电状态。按下“上电”按钮,系统进入了上电状态。上电成功后, 系统进入了手动状态。此时, 上电成功后, 系统进入了手动状态。此时, 操 作者可以通过程序选择开关程序选择开关选择程序作者可以通过程序选择开关选择程序按下“运行” 按钮, 则选定的程序开始运行,按下“运行” 按钮, 则选定的程序开始运行,系统转为运行态。系统转为运行态。程序运行中如果按下“停止”程序运行中如果按下“停止”键,程序被挂起。程序被挂起。之后,操作者可以按下“运行”之后,操作者可以按下“运行”键,使程序恢复执行,也可按下“结束”结束程序。复执行, 也可按下 “结束”键,结束程序。按下“结束”键后,系统进入终止态。按下“结束”键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。最终终止执行时,系统返回手动状态。需求分析与说明断电态上电通电态上电成功断电程序选择程序终止终止态手动态启动结束 启动停止 运行态挂起态状态变迁图系统设计系统设计说明该系统如何被分解成多个任务,如何定义任务间的关系任务划分方法 DARTS DARTS 设计方法 DARTS设计方法设计方法数据流分析:每个数据流图都包含:变换圈 , 表示系统完成的功能箭头,表示变换间的数据流动数据存储区,表示数据的存储场所数据字典,定义了数据流和数据存储区所包含的数据项按下按钮程序读面板输入解释程序各语句运行开始结束有效的面板输入处理面板输入 动作命令 处理动作命令动作块 I/O 命令处理 I/O命令命令输入传感器值读传感器传感器输入面板输入面板输入有效 性检查传感器输出向传感器输出输出面板输出显示灯输出到面板运行停止重启动输出动作轴数据动作确认接收确认轴确认轴块轴控制器 轴输入轴输出机器人控制器数据流图 DARTS设计方法设计方法划分任务就是识别出并行性的功能需要考虑的是系统内功能的异步性。分析数据流图中的变换, 确定哪些变换可以并行, 哪些变换本质上是顺序的。一个任务可对应一个变换,也可对应多个变换。 DARTS设计方法设计方法划分任务原则 I/O 依赖性功能的时间关键性计算需求功能内聚时间内聚周期执行 I/O 依赖性 Device I/O Task App.Task 如果变换依赖于I/O ,速度受限 I/O , 可独立成任务在系统中创建与I/O 设备数目相当的 I/O 任务 I/O任务只实现与设备相关的代码 I/O任务的执行只受限于I/O 设备的速度, 而不 是处理器在任务中分离设备相关性名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 功能的时间关键性 event 1 Task 1 event 2 Task 3 Task 2 deadline 1 deadline 2 Task 3 将有时间关键性(deadline )的功能分离出来,组成独立运行的任务赋予这些任务高的优先级,以满足对时间的需要计算需求计算量大 的 功能占用CPU的时间多,把 计 算 功 能 捆绑成任务, 以消耗 CPU的剩余时间赋予计算任务较低优先级, 能被高优先级的任务抢占,保持高优先级的任务是轻量级的多个计算任务可安排成同优先级,按时间片循环轮转功能内聚 event 1 F1(x) + F3(x) event 2 F2(x) 将紧密相关的功能变换组成一个任务,减少通信的开销把每个变换都作为同一任务中一个个独立的模块,不仅保证了模块级的功能内聚,也保证了任务级的功能内聚时间内聚 event Clock Tick F1(x) + F2(y)+F3(z) F4(x)+F5(y) 将在同一时间内完成的各功能(即使这些功能是不相关的)形成一个任务功能组的各功能是由相同的外部事件驱动的(如时钟等) ,这样每次任务接收到一个事件,它们都可以同时执行由于减少了任务调度及切换的次数,减少了系统的开销周期执行 10HZ 15HZ F2 F1 F1 15HZ F2 10HZ 一个需要周期执行的变换可以作为一个独立的任务,按一定的时间间隔被激活将在相同周期内执行的各功能组成一个任务频率高的任务赋予高优先级 I/O 功能内聚时间内聚时间内聚 DARTS设计方法设计方法定义任务接口任 务 间 通 信 模 块TCM ( Task Communication Module )任 务 同 步 模 块TSM ( Task Synchronization Module)任务间通信模块消息通信模块信息隐藏模块写数据任务 A 任务读数据数据存储区读数据任务 B 任务信息隐藏模块任务同步模块源 S:发事件信号:发事件信号(E) 目标 D:等待事件目标:等待事件 (E) S D 任务设计详细说明系统中各任务的设计考虑和执行流程,以利于程序员编制程序。行流程,以利于程序员编制程序。任务体系结构:任务体系结构: 详细定义任务包含的子模块和模块间的关系任务执行流程:任务执行流程:尽可能详细地描述任务的处理过程任务内数据结构任务内模块间接口名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 任务设计任务设计模块构筑系统和任务设计完成后,进行每个模块的详细设计,直到每个具体的函数在单元测试前不必编完模块全部程序,可以分阶段编码和测试模块的详细设计应一气呵成,避免系统以非结构化方式形成函数设计给出对该函数的简要描述,函数描述给出对该函数的简要描述,说明设计目的、计目的、 意义以及特点说明该函数应具有的功能,可采用 IPO IPO 图 功能说明该函数应具有的功能,可采用IPO 图 输入一处理一输出图)(输入一处理一输出图)形式性能说明对该函数的性能要求,包括精度、说明对该函数的性能要求,包括精度、灵活性和时间特性等 定义每个输入项的特性,包括名称、输入定义每个输入项的特性,包括名称、标数据类型和格式、取值范围、输入方式、识、数据类型和格式、取值范围、输入方式、数据来源、数据来源、保密方式等定义每个输入项的特性,输出定义每个输入项的特性,特征同输入函数设计详细说明本函数所选用的算法,算法详细说明本函数所选用的算法,具体的计算公式和计算步骤流程用流程图辅以必要的说明来表示本函数的逻辑流程说明本函数与其他函数的调用关系,接口说明本函数与其他函数的调用关系,包括说明参数赋值和调用方式以及相关数据结构(如数据库、文件)。 值和调用方式以及相关数据结构(如数据库、文件)。存储分配说明本函数的存储分配限制条件说明本函数运行所受限制说明对本函数的测试计划,包括技术要求、测试计划说明对本函数的测试计划,包括技术要求、输入数据、预期结果、数据、预期结果、人员安排等任务与系统集成模块逐个连接、测试以构成任务任务被逐个连接和测试形成最终系统可分两步集成在宿主机上模拟集成(软集成)在目标机上集成谢谢!谢谢!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

    注意事项

    本文(2022年嵌入式系统软件开发和设计流程复习课程 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开