新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式系統(tǒng)HAL原理與BSP的實現(xiàn)方法

嵌入式系統(tǒng)HAL原理與BSP的實現(xiàn)方法

作者: 時間:2013-10-23 來源:網(wǎng)絡 收藏

嵌入式系統(tǒng)HAL原理與BSP的實現(xiàn)方法

2.2 硬件相關的設備驅動程序
另一個主要功能是硬件相關的設備驅動。與初始化過程相反,硬件相關的設備驅動程序的初始化和使用通常是一個從高層到底層的過程。
盡管中包含硬件相關的設備驅動程序,但是這些設備驅動程序通常不直接由使用,而是在系統(tǒng)初始化過程中由BSP把它們與操作系統(tǒng)中通用的設備 驅動程序關聯(lián)起來,并在隨后的應用中由通用的設備驅動程序調用,實現(xiàn)對硬件設備的操作。設計與硬件相關的驅動程序是BSP設計中另一個關鍵環(huán)節(jié)。圖4顯示 了調用設備驅動程序時系統(tǒng)各個層次之間的關系。

嵌入式系統(tǒng)HAL原理與BSP的實現(xiàn)方法

3 設計實現(xiàn)BSP的方法
3.1 設計實現(xiàn)BSP的一般方法
因為BSP同時具有硬件相關性和操作系統(tǒng)相關性,是一個介于硬件與軟件之間的中間層次。因此BSP的開發(fā)不僅需要具備一定的硬件知識,例如CPU的控 制、中斷控制器的設置、內存控制器的設置及有關的總線規(guī)范等;同時還要求掌握操作系統(tǒng)所定義的BSP接口。另外,在BSP的初始化部分通常會包含一些匯編 代碼,因此還要求對所使用的CPU匯編指令有所了解,例如X86的匯編和PowerPC的匯編指令等;對于某些復雜的BSP還要了解所使用的開發(fā)工具,例 如GNU、Diab Data等。
總之,開發(fā)BSP要求具備比較全面的軟、硬件知識和必要的編程經(jīng)驗。由于設計實現(xiàn)的復雜性,在設計特定BSP時很少從零開始,而是采用以下兩種快捷方法。
方法一:以經(jīng)典BSP為參考
在設計BSP時,首先選擇與應用硬件環(huán)境最為相似的參考設計,例如Motorola的ADS系列評估板等。針對這些評估板,不同的操作系統(tǒng)都會提供完整 的BSP,這些BSP是學習和開發(fā)自己BSP的最佳參考。針對具體應用的特定環(huán)境對參考設計的BSP進行必要的修改和增加,就可以完成簡單的BSP設計。
下面以設計pSOS操作系統(tǒng)的BSP初始化過程為例。pSOS系統(tǒng)初始化的層次非常清晰,與初始化過程相對應的是以下三個文件:
1)init.s :對應于片級初始化;完成CPU的初始化操作,設置CPU的工作狀態(tài);
2)board.c :對應于板級初始化;繼續(xù)CPU初始化,并設置CPU以外的硬件設備;
3)sysinit.c :對應于系統(tǒng)級初始化;完成操作系統(tǒng)的初始化,并啟動應用程序。
以參考BSP為切入點,針對初始化過程的具體環(huán)節(jié),在對應的文件中進行某些參數(shù)的修改及功能的增加就可以實現(xiàn)BSP的系統(tǒng)初始化功能。
因為BSP具有操作系統(tǒng)相關性,因此,不同的操作系統(tǒng)會使用不同的文件完成類似的初始化操作。
BSP中硬件相關的設備驅動程序隨操作系統(tǒng)的不同而具有比較大的差異,設計過程中應參照操作系統(tǒng)相應的接口規(guī)范。
方法二:使用操作系統(tǒng)提供的BSP模板
除了提供某些評估板的BSP以外,很多操作系統(tǒng)還提供相應的BSP模板(一組需要編寫的文件),根據(jù)模板的提示也可以逐步完成特定BSP的設計。
相比較而言,第一種方法最為簡單快捷。因此,在實際的設計過程中,通常以第一種方法為主,同時結合使用第二種方法。
在設計實現(xiàn)BSP兩部分功能時應采用以下兩種不同方法:
(1)“自底向上”地實現(xiàn)BSP中的初始化操作:從片級初始化開始到系統(tǒng)級初始化;
(2)“自頂向下”地設計硬件相關的驅動程序:從API開始,到操作系統(tǒng)內部的通用設備驅動程序,再到BSP內部的硬件相關的設備驅動程序,最后到底層具體的硬件設備。
3.2 BSP設計方法的不足與改進
從以上介紹的兩種設計方法可以看出:目前BSP的設計與實現(xiàn)主要是針對某些特定的文件進行修改。這種方法比較原始,它不僅要求設計人員了解BSP的各個 組成部分及所對應的文件和相關參數(shù)的具體含義,還要求具備比較全面的軟硬件知識。直接修改相關文件容易造成代碼的不一致性,增加軟件設計上的隱形錯誤,從 而增加系統(tǒng)調試和代碼維護的難度。隨著底層硬件功能的日益復雜,開發(fā)BSP所涉及的內容也越來越多。這種原始方法的不足之處也越來越突出。進行BSP設計 方法和工具的創(chuàng)新成為一個日益突出的問題。
解決這個問題的一個可行辦法是:設計實現(xiàn)一種具有圖形界面的BSP開發(fā)設計向導,由該向導指 導設計者逐步完成BSP的設計和開發(fā),并最終由向導生成相應的BSP文件,而不再由設計人員直接對源文件進行修改。這樣不僅可以大大縮短BSP的開發(fā)周 期,減少代碼不一致性,而且系統(tǒng)排錯、調試以及維護都很簡單。因此,這種方法是目前嵌入式領域中BSP設計的一個趨勢和研究方向。但是,由于硬 件環(huán)境的多樣性,設計向導的實現(xiàn)仍需解決若干關鍵問題。為此,作者仍將在這一方面作進一步研究。
文中提出的方法在華環(huán)公司的寬帶網(wǎng)絡工程中得到實踐和應用,并取得了非常良好的應用成果。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉