1. 程式人生 > 其它 >OS理論篇 | BSP與HAL關係

OS理論篇 | BSP與HAL關係

技術標籤:※ Embedded# OS嵌入式微控制器中介軟體作業系統

板級支援包(BSP)(Board Support Package)是介於主機板硬體和作業系統中驅動層程式之間的一層,一般認為它屬於作業系統一部分,主要是實現對作業系統的支援,為上層的驅動程式提供訪問硬體裝置暫存器的函式包,使之能夠更好的運行於硬體主機板。

硬體抽象層是位於作業系統 核心與硬體電路之間的介面層,其目的在於將硬體抽象化。它隱藏了特定平臺的硬體介面細節,為作業系統提供虛擬硬體平臺,使其具有硬體無關性,可在多種平臺上進行移植。

就我跟人理解而言BSP就是硬體驅動程式,它包含了操控硬體的必要函式,微控制器系統使用BSP可以直接進行應用開發,這時候應用開發的hierarchy如下圖所示:

但是由於日益增長的晶片種類和晶片複雜度,直接使用BSP進行應用開發將會受到巨大的挑戰,因此為了程式的可閱讀性以及可移植性提出了硬體抽象層HAL這一個概念。引入HAl之後的系統hierarchy如下圖所示:

引入HAL之後作業系統將會使用相對更為統一的HAL介面來實現對硬體的操作,而不是直接使用BSP庫。當然,HAL庫的實現是基於BSP庫的,只是將其進一步封裝,形成統一的標準。因此一個完整、強健的嵌入式系統的系統hierarchy應該為:

hardware –> board support package –> hardwareabstract layer –> driver –> operating system –> application

當然嵌入式系統中作業系統並不是必須的,並且在作業系統和應用程式之間可以在有一層中介軟體Middleware層,用於提供更多的系統功能,這個中介軟體Middleware層也被稱作SDK。