嵌入式软件开发工具

教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社web


嵌入式软件系统

嵌入式软件开发工具

嵌入式软件开发工具的分类

根据不一样的阶段

嵌入式软件开发工具能够分为编辑器

  • 需求分析工具(Requirement Analysis Tools)svg

  • 软件设计工具(Software Design Tools)工具

  • 编码、调试工具(Coding Tools)性能

  • 测试工具(Testing Tools)开发工具

  • 配置管理工具、维护工具等测试

从嵌入式软件开发分类

嵌入式软件开发工具能够分为ui

  • 与嵌入式OS相关的开发工具,用于开发:
    • 基于嵌入式OS的应用
    • 部分驱动程序等
  • 与嵌入式OS无关的开发工具,用于开发:
    • 基本的驱动程序
    • 辅助硬件调试程序
    • 系统软件等

嵌入式软件的交叉开发环境

  • 交叉开发环境是指用于嵌入式软件开发的全部工具软件的集合,通常包括文本编辑器、交叉编译器交叉调试器仿真器、下载器编码

  • 交叉开发环境
    交叉开发环境设计

  • 交叉开发环境由宿主机目标机组成,宿主机与目标机之间在物理链接的基础上创建起逻辑链接

  • 宿主机(Host) 是用于开发嵌入式系统的计算机

  • 目标机(Target):即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定制的

  • 在开发过程当中,目标机端需接收和执行宿主机发出的各类命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工做

  • 物理链接是指宿主机与目标机经过物理线路链接在一块儿,链接方式主要有三种:串口、以太口、OCD(On Chip Debug)方式,如JTAG、BDM

  • 逻辑链接指宿主机与目标机间按某种通讯协议创建起来的通讯链接,目前逐步造成了一些通讯协议的标准

嵌入式软件实现阶段的开发过程

设计完成后,嵌入式软件的开发进入实现阶段,可分为三个步骤:生成、调试和固化运行

  • 软件的生成主要是在宿主机上进行,利用各类工具完成对应用程序的编辑、交叉编译和连接工做,生成可供调试或固化的目标程序。

  • 调试是经过交叉调试器完成软件的调试工做。调试完成后还需进行必要的测试工做。

  • 固化运行是先用必定的工具将应用程序固化到目标机上,而后启动目标机,在没有任何工具干预的状况下应用程序能自动地启动运行

嵌入式软件生成阶段

  • 源代码程序的编写

  • 编译成各个目标模块

  • 连接成可供下载调试或固化的目标程序

  • 交叉编译
    把在宿主机上编写的高级语言程序编译成能够运行在目标机上的代码,即在宿主机上可以编译生成另外一种CPU(嵌入式微处理器)上的二进制程序

嵌入式软件的调试

对比

  • 交叉调试方式:Rom Monitor、On Chip Debugging

  • ROM Monitor

    • 是被固化且运行在目标机上的一段程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一块儿完成对应用程序的调试
    • 在目标机上电或复位后首先执行的就是ROM Monitor,它对目标机进行一些必要的初始化
    • 几乎全部的交叉调试器都支持这种方式
    • Debug Monitor须要用Crash and Burn方法开发
    • ROM Monitor要占用目标机必定数量的资源,如CPU、RAM、ROM和通讯设备等资源
  • 仿真(Simulator)开发方式(非交叉)

    • 硬件仿真开发:ROM Emulator、ICE、OCD
    • 软件仿真开发

嵌入式软件的测试

  • 嵌入式软件测试中常常用到的测试工具备:内存分析工具、性能分析工、覆盖分析工具、缺陷跟踪工具等

  • 测试工具实例:逻辑分析仪

嵌入式软件的固化运行

当调试完成以后,程序代码须要被彻底烧入到目标板的非易失性存储器(如ROM或闪存)中,而且在真实的硬件环境上运行,这个过程叫作固化

对比

嵌入式软件开发工具发展趋势

嵌入式软件技术发展
技术

  • 向着开放的、集成化的方向发展

  • 具备系统设计、可视化建模、仿真和验证功能

  • 自动生成代码和文档

  • 具备更高的灵活性