板級支持包

操作系統中的驅動層程序

板級支持包(BSP)(Board Support Package)是介於主板硬體和操作系統中驅動層程序之間的一層,一般認為它屬於操作系統一部分,主要是實現對操作系統的支持,為上層的驅動程序提供訪問硬體設備寄存器函數包,使之能夠更好的運行於硬體主板。在嵌入式系統軟體的組成中,就有BSP。BSP是相對於操作系統而言的,不同的操作系統對應於不同定義形式的BSP,例如VxWorks的BSP和Linux的BSP相對於某一CPU來說儘管實現的功能一樣,可是寫法和介面定義是完全不同的,所以寫BSP一定要按照該系統BSP的定義形式來寫(BSP的編程過程大多數是在某一個成型的BSP模板上進行修改)。這樣才能與上層OS保持正確的介面,良好的支持上層OS。

介紹


在嵌入式系統中,板級支持包(英語:board support package,簡稱 BSP)用作初始化與運行操作系統並用於評估板(Evaluation Board)的簡易代碼。它通常包含了以基礎支持代碼來載入操作系統的引導程序(英語:bootloader),以及主板上所有設備的驅動程序。
一些供應商還會提供一套根文件系統、用於構建運行在該嵌入式系統上的程序的工具鏈(英語: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 包含以下部分(還有其他部分未列出):
1.一個 config.h 文件, 定義了一些常量例如 ROM_SIZE 和 RAM_HIGH_ADRS
2.一個 Makefile, 定義了二進位版本的 VxWorks ROM 映像,這個映像是用來提供給對快閃記憶體進行編程的
3.一個 bootrom 文件, 定義了這個板相關的啟動參數等
4.一個 target.ref 文件, 描述了板相關的信息,例如開關和跳線設置,中斷等
5.一個 VxWorks 映像
6.C 代碼,包含有:
flashMem.c--開發板的快閃記憶體的驅動
pciIomapShow.c--將 PCI 匯流排映射成文件
primeCellSio.c -- TTY 驅動
sysLib.c--開發板系統相關的常式
romInit.s--開發板的ROM初始化模塊,包含開發板從 ROM 運行程序的入口代碼