傳送門:
嵌入式中的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...