1 / 106

嵌入式系统教案

嵌入式系统教案. 嵌入式软件系统设计. 2014/11/4. 第六章 嵌入式软件系统设计. 提纲. 1. 嵌入式软件开发过程. ARM 软件开发流程和开发工具. 2. 3. ARM 软件设计与代码分析. 4. 5. 6. 7. 嵌入式软件开发过程. 嵌入式系统软件开发流程. 软件需求分析:确定设计任务和目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。. 概要设计:描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题的论证等。.

Download Presentation

嵌入式系统教案

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系统教案 嵌入式软件系统设计 2014/11/4

  2. 第六章 嵌入式软件系统设计 提纲 1 嵌入式软件开发过程 ARM软件开发流程和开发工具 2 3 ARM软件设计与代码分析 4 5 6 7

  3. 嵌入式软件开发过程 嵌入式系统软件开发流程 • 软件需求分析:确定设计任务和目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。 • 概要设计:描述系统如何实现所述的需求,包括软件模块的划分、系统的软件开发工具选择以及关键问题的论证等。 • 详细设计:详细描述各个模块的实现方法与过程,模块间接口等问题,以作为编码人员的编码准则。 • 编码

  4. 嵌入式软件开发过程 嵌入式系统的开发流程 • 单元调试:编码完成后,对各个模块进行单元调试,以保证模块正常工作。 • 集成调试

  5. ARM软件开发流程和开发工具 常用调试方法 • 软件仿真 • 驻留监控程序 • 硬件要求高,一般在硬件稳定之后进行 • 需要占用目标板上的一部分资源 • 不能对程序的全速运行进行完全仿真 • JTAG仿真器 • 完全非插入式调试,不使用片上资源,无需目标存储器,不占用目标系统的任何端口 • 仿真效果更加接近于目标硬件 • 在线仿真器

  6. ARM软件开发流程和开发工具 处理器的选择 • 处理性能 • 技术指标 • 功耗 • 操作系统和软件支持工具的选择 • 是否内置调试工具

  7. ARM软件开发流程和开发工具 操作系统和软件支持工具的选择 • 如果用户希望使用Windows CE、Linux等操作系统,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片。 • ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。而ARM7TDMI则没有MMU,不支持Windows CE和Linux,但目前有uCLinux以及uC/OS-II等不需要MMU支持的操作系统可运行于ARM7TDMI硬件平台之上。

  8. ARM软件开发流程和开发工具 操作系统和软件支持工具的选择 • 如果决定采用Linux、Windows CE、vxWorks等操作系统时,在选择处理器时应该尽量选择该操作系统已经支持的处理器,这样可以大大加快开发进度,降低难度。 • 选择不同的操作系统,其软件开发过程和调试手段各不相同,你的选择方案是否能够提供各个开发阶段(包括bootloader开发、操作系统移植、驱动开发和应用开发)所需的软件支持工具也是一个必须考虑的因素。

  9. ARM软件开发流程和开发工具 硬件驱动程序的调试 • 如果硬件平台是自行设计的,必须首先对硬件进行调试,硬件调试成功是进行操作系统移植和应用程序开发的一个基本前提。 • 这个过程通常是通过编写一些简单的测试程序直接驱动硬件以验证硬件是否正确,这些程序可以基于操作系统进行编程,也可以不使用操作系统,而且后一种方法来得更加简单,调试也更方便和快捷。

  10. ARM软件开发流程和开发工具 操作系统的选择和移植 • μC/OS-II • Linux/uClinux • Windows CE • vxWorks

  11. ARM软件开发流程和开发工具 μC/OS-II • 免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。 • 其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。它可以基于ROM运行(ROMable)、可裁减,具有高度移植性。 • μC/OS-II实时嵌入式内核在工业控制、数据采集等领域应用广泛。但μC/OS-II内核不支持文件系统、网络协议等功能,而且没有提供统一的硬件驱动程序接口和开发工具链,在复杂应用中需要考虑内核以外功能的实现难易程度。

  12. ARM软件开发流程和开发工具 μC/OS-II • 在μC/OS-II开发中,内核、驱动程序和应用程序都是集中编译,μC/OS-II编译以后的二进制代码中既包含内核代码,也包含驱动程序和应用程序的代码。 • μC/OS-II没有提供统一的开发工具链,μC/OS-II程序的编译应该采用支持所选处理器的编译器。对于ARM处理器,可以在Windows环境中使用ADS 1.2、ADT IDE中编译μC/OS-II,也可以在Linux环境中使用GNU GCC编译μC/OS-II。

  13. ARM软件开发流程和开发工具 Linux/uClinux • Linux/uClinux是对于有MMU和没有MMU的处理器的Linux解决方案。 • Linux/uClinux提供强大的文件系统、网络功能、GUI等软件模组支持,而且这些功能都是可以裁减的,同时它还提供了标准的驱动程序接口和软件开发接口,便于用户编程和程序维护。 • Linux/uClinux自身具备一整套工具链(GNU GCC),包括编译和调试工具,用户可以自行建立嵌入式系统的开发环境和交叉运行环境。

  14. ARM软件开发流程和开发工具 Linux/uClinux • 对于ARM处理器,Linux/uClinux内核、驱动程序以及应用程序的编译都在Linux环境中使用GNU GCC完成。对于内核和驱动程序的调试通常借助于运行于Linux/uClinux之前的bootloader来完成,只有在很少的情况下需要借助在线仿真器完成。对于应用程序的调试则可以完全抛弃在线仿真器,使用GDB完成。

  15. ARM软件开发流程和开发工具 Windows CE • Windows CE是Windows界面在嵌入式处理器中的实现,它提供了友好的人机交互界面和强大的二次开发功能。Windows CE包括四大基本模块,它们提供了操作系统的关键特性,分别是:内核(Kernel)模块、对象存储(Object Store)模块、GWES(用户、应用程序和操作系统之间的图形用户界面)模块和通信(Communication)模块。

  16. ARM软件开发流程和开发工具 Windows CE • Windows CE拥有完善的软件支持开发工具,Windows CE的核心移植和驱动开发使用专门的操作系统定制工具:Windows CE Platform Builder(简称PB)。而应用程序的开发则有嵌入式开发工具包Embedded Visual Tools,包括Embedded Visual C++(简称EVC)和Embedded Visual Basic(简称EVB)等。同时Embedded Visual Tools下还可以进行部分驱动程序的开发。同时在Windows CE中还提供了用于Windows CE开发的bootloader:EBOOT。

  17. ARM软件开发流程和开发工具 vxWorks • VxWorks是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时多任务调度、中断管理,实时的系统资源以及实时的任务间通信。 • 在各种CPU平台上提供了统一的编程接口和一致的运行特性,尽可能的屏蔽了不同CPU之间的底层差异。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWorks操作系统的应用程序可以在不同CPU平台上轻松移植。

  18. ARM软件开发流程和开发工具 vxWorks • VxWorks包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。 • TornadoII是为开发VxWorks应用系统提供的集成开发环境,TornadoII中包含的工程管理软件,可以将用户自己的代码与VxWorks的核心有效的组合起来,可以按用户的需要裁剪配置VxWorks内核。

  19. ARM软件开发流程和开发工具 ARM主流开发工具 • Windows操作系统 • ARM ADS/SDT + 调试器 • GNU + Cygwin + 调试器 • ARM SDT + 简易电缆 • Linux操作系统 • GNU + GDB

  20. ARM软件开发流程和开发工具 ARM嵌入式开发模式( ARM ADS/SDT + 调试器)

  21. ARM软件开发流程和开发工具 ADS与Multi-ICE • ARM ADS全称为ARM Developer Suite,是ARM公司推出的用于ARM程序设计、开发和调试的集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。 • ADS由命令行开发工具,ARM运行时库,图形化集成开发环境(Code Warrior和AXD),实用程序和支持软件组成。

  22. ARM软件开发流程和开发工具 ADS命令行开发工具 • ARM C(C++)编译器 • ARM汇编器(armasm) • ARM链接器(armlink) • 符号调试器(armsd)

  23. ARM软件开发流程和开发工具 ARM运行时库 • ANSI C函数库:(armlib) • C++函数库:

  24. ARM软件开发流程和开发工具 图形化集成开发环境(Code Warrior和AXD) • CodeWarrior for ARM • ADS调试器 • 实用程序 • fromELF • armar • Flash downloader • 支持的软件 • ARMulator

  25. ARM软件开发工具-ADT IDE简介 ADT for ARM集成开发系统

  26. ARM软件开发工具-ADT IDE简介 ADT 1000 Emulator for ARM

  27. ARM软件开发工具-ADT IDE简介 ADT 1000 Emulator for ARM • ADT Emulator for ARM是连接主机核目标机之间的硬件设备,它实现ADT IDE for ARM与目标机之间的连接。 • 它具有如下特征: • 支持ARM核CPU • 非插入式调试,无需目标存储器,不占用目标系统的任何端口 • 2.5V/3.3V/5V兼容电平接口 • 支持标准的14/20针JTAG接口 • 运行状态指示 • 与主机之间通过并口连接 • 下载速度达到25Kbytes/S

  28. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM

  29. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 可视化编程环境 • 支持ARM7、ARM9、SecurCore等。 • 运行于Windows98 、NT、2000、XP等平台。 • 中文、英文版本支持 • 可视化的源码编辑和工程管理功能 • 界面友好,使用方便:类似MS Visual Studio的用户界面,支持打印功能,支持文件内查找功能和Find in Files功能

  30. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 可视化编程环境 • 工程管理器:ADT IDE提供图形化的工程管理工具,实现文件级、文件目录级、工程级的多级编译连接选项管理以及工程级的调试参数管理 • 源码编辑器:支持标准的文本编辑功能,支持C语言、汇编语言语法高亮显示 • 辅助编辑工具:提供一系列辅助编辑工具,方便开发人员。包括:多剪贴板工具、代码模板工具、头文件和源文件切换工具、注释工具、符号配对书写工具等多种辅助编辑工具。

  31. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 交叉编译功能 • 支持开发语言:ANSI C;Embedded C++;汇编语言 • 编译工具:使用著名优秀自由软件GNU的GCC交叉编译工具,并经过优化和严格测试,支持C语言、汇编语言等 • 编译参数设置:完全图形界面方式的编译参数设置,提供可视化的设置功能。支持工程级、文件目录级、文件级编译参数设置

  32. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 调试功能 • 同时提供了图形和命令行两种调试方式 • 程序的单步执行 • 程序下载 • 存储区下载和上载功能。 • 工程级调试参数管理 • 支持源程序、反汇编程序和混合窗口显示,支持ARM/THUMB方式显示 • 具有与MS Visual Studio类似的调试菜单功能:Go,Stop,Reset,Restart,Step into,Step over,Step out,Run to Cursor等 • 丰富的示例程序

  33. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 调试功能 • 断点功能:支持软件断点和硬件断点,实现断点设置、断点屏蔽、断点取消、断点列表等功能 • 变量监视功能:随程序运行同步更新变量,即时修改变量值,可设置自动/手动刷新方式、十进制/十六进制显示 • ARM各种模式的寄存器即时查看与修改,当前模式指示,寄存器值修改时红色突显 • 存储器查看与修改,可设置自动/手动刷新方式、字节/双字节/四字节显示、大/小端方式显示,存储器值修改时红色突显

  34. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM主要特征 - 调试功能 • 函数堆栈显示,可设置自动/手动刷新方式、十进制/十六进制显示、参数值显示,参数类型显示 • 板上寄存器(On Board Register)的查看和修改,可以查看支持CPU的所有板上寄存器的具体意义、当前值、各个位的意义,可设置自动/手动刷新方式、二进制/十进制/十六进制显示、大/小端方式显示,支持十进制/十六进制方式修改寄存器值,寄存器值修改时红色突显。 • flash在线编程器,支持对多种flash芯片的空白检查、擦除、编程、校验等操作,支持单一操作和自动操作两种操作方式,支持8/16/32位flash访问宽度,支持多片flash同时编程,编程速度达15Kbytes/s。提供统一的flash编程接口,可以方便地添加flash编程方案。

  35. ARM软件开发工具-ADT IDE简介 ADT IDE for ARM ADT IDE (Arm7Lpt、Arm9Lpt、SoftSim、Arm7Simple) 用户手册、编程指南 丰富例程

  36. ARM7版本 简易仿真版本 软件仿真版本 ARM9版本 ARM软件开发工具-ADT IDE简介 多版本支持

  37. 工程 当前活动工程 ARM软件开发工具-ADT IDE简介 多工程管理

  38. 语法高亮编辑器 编辑菜单 辅助编辑工具条 书签 ARM软件开发工具-ADT IDE简介 可视化编辑器

  39. 编译菜单 编译工具条 编译结果输出 错误定位 ARM软件开发工具-ADT IDE简介 GCC交叉编译

  40. 多参数配置 多配置管理 多工程设管理 ARM软件开发工具-ADT IDE简介 编译器设置

  41. 多参数配置 多配置管理 多工程设管理 ARM软件开发工具-ADT IDE简介 汇编器设置

  42. 多参数配置 多配置管理 多工程设管理 ARM软件开发工具-ADT IDE简介 连接器设置

  43. 调试菜单 调试工具条 命令行调试窗口 ARM软件开发工具-ADT IDE简介 调试功能

  44. 源码模式 混合模式 汇编模式 ARM软件开发工具-ADT IDE简介 多种调试模式

  45. 断点列表 断点 ARM软件开发工具-ADT IDE简介 断点

  46. 半字模式 修改凸显标记 字模式 字节模式 ARM软件开发工具-ADT IDE简介 存储器窗口

  47. 存储区上载 存储区下载 ARM软件开发工具-ADT IDE简介 存储区上载下载功能

  48. 多模式寄存器显示 修改凸显标记 ARM软件开发工具-ADT IDE简介 寄存器观察窗口

  49. 函数调用栈 ARM软件开发工具-ADT IDE简介 函数调用栈窗口

  50. 局部变量 全局变量 多个观察窗口 ARM软件开发工具-ADT IDE简介 变量观察窗口

More Related