BSP 概念解析

2021-05-17 20:34:25 字數 2199 閱讀 3833

發 布 時 間 : 2008-11-19   

來 源 : 立宇泰論壇   

作 者 : duyunhai   

瀏 覽 : 210

drew在這裡按照自己的理解來解釋一下bsp( board support package),僅供參考:

bsp是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。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()來完成網絡卡驅動的安裝。

tornado中bsp的編譯和上層應用程式不同,用命令列或直接在tornado環境下build,在tornado下不能跟蹤除錯。

使用者也可以新增自己的程式到bsp中,但嚴格來說不應該算bsp.一般來說這種做法不建議。因為一旦作業系統能良好執行於最終的主機板硬體後,bsp也就固定了,不需要做任何改動。而使用者自己在bsp中的程式還會不斷的公升級更新,這樣勢必對bsp有不好的影響,對系統造成影響,同時由於bsp除錯編譯環境較差,也不利於程式的編譯除錯。

上層程式

--------------

i/o system

vxworks libraries

tcp/ip 

wind kernel

bsp--------------

scsi controllerr

serial controller

clock timer

ethernet controller

.. .. 硬體

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,保證系統正常的執行是非常重要的。

bsp和pc機主板上的bios區別

pc機bios的作用更象嵌入式系統中的bootloader(最底層的引導軟體,初始化主機板的基本設定,為接收外部程式做硬體上的準備)。與bootloader不同的是bios在裝載os系統的同時,還傳遞一些引數設定(中斷埠定義,...),而bootloader只是簡單的裝載系統。

bsp是和作業系統綁在一起執行在主機板上的,儘管bsp的開始部分和bios所做的工作類似,可是大部分和bios不同,作用也完全不同。此外bsp還包含和系統有關的基本驅動(串列埠,網口...),此外程式設計師還可以程式設計修改bsp,在bsp中任意新增一些和系統無關的驅動或程式,甚至可以把上層開發的統統放到bsp中。

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

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

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

大概步驟如下:

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

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

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

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

熟悉工具方面:電表,示波器,邏輯分析儀。硬體**器,**除錯環境。

語言方面:組合語言,c語言。

BSP 概念解析

drew在這裡按照自己的理解來解釋一下bsp board support package 僅供參考 bsp是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不同的作業系統對應於不...

BSP 概念解析

bsp是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不同的作業系統對應於不同定義形式的bsp,例如vxworks的bsp和linux的bsp相對於某一cpu來說儘管實現的功能...

什麼是BSP 概念解析

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