1、嵌入式软件基础
(1)嵌入式软件的特点:
A、规模较小。
B、开发难度大。
C、实时性和可靠性要求高。
D、要求固化存储。
(2)嵌入式软件分类:
A、系统软件:控制和管理嵌入式系统资源,如嵌入式操作系统、驱动程序、中间件等。
B、应用软件:定义嵌入式设备的主要功能和用途,负载与用户进行交互。
C、支撑软件:辅助软件开发的工具软件。
(3)无操作系统的嵌入式软件的两种实现方式:
A、循环轮转
优点:简单、直观、开销小、可预测。
缺点:过于简单,所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。
B、前后台系统(在循环轮转的基础上增加了中断处理功能)
前台(事件处理级):中断服务程序,负载处理异步事件。
后台(任务级):一个无限循环,负载资源分配、任务管理和系统调度。
(4)有操作系统的三大优点:
A、提高系统的可靠性。
B、提高了系统的开发效率,降低了开发成本,缩短了开发周期。
C、有利于系统的扩展与移植。
(5)设备驱动层(也叫板级支持包BSP:包含了嵌入式系统中所有与硬件相关的代码)
大多数的嵌入式硬件设备都需要某种类型软件的初始化和管理。这部分工作由设备驱
动层来完成的,它负责直接与硬件大交道,对硬件进行管理和控制,为上层软件提供所需的
驱动支持,类似PC 系统中的BIOS 和驱动程序。
(6)板级支持包BSP 的基本思想
把嵌入式操作系统与具体的硬件平台隔离开来。在BSP 当中,把所有与硬件相关的代
码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台
上。它使用一组定义好的编程接口来与BSP 进行交互,并通过BSP 来访问真正的硬件。
(7)一般来说。BSP 主要包括两个方面的内容:
A、引导加载程序BootLoader。
B、设备驱动程序。
(8)关于引导加载程序BoorLoader
引导加载程序是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之
前运行的一段小程序,它的实现高度依赖于具体的硬件平台,主要的基本功能如下:
A、片级初始化:纯硬件初始化过程,把微处理器从上电的默认状态设置成系
统要求的工作状态。
B、板级初始化:同时有软件和硬件在内的初始化过程,设置各种硬件的寄
存器和设置某些软件的数据结构和参数。
C、加载内核:将操作系统和应用程序的映象从Flash 存储器复制到系统内存
当中,然后跳转到系统内核的第一条指令处继续执行。
补充:PC 系统的引导加载过程。
PC 系统的引导加载程序由两部分代码组成――BIOS 和MBR 中的引导程序。BIOS 在完成硬件检测和资源
配置后,将硬盘主引导记录MBR 中的引导程序读到系统的内存当中,然后将控制权交给它,由它负责把操
作系统的内核映象从硬盘读入到内存,然后跳转到内核入口去运行,即启动操作系统。
(9)设备驱动程序
在一个嵌入式系统中,操作系统可能有也可能无,但是设备驱动程序是必不可少的。
设备驱动程序,就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好
的访问接口。大多数设备驱动程序都具备下面的基本功能:启动、关闭、停用、启用、读
操作、写操作。这些功能一般用函数的形式来实现,这些函数之间的组织结构主要有两种:
分层结构和混合结构。
(10)关于分层结构
A、硬件接口:直接操作和控制硬件。
B、调用接口:不直接跟硬件大交道,为上层软件提供服务和函数接口。
C、优点:把所有与硬件相关的细节都封装在硬件接口中,在硬件需要升级,需要更新
设备驱动程序的时候,只需要改动硬件接口中的函数即可,而上层调用接口中的函数不用做
任何修改。
D、混合结构:在设备驱动程序当中,没有明确的层次关系,上层接口和硬件接口混在
一起,相互调用。
(11)嵌入式中间件
它是在操作系统内核、设备驱动程序和应用软件之外的所有系统软件,其基本思路是:
把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行
在它上面的那些应用软件提供一个灵活、安全。移植性好、相互通信、协同工作的平台。
【编辑推荐】