《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Vxworks Board Support Package的設計
Vxworks Board Support Package的設計
摘要: BSP是BoardSupportPackage的縮寫。該術語通常用于嵌入式領域,主要指在開發嵌人式應用時系統開發商提供的各種粗動支持庫。在嵌人式領域人們對BSP有各種不同的理解。
關鍵詞: 軟件 BSP Vxworks 嵌入式
Abstract:
Key words :

  BSP是Board Support Package的縮寫。該術語通常用于嵌入式領域,主要指在開發嵌人式應用時系統開發商提供的各種粗動支持庫。在嵌人式領域人們對BSP有各種不同的理解:

  (1) 操作系統的驅動程序。嵌人式系統提供商的權威— WindRiver公司對BSP的理解偏向于是OS的驅動程序(從其BSP的文檔中可以看出),因為嵌人式系統中的各種設備的確名目擠多,因此將BSP定位于OS的驅動的確有一定的道理.

  (2) 驅動程序。對于認為BSP就是驅動程序的人來講,他們通常接觸的是嵌人式系統提供商提供的某種應用解決方案的應用系統(total solution)。在這種開發系統中,BSP完全有理由被認為是所有驅動程序,因為開發人員沒有必要自己去開發驅動程序,而只是驗證驅動程序在自己的系統中是否正確即可.

  (3) HAL(HardwareA bstractL ayer)。對于開發嵌人式OS的人來講,傾向于將BSP看成是對硬件平臺的抽象層(HAW和處理器的馭動程序更恰當.

  實際上各種理解都只是側重于某個方面。由于每個嵌人式系統提供商都根據自己的操作系統而提出對BSP的不同理解,因此,在涉及到BSP的具體涵義時,人們往往有一種似是而非的感覺.實際是各種理解都有其道理,但由于出發點不同,對BSP的理解都有失全面甚至有錯誤的地方,這也是初學者容易混淆的原因。對于進行硬件和軟件開發的人員,第三種理解比較合適,后面的分析也是建立在這個基礎之上的。這里通過 BSP(BoardS upport Package)和BIOS(BasicI nputa ndO utputS ystem)的對比,來說明板級支持包的功能。BSP說得簡單一點,就是一段啟動代碼,與計算機主板的BIOS差不多.提供的功能卻有較大的差別。我們都知道,在通用8051等系列單片機開發的過程中,要有小段程序設堆棧指針、軟復位和中斷屏蔽等等可以把這短程序稱為它的BSP,實時操作系統的BSP相對復雜一點,但通常也是設t堆棧指針,建立中斷向量表,初始化寄存器(控制外圍器件如DRAM和EDO RAM條,控制I/O Q的寄存器、片選信號等),配里地址空間以及系統啟動方式。BIOS是微機的基本輸人輸出系統,其內容集成在微機主板上的一個ROM芯片上,主要保存著有關微機系統最重要的基本輸入輸出程序,如系統設置信息、開機上電自檢程序和系統啟動自舉程序等。BIOS中斷服務程序實質上是微機系統中軟件與硬件之間的一個可編程接口,主要用于程序軟件功能與微機硬件之間的連接。例如,Wind-98 對軟驅、光驅和硬盤等管理及中斷的設置等服務和程序。BIOS系統設置程序,微機部件配置記錄是放在一塊可的CMOS RAM芯片  中的,主要保存著系統的基本悄況、CPU特性和軟硬盤驅動器等部件的信息,可以對其各項參數進行設It. BIOS系統啟動自舉程序,系統完成POST自檢后,ROM BIOS就首先按照系統CMOS設置中保存的啟動順序搜索軟硬盤驅動器及CD-ROM。網絡服務器等有效地啟動驅動器,讀人操作系統引導記錄然后將系統控制權交給引導記錄,并由引導記錄來完成系統的順序啟動,實時操作系統的BSP就相當于PC的BIOS一般來說,對不同的微處理器板以及不同的RTOS時,就應該配置不同的BSP, BSP可以是已經做好了的,不需要開發人員去關心寄存器設置的細節。

  當然根據實際的要求用戶也可以改寫BSP來加人自己的特定功能o BSP可針對不同的硬件做不同的調整,相應于PC的BIOS.它完成對硬件的初始化工作,執行完后再將執行權交給RTOS。在BSP中,只需要對與硬件相關的寄存器(主要是DRAM,SD RAM和片選)及與中斷相關的寄存器進行正確配Y即可.BSP程序越簡單越好,能放在主程序中初始化的功能盡A不要放在其中,BSP配I程序只要能保證系統正常啟動即可.大部分RTOS帶有針對不同徽處理器的BSP程序,用戶只要稍做修改即可移植到自己的開發應用中設備驅動程序(Drivers)指用于處理、管理硬件控制(controller)的代碼。設備馭動程序是將基礎建立在具體的操作系統之上,而不是某種類型的處理器(CPU)(這很重要)。實際運用中,人們可能選擇不同的目標硬件(CPU),如PowerPC,A RM,X 86,并且配f不同的操作系統.即使對于同一種類型的目標硬件,不同的操作系統也要編寫不同的BSP。對于驅動程序,實際上是在操作系統的層次上對不同的設備控制器所寫的代碼。

  實時操作系統的馭動程序與PC的相類似eR TOS通常在BSP定義了一套自己的驅動程序接口,根據這些接口寫相應的驅動程序。當然RTOS與硬件較緊密,靈活性較大,開發人員完全可以拋開它提供的接口而自己編寫駱動程序.這同直接在C代碼中調用BIOS提供的底層功能(如BIOS中斷)編寫程序類似。BSP通常可以認為是基于硬件平臺的。當開發某個平臺且與硬件相關的程序時,往往不得不從設置某個寄存器的某個位開始編程。在嵌人式領城,這種情況更為明顯,幾乎所有的設備控制和各種協議控制都在同一個嵌人式CPU核當中,非常有利于對CPU核和設備進行抽象.如果能對CPU核和設備的各種控制進行抽象,則人們在移植OS或者開發馭動程序時,就沒有必要對CPU進行非常深入的了解,不必要了解某個寄存器的某個位是控制什么的,也沒有必要了解怎樣初始化某個控制寄存器等等。因此,BSP是一種能為程序開發人員提供對硬件進行描述性操作的開發支律庫。描述性操作是指在控制硬件時只需知道要完成什么,而不需要知道如何去完成,每個操作都是一些單一的動作.例如:對于設置一個串口的波特率,只需要知道是哪個申口,波特率是多少,而不需要知道要寫哪一個寄存器以及如何寫等。在利用BSP編寫驅動程序時,編程人員只需要了解該驅動程序的初始化順序以及初始化的內容,而不需要了解初始化的具體細節就能完成驅動程序。可以大大地提高工作效率。并且對于硬件的具體細節設1l`是在驅動程序中最容易出錯的地方,而利用BSP支撐庫則可以大大地減少出堵的可能性。在BSP支排庫中,除了包含對硬件的描述性操作部分的代碼外,還包含了對目標板的初始化部分、中斷管理部分以及一些簡單的驅動程序程序單元。這樣的BSP可以不依賴于任何操作系統和駱動程序,但是可以作為操作系統和驅動程序的開發支排庫,可以非常方便地移植或者開發操作系統與驅動程序。在最好的情況下,操作系統與駱動程序的移植只需要更換相應平臺下的BSP支排庫即可完成移植。BSP是對目標系統的軟件支持,是一些硬件具體的函數的集合,主要完成下面的功能:

  (1) 在系統啟動時,對目標系統進行硬件初始化;

  (2) 提供對目標系統設備的接口.如時鐘、Ethernet控制器、串行芯片和SCSI控制器在PSOS 中,對于不同的開發系統,其不同的特性在板級支持包BSP的bsp.h 文件中作了具體的定義。例如基本特性,包括處理器類型BSP_CPUFAMILY(PoweiTC,68000,X86和1960等),具體的處理器(PPC604和PPC603等),還有浮點支持BSP_FPU,字符模式選擇BSP間的開始地址。其它的如串行通道特性、LAN接口特性ENDIAN等,BSP_RAM_BASE RAM空、共享存儲器通信以及板級支持包參數設定的缺省值。bsp.h ,bspcfg.h 和bspcfg.c 文件提供了在應用程序編譯時對某些BSP特性進行配置是必要的。BSP進行配置的選項和實現。應用程序對例如,BSP_ LANI表明BSP是否需要LAN驅動,可以設置為是或否。這個參數會被多個文件使用,包括是否編譯和建立LAN驅動,讓操作系統支持LAN操作目標系統在復位后,要做的第一項工作就是對硬件設備進行初始化,執行Hwdinit函數。該函數完成在C中無法進行的初始化任務,Initboard函數在C代碼繼續板級初始化,這通常被稱為硬件初始化(hardware initialization),相應的sysinit函數完成非硬件初始化任務(software initialization)。在Hwdinit中BSP中對具休的處理器配置步驟如下

  (1) 設置MSR,包括校驗、優先級模式、禁止中斷、禁止地址轉換。即extern unsigned long ppcMSRrd(void);

  (2 )給減計數器處置,調用ppcDECwr,把值寫人DE(,即exter nvoid ppcDECwr(unsignedl ongv alue);

  (3) 禁止指令和數據Caches,即exter nunsigned long SysDcachelnhibit(void); exter nvoid SysIcacheInhibit(void);

  (4) 初 始 化核心寄存器,包括MachineS tatusR egister( MSR) //機器校驗使能,中斷可恢復Instruction Support Control Register (ICTRL) / /開 發 端 口捕 獲 使能Debug Enable Register (D ER O) // 關 閉調 試 中 斷Interrupt Cause Register( ICR ) / /關 閉中 斷 事 件Internal Memeory MapRegister (IMMR ) // 設 里 內部 存 儲 區 地 址System Interface Unit (SIU )

  Module Configuration Register ( SIUMCR )Reset Status Register RSR) //復 位 狀 態 控制

  (5)使能減法計數器。

  (6)初始化片選寄存器。(對Flash內存)

  (7)確定DRAM的類型,設UPMX初始化表,即extern HdwInitDRAM(void)為了通過 UPMX訪問外部不同結構和速率DRAM,生成相應的初始化表,可以使用Motorola提供的MCUinit軟件來生成。

  (8)把 Data Section從FlashROM拷貝到RAM。根據硬件配宜,這是可選的,通常不作.最后 , 根 據具體的目標系統設It合理的系統參數,通過棋板建立設備接口,編寫編譯文件和鏈接文件把BSP和操作系統鏈接起來。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 色噜噜狠狠色综合免费视频 | 天天夜天干天天爽 | 精品一区二区三区视频 | 亚洲成人h | 日韩一级二级 | 欧美8一10sex性hd | 日韩系列在线 | 成人综合国产乱在线 | 美国一级大黄一片免费网站 | 美国人成毛片在线播放 | 15xxxx18日本娇小 | 日本簧片在线观看 | 免费在线毛片 | 国产在线视频一区二区三区 | 亚洲日本1区2区3区二区 | 欧美一区二区手机在线观看视频 | 男女视频在线观看网站 | papa视频| 日韩在线观看视频网站 | 日韩国产欧美视频 | 人成免费在线视频 | 午夜视频在线免费看 | 老司机午夜性生免费福利 | 午夜欧美福利视频 | 欧美综合影院 | 任你躁欧美一级在线精品 | 日韩手机在线观看 | 天海翼一区二区三区四区 | 东方aⅴ免费观看久久av | 免费看美女午夜大片 | 欧美日韩一区二区三区在线播放 | 人人精品| 2019中文字幕在线观看 | 99视频精品全部 在线 | 日本午夜在线视频 | 久久国产成人午夜aⅴ影院 久久国产欧美日韩精品 | 色综合色狠狠天天综合色hd | 免费黄色在线网址 | 日本高清不卡一区 | 中文国产成人精品久久96 | 日韩在线 | 中文 |