嵌入式中的BSP BSP到底是什麼?

2021-08-10 14:53:34 字數 1670 閱讀 1054

傳送門:

嵌入式中的bsp---bsp到底是什麼?

(1)什麼是bsp?

bsp是板級支援包,(board support package)是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統

的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不

同的作業系統對應於不同定義形式的bsp,例如vxworks的bsp和linux的bsp相對於某一cpu來說儘管實現的功能

一樣,可是寫法和介面定義是完全不同的,所以寫bsp一定要按照該系統bsp的定義形式來寫(bsp的程式設計過程

大多數是在某乙個成型的bsp模板上進行修改),這樣才能與上層os保持正確的介面,良好的支援上層os。

例如: 在vxworks中的網絡卡驅動,首先在config.h中包含該網絡卡,然後將網絡卡含網絡卡的資訊的引數放入陣列 

end_tbl_entry enddevtbl 中,系統通過函式muxdevload( )呼叫這個陣列來安裝網絡卡驅動。 而在linux中

的網絡卡驅動,是在space.c中宣告該網路裝置,再把網絡卡驅動的一些函式加到dev結構中,由函式ether_setup

()來完成網絡卡驅動的安裝。

純粹的bsp所包含的內容一般說來是和系統有關的驅動和程式,如網路驅動和系統中網路協議有關,串列埠驅動

(2)bsp在嵌入式系統和windows系統中的不同

其實執行與pc機上的windows或linux系統也是有bsp的。只是pc機均採用統一的x86體系架構,這樣一定作業系統(windows,linux..)的bsp相對x86架構是單一確定的,不需要做任何修改就可以很容易支援os在x86上正常執行,所以在pc機上談論bsp這個概念也沒什麼意義了。

而對嵌入式系統來說情況則完全不同,目前市場上多種結構的嵌入式cpu(risc)並存(ppc,arm,mips....),為了效能的需要,外圍裝置也會有不同的選擇和定義。乙個嵌入式作業系統針對不同的cpu,會有不同的bsp,即使同一種cpu,由於外設的一點差別(如外部擴充套件dram的大小,型別改變),bsp相應的部分也不一樣。

所以根據硬體設計編寫和修改bsp,保證系統正常的執行是非常重要的。

(3)bsp和pc機主板上的bios區別

而bios程式是使用者不能更改,編譯程式設計的,只能對引數進行修改設定。更不會包含一些基本的硬體驅動

(4)bsp在嵌入式開發中的位置和作用

bsp開發處於整個嵌入式開發的前期,是後面系統上應用程式能夠正常執行的保證。

大概步驟如下:

1.硬體主機板研製,測試。

2.作業系統的選定,bsp程式設計。

3.上層應用程式的開發。

bsp部分在硬體和作業系統,上層應用程式之間。所以這就要求bsp程式設計師對硬體,軟體和作業系統都要有一定的了解。這樣才能做好bsp程式設計。

(5)bsp包括的一些內容

對於開發板提供商來說,bsp就是開發板的生產商提供的乙個資料和資源包。

通常包括:

一 硬體相關: 

1 開發板原理圖 

2 開發板元件列表 

3 介面定義 

4 位址分布

二 軟體相關: 

1 某些作業系統的bootloader及源** 

2 某些作業系統裁剪好的映像檔案(如linux系列可能有原始碼,如wince可能有cec檔案)

三 服務相關 

1 售後的技術支援(根據**,差異很大) 

嵌入式中的BSP BSP到底是什麼?

嵌入式中的bsp bsp到底是什麼?參考 1 什麼是bsp?bsp是板級支援包,board support package 是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統 的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不 同的作業系統...

嵌入式中的BSP BSP到底是什麼?

原文 1 什麼是bsp?bsp是板級支援包,board support package 是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統 的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不同的作業系統對應於不同定義形式的bsp,例如vxw...

嵌入式中的BSP BSP到底是什麼?

1 什麼是bsp?bsp是板級支援包,board support package 是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統 的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不同的作業系統對應於不同定義形式的bsp,例如vxwork...