嵌入式软件系统设计
9
ARM软件开发流程和开发工具
操作系统的选择和移植
➢ μC/OS-II ➢ Linux/uClinux ➢ Windows CE ➢ vxWorks
10
ARM软件开发流程和开发工具
μC/OS-II
➢ 免费公开源代码、结构小巧、具有可剥夺实时内核的
实时操作系统。
➢ 其内核提供任务调度与管理、时间管理、任务间同步 与通信、内存管理和中断服务等功能。它可以基于 ROM运行(ROMable)、可裁减,具有高度移植性。
JTAG仿真器
➢ 完全非插入式调试,不使用片上资源,无需目标存储器,不占用目标系统的 任何端口
➢ 仿真效果更加接近于目标硬件
在线仿真器
5
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硬件平台之上。
➢ Linux/uClinux自身具备一整套工具链(GNU GCC), 包括编译和调试工具,用户可以自行建立嵌入式系统 的开发环境和交叉运行环13境。
ARM软件开发流程和开发工具
Linux/uClinux
➢ 对于ARM处理器,Linux/uClinux内核、驱动程序以及 应用程序的编译都在Linux环境中使用GNU GCC完成。 对于内核和驱动程序的调试通常借助于运行于 Linux/uClinux之前的bootloader来完成,只有在很少 的情况下需要借助在线仿真器完成。对于应用程序的 调试则可以完全抛弃在线仿真器,使用GDB完成。
编码
3
软件需求分析:
概要设计 模块划分 详细设计 BSP、应用程序
编码
单元调试 集成 调试
测试
产品
嵌入式软件开发过程
嵌入式系统的开发流程
单元调试:编码完成后,对各个模块进行单元调试, 以保证模块正常工作。 集成调试
4
ARM软件开发流程和开发工具
常用调试方法
软件仿真
驻留监控程序
➢ 硬件要求高,一般在硬件稳定之后进行 ➢ 需要占用目标板上的一部分资源 ➢ 不能对程序的全速运行进行完全仿真
14
ARM软件开发流程和开发工具
Windows CE
➢ Windows CE是Windows界面在嵌入式处理器中的实现, 它提供了友好的人机交互界面和强大的二次开发功能。 Windows CE包括四大基本模块,它们提供了操作系统 的关键特性,分别是:内核(Kernel)模块、对象存储 (Object Store)模块、GWES(用户、应用程序和操作 系统之间的图形用户界面)模块和通信 (Communication)模块。
➢ μC/OS-II实时嵌入式内核在工业控制、数据采集等领域
应用广泛。但μC/OS-II内核不支持文件系统、网络协议
等功能,而且没有提供统一的硬件驱动程序接口和开
发工具链,在复杂应用中需要考虑内核以外功能的实
现难易程度。
11
ARM软件开发流程和开发工具
μC/OS-II
➢ 在μC/OS-II开发中,内核、驱动程序和应用程序都是集 中编译,μC/OS-II编译以后的二进制代码中既包含内核 代码,也包含驱动程序和应用程序的代码。
嵌入式系统教案
嵌入式软件系统设计
2020/4/17
提纲
第六章 嵌入式软件系统设计
1
嵌入式软件开发过程
2 ARM软件开发流程和开发工具
3 ARM软件设计与代码分析
4
5 6 7
2
嵌入式软件开发过程
嵌入式系统软件开发流程
软件需求分析:确定设计任务和目标, 并提炼出设计规格说明书,作为正式设计指 导和验收的标准。 概要设计:描述系统如何实现所述的需 求,包括软件模块的划分、系统的软件开发 工具选择以及关键问题的论证等。 详细设计:详细描述各个模块的实现方 法与过程,模块间接口等问题,以作为编码 人员的编码准则。
(包括bootloader开发、操作系统移植、驱动开发和应
用开发)所需的软件支持工具也是一个必须考虑的因
素。
8
ARM软件开发流程和开发工具
硬件驱动程序的调试
➢ 如果硬件平台是自行设计的,必须首先对硬件进行调 试,硬件调试成功是进行操作系统移植和应用程序开 发的一个基本前提。
➢ 这个过程通常是通过编写一些简单的测试程序直接驱 动硬件以验证硬件是否正确,这些程序可以基于操作 系统进行编程,也可以不使用操作系统,而且后一种 方法来得更加简单,调试也更方便和快捷。
7
ARM软件开发流程和开发工具
操作系统和软件支持工具的选择
➢ 如果决定采用Linux、Windows CE、vxWorks等操作系 统时,在选择处理器时应该尽量选择该操作系统已经 支持的处理器,这样可以大大加快开发进度,降低难 度。
➢ 选择不同的操作系统,其软件开发过程和调试手段各
不相同,你的选择方案是否能够提供各个开发阶段
Linux/uClinux
➢ Linux/uClinux 是 对 于 有 MMU 和 没 有 MMU 的 处 理 器 的 Linux解决方案。
➢ Linux/uClinux提供强大的文件系统、网络功能、GUI 等软件模组支持,而且这些功能都是可以裁减的,同 时它还提供了标准的驱动程序接口和软件开发接口, 便于用户编程和程序维护。
➢ μC/OS-II没有提供统一的开发工具链,μC/OS-II程序的 编译应该采用支持所选处理器的编译器。对于ARM处 理器,可以在Windows环境中使用ADS 1.2、ADT IDE 中编译μC/OS-II,也可以在Linux环境中使用GNU GCC 编译μC/OS-II。
12
ARM软件开发流程和开发工具