bsp是什么?
板级支持包(board support package)
BSP板级支持包(board support package),是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行与硬件主板。在嵌入式体统软件的组成中,就有BSP。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的 BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层 OS。
板级支持包
在嵌入式系统中,Board Support Package(简称BSP,中译板支持包)是实现特定的支持代码让所给的板来符合所给的操作系统,通常会与 bootloader一起建置,bootloader包含最小的设备驱动来加载操作系统与所有在板上的设备的驱动程序。
一些供应商也提供一个根文件系统,使用toolchain让程序可以在嵌入式系统上运行(toolchain可能是架构支持包的其中一部分)与设备配置器。
历史
大约从1988年开始出现这个词。这词的来源最常被归于温瑞尔公司(Wind River Systems)给它的 VxWorks嵌入式操作系统,不过现在已经广泛的在业界使用。如 QNX Software Systems也提供 BSPs。Microsoft也提供有 Windows CE操作系统的 BSPs。
Windows CE 操作系统的 BSP包含有:
1.bootloader
2.驱动
3.OEM Adaptation Layer(OAL)
4.配置文件
示例
温瑞尔公司为 ARM Integrator 920T开发板提供的 BSP 包含以下部分(还有其他部分未列出):
一个 config.h 文件,定义了一些常量例如 ROM_SIZE 和 RAM_HIGH_ADRS
一个 Makefile, 定义了二进制版本的 VxWorks ROM镜像,这个镜像是用来提供给对闪存进行编程的
一个 bootrom 文件,定义了这个板相关的启动参数等
一个 target.ref 文件,描述了板相关的信息,例如开关和跳线设置,中断等
一个 VxWorks 镜像
C 代码,包含有:
1.flashMem.c -- 开发板的闪存的驱动
2.pciIomapShow.c -- 将 PCI 总线映射成文件
3.primeCellSio.c -- TTY驱动
4.sysLib.c -- 开发板系统相关的例程
5.romInit.s -- 开发板的 ROM初始化模块,包含开发板从 ROM运行程序的入口代码