一、嵌入式软件
1.嵌入式软件分类
- 系统软件:控制和管理嵌入式系统资源,为嵌入式应用提供支持。
eg:设备驱动程序、嵌入式操作系统、嵌入式中间件。 - 应用软件:嵌入式系统的上层软件,定义嵌入式设备的主要功能和用途。
eg:飞行控制软件、手机软件。 - 支撑软件:辅助软件开发的工具软件。
eg:系统分析设计工具、交叉编译器。
2.嵌入式软件体系结构
- 无操作系统
主要有两种实现方式:循环轮转和前后台系统(中断)。
循环轮转没有硬件上的时间控制机制,无法实现定时功能。
前后台系统的中断服务程序可以看作 是前台程序,对实时性要求严格的操作通常由中断实现。后台程序通常是一个无限的循环。 - 有操作系统
嵌入式软件的体系结构如图:
- 设备驱动层
设备驱动层页称为板级支持包(BSP)。主要包括:引导加载程序BootLoader和设备驱动程序。
为了便于移植和操作,通常会选择将硬件程序进行分层处理(上层接口、硬件接口)。
引导加载程序的工作分为:
片级初始化:微处理器的初始化(上电时的缺省状态→系统要求的工作状态),包括微处理器的核心寄存器和控制寄存器,工作模式和局部总线模式;
板级初始化:通过对寄存器进行修改完成硬件设备的初始化,包括Lcd显示设备,初始化定时器,设置中断控制寄存器;
加载内核:将操作系统和应用程序的映像从Flash等硬件存储设备中拷贝到系统的内存中并运行。
设备驱动程序的工作:
硬件启动、硬件关闭、硬件停用(暂停)、硬件启用、读操作、写操作。
2.嵌入式中间件
把原本属于应用软件层的一些通用的功能模块抽取出来,形成一层独立的软件,可以有效地提高软件地可重用性,降低软件复杂性。
二、嵌入式操作系统
1.相关概念
- 实现的功能:任务管理、存储管理、输入/输出设备管理、文件系统管理。
- 特征:
并发性:多道程序在一个很小的时间段内交替执行。
共享性:资源共享,程序并发执行必须依赖资源共享机制的支持。
虚拟性:可以实现虚拟处理机(并发运行程序)、虚拟存储器(MMU)、虚拟外围设备(Spooling外围设备联机操作)。 - 嵌入式操作系统分类(按嵌入式软件结构不同进行分类):
单体结构(Linux):