基于VxWorks的BSP概念設(shè)計和實現(xiàn)_第1頁
基于VxWorks的BSP概念設(shè)計和實現(xiàn)_第2頁
基于VxWorks的BSP概念設(shè)計和實現(xiàn)_第3頁
基于VxWorks的BSP概念設(shè)計和實現(xiàn)_第4頁
基于VxWorks的BSP概念設(shè)計和實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

精品文檔-下載后可編輯基于VxWorks的BSP概念設(shè)計和實現(xiàn)概述

VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS),它采用微內(nèi)核的結(jié)構(gòu),具有支持多種處理器,豐富的網(wǎng)絡(luò)協(xié)議,良好的兼容性和裁減性等特點,同時具有程序動態(tài)鏈接和的功能。

BSP(BoardSupportPacket——板級支持包)是介于底層硬件和上層軟件之間的底層軟件開發(fā)包,它主要功能為屏蔽硬件,提供操作系統(tǒng)的驅(qū)動及硬件驅(qū)動,具體功能包括:

單板硬件初始化,主要是CPU的初始化,為整個軟件系統(tǒng)提供底層硬件支持;

為操作系統(tǒng)提供設(shè)備驅(qū)動程序和系統(tǒng)中斷服務(wù)程序;

定制操作系統(tǒng)的功能,為軟件系統(tǒng)提供一個實時多任務(wù)的運行環(huán)境;

初始化操作系統(tǒng),為操作系統(tǒng)的正常運行做好準備;

BSP文件在works/target/config/all和works/target/config/bspname文件夾里。其中,all文件夾里的文件是所有BSP的通用文件,bspname文件夾的文件是用戶自己定制的BSP文件。

經(jīng)過編譯、鏈接,并在makefile和depend.bspname等文件的控制下,原程序?qū)⑸社R像。VxWorks的鏡像可分為兩類:可鏡像和可引導(dǎo)鏡像。

鏡像就是像照鏡子一樣。我們一般說的鏡像是指給系統(tǒng)作個ghost鏡像。這樣可以在很短時間,很方便的還原出一個完整的系統(tǒng)來。鏡像可以說是一種文件,比如iso,gho都屬于鏡像文件,鏡像文件可以直接刻錄到光盤中,也可以用虛擬光驅(qū)打開。

鏡像文件的應(yīng)用范圍比較廣泛,常見的應(yīng)用就是數(shù)據(jù)備份(如軟盤和光盤)。隨著寬帶網(wǎng)的普及,有些網(wǎng)站也有了ISO格式的文件,方便了軟件光盤的制作與傳遞。常見的鏡像文件格式有ISO、BIN、IMG、TAO、DAO、CIF、FCD。還有一個常識就是正版用的人多了就成了盜版了,正版用戶每人有一個正版序列號,主要用于升級和打補丁,所以鏡像和正版不能劃等號,主要是要有序列號。當然據(jù)傳正版鏡像會比盜版穩(wěn)定一點,據(jù)傳而已,另外還有和虛擬光驅(qū)關(guān)聯(lián)的鏡像文件。

可鏡像(LoadableImage):實際包括兩部分,一是Works,二是bootROM,兩部分是獨立創(chuàng)建的。其中bootROM包括被壓縮的bootROM鏡像(bootrom)、非壓縮的bootROM鏡像(bootrom_uncmp)和駐留ROM的bootROM鏡像(bootrom_res)三種類型;

可引導(dǎo)鏡像(BootableImage):是將引導(dǎo)程序和Works融為一體的鏡像,它常常是終產(chǎn)品,包括不駐留ROM的鏡像和駐留ROM的鏡像兩種類型。

VxWorks系統(tǒng)啟動流程

VxWorks是美國WindRiverSystem公司(以下簡稱風(fēng)河公司,即WRS公司)推出的一個實時操作系統(tǒng)。Tornado是WRS公司推出的一套實時操作系統(tǒng)開發(fā)環(huán)境,類似MicrosoftVisualC,但是提供了更豐富的調(diào)試、仿真環(huán)境和工具。

VxWorks提供了一個快速靈活的與ANSIC兼容的I/O系統(tǒng),包括UNIX標準的BasicI/O(creat(),remove(),open(),close(),read(),write(),andioctl()。),BufferI/O(fopen(),fclose(),fread(),fwrite(),getc(),putc())以及POSIX標準的異步I/O。VxWorks包括以下驅(qū)動程序:網(wǎng)絡(luò)驅(qū)動、管道驅(qū)動、RAM盤驅(qū)動、SCSI驅(qū)動、鍵盤驅(qū)動、顯示驅(qū)動、磁盤驅(qū)動、并口驅(qū)動等

一般來說,所有處理器的VxWorks系統(tǒng)啟動流程都是相似的,但有些處理器會有一些特殊的步驟,而另一些處理器會跳過幾個步驟。

BSP的開發(fā)過程

建立開發(fā)環(huán)境

主要是以目標板CPU的BSP文件為模板,在ornadoargetconfig目錄下創(chuàng)建用戶的BSP目錄bspname,把ornadoargetconfigall下的文件和BSP模板文件拷貝到該目錄下,根據(jù)具體情況選擇合適的VxWorks鏡像類型。

修改模板程序

Makefile

Makefile文件控制鏡像的創(chuàng)建,在Makefile文件里使用了將近135個宏,簡單的Makefile文件要包含以下的宏:

·CPU:目標板CPU的類型;

·TOOL:主機的make工具,為GNU;

·TGT_DIR:target路徑,默認為$(WIND_BASE)/target;

·TARGET_DIR:BSP目錄名;

·VENDER:目標板生產(chǎn)商名;

·BOARD:目標板名;

·ROM_TEXT_ADRS:bootROM的入口地址(以16進制表示,并且與config.h文件定義相同);

·MACH_EXTRA:擴展文件,用戶可以加入自己的目標模塊;

·除此以外,Makefile文件還需要包括以下文件:

·$(TGT_DIR)/h/make/defs.bsp:Vxworks系統(tǒng)運行的標準變量定義;

·$(TGT_DIR)/h/make/make.$(CPU)$(TOOL):提供了特別的目標機結(jié)構(gòu)和一套編譯工具,如make.ARM7TDMI_Tgnu;

·$(TGT_DIR)/h/make/defs.$(WIND_HOST_TYPE):提供了與主機系統(tǒng)有關(guān)的定義;

·如果沒有用all目錄下的文件而是拷貝到bspname下修改并使用,需要定義與這些文件有關(guān)的宏,如

BOOTINIT=bootInit.c

這樣在創(chuàng)建鏡像時就不會用all目錄下的文件而使用bspname目錄下的相應(yīng)文件了;

·在Makefile文件里凡是16進制數(shù)前面都無需加“0x”;

bspname.h

根據(jù)具體目標板設(shè)置串行接口、時鐘以及I/O設(shè)備等。在該文件中必須包含以下內(nèi)容:

·中斷向量/級別

·I/O設(shè)備地址

·設(shè)備寄存器位的含義

·系統(tǒng)和附加時鐘參數(shù)(和速率)

config.h

根據(jù)目標板的具體情況配置宏定義,注意ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、RAM_HIGH_ADRS要與Makefile文件里定義的一致,LOCAL_MEM_LOCAL_ADRS和LOCAL_MEM_SIZE要正確。

romInit.s

這是系統(tǒng)上電后運行的個程序,根據(jù)具體目標板對寄存器和CPU進行設(shè)置;以CPU為ARM7TDMI為例,romInit.s需要進行的工作有:

·保存啟動方式:對于冷啟動,如果CPU配置的是HIGHVECTORS,就設(shè)置入口地址為0xFFFF0000,否則設(shè)置入口地址為0x00000000;

·屏蔽中斷:通過設(shè)置cpsr的I_BIT和F_BIT都為1來實現(xiàn),還要設(shè)置中斷寄存器為關(guān)模式,同時設(shè)定運行模式為SVC32模式;

·初始化堆棧指針pc和sp:堆棧指針sp指向STACK_ADRS,這個宏的定義為當鏡像為駐留ROM時,該宏值為_sdata,當鏡像為非駐留ROM時該宏值為_romInit,這兩個地址經(jīng)過地址映射后都指向被拷貝鏡像在RAM的目標地址;

·初始化cache,屏蔽cache;

·根據(jù)具體目標板的需要初始化其他寄存器;

·指針跳轉(zhuǎn)到romStart()函數(shù)并執(zhí)行;

sysALib.s

與romInit.s文件實現(xiàn)的功能相似,但如果在romInit.s文件里對DRAM和內(nèi)存控制器進行了初始化在這里不再進行這項工作;

創(chuàng)建VxWorks鏡像

根據(jù)具體需要在命令行環(huán)境下利用Makefile創(chuàng)建各種鏡像,也可以在Tornado的集成環(huán)境下Build菜單中選擇BuildBootROM來創(chuàng)建各種類型的BootROM;

結(jié)語

我們已經(jīng)利用基于VxWorks的BSP開發(fā)包成功的進行了線纜調(diào)制解調(diào)器的底層軟件開發(fā)。在開發(fā)過程中深感BSP在整個系統(tǒng)軟件中的重要性——沒有正確的BSP軟件,整個系統(tǒng)的啟動和運行也不會正

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論