嵌入式操作系统中间层硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件(应用程序)与底层硬件分离开来,使系统的底层驱动程序与上层无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发
该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能
BSP具有以下两个特点
硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法
操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块
设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动
嵌入式系统硬件初始化系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化
片级初始化完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等
片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态
这是一个纯硬件的初始化过程
板级初始化完成嵌入式微处理器以外的其他硬件设备的初始化
另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境
这是一个同时包含软硬件两部分在内的初始化过程
系统初始化该初始化过程以软件初始化为主,主要进行操作系统的初始化
BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等
最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口
硬件相关的设备驱动程序BSP的另一个主要功能是硬件相关的设备驱动
硬件相关的设备驱动程序的初始化通常是一个从高到低的过程
尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作
与硬件相关的驱动程序是BSP设计与开发中另一个非常关键的环节
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。