板级支持包(BSP) 是商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。BSP是介于硬件和操作系统中驱动层程序之间的一层,有时也可认为属于操作系统一部分。BSP实现了对操作系统的支持,为上层的驱动程序提供访问硬件设备的函数包。
BSP隔离了所支持的嵌入式操作系统与硬件平台之间的相关性,使操作系统通用于BSP所支持的硬件平台,实现了嵌入式操作系统的可移植性、跨平台性、通用性和复用性。
不同的操作系统要求不同定义形式的BSP
- 例如,对同一个CPU来说,要实现同样的功能,VxWorks的BSP和Linux的BSP的写法和接口定义完全不同。BSP一定要按照具体操作系统BSP的定义形式来写(或在某个成型的BSP模板上修改),保障与上层操作系统的正确接口,良好地支持上层操作系统。
BSP直接操作硬件,因此不同的板卡、不同的硬件配置将不同程度地影响BSP。
BSP主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体包括:
- 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
- 为操作系统提供设备驱动程序和系统中断服务程序
- 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
- 初始化操作系统,为操作系统的正常运行做好准备
五、嵌入式操作系统
为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、任务调度、中断处理等功能的软件模块,这就构成了嵌入式操作系统。
嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括系统内核、硬件相关的底层驱动程序、设备驱动接口、通信协议、文件系统、图形用户界面等。
嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理复杂的系统资源,能够对硬件进行抽象,能够提供库函数,驱动程序、开发工具等。
但与通用操作系统相比较,嵌入式操作系统在系统实时性、硬件依赖性、软件固化性以及应用专业性等方面具有着鲜明的特点。
嵌入式操作系统根据应用场合可分为两大类:
- 一类是面向消费电子产品的非实时操作系统,这类设备包括个人数字助理(PDA)、移动电话、机顶盒(STB)等;
- 另一类则是面向控制、通信、医疗等领域的实时操作系统,如WindRiver公司的VxWorks、QNX系统软件公司的QNX等。
实时系统是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。
六、应用程序
应用程序(APP) 是针对特定应用领域,基于某一固定的硬件和操作系统平台,用来达到用户预期目标的计算机上层软件。
由于用户任务可能有时间和精度上的要求,因此,有些嵌入式应用程序需要特定嵌入式操作系统的支持。
嵌入式应用程序和普通应用程序有一定的区别,不仅要求它在准确性、安全性和稳定性等方面满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。
七、嵌入式处理器
目前,世界上具有嵌入式功能特点的处理器已经超过1000种,流行的体系结构包括MCU、MPU等类型的30多个系列。从单片机、DSP到FPGA,品种越来越多,速度越来越快,性能越来越强,价格也越来越低。
嵌入式处理器一般具有以下四个特点:
- 对实时多任务操作系统具有很强的支持能力。能够实现多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减小到最低程度;
- 具有功能很强的存储区保护功能。由于嵌入式系统的软件结构一般为模块化,为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件故障诊断;
- 处理器结构可扩展。能够快速开发出满足各种应用和高性能的嵌入式处理器;
- 低功耗。尤其是在便携式的无线及移动计算和通信设备的嵌入式系统中,其功耗可以达到mW级,甚至uW级。
近年来,嵌入式处理器的主要发展方向是小体积、高性能、低功耗。专业分工也越来越明显,出现了专业的IP(Intellentual Property Core,知识产权核)供应商,如ARM、MIPS等,他们提供优质、高性能的嵌入式微处理器内核,而由各