音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于VxWorks的BSP概念設(shè)計和實現(xiàn)

出處:互聯(lián)網(wǎng)    發(fā)布于:2011-09-05 14:59:56

  概述

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

  BSP(Board Support Packet——板級支持包)是介于底層硬件和上層軟件之間的底層軟件開發(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文件在vxworks/target/config/all和vxworks/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。   還有一個常識就是正版用的人多了就成了盜版了,正版用戶每人有一個正版序列號,主要用于升級和打補丁,所以鏡像和正版不能劃等號,主要是要有序列號。   當(dāng)然據(jù)傳正版鏡像會比盜版穩(wěn)定一點,據(jù)傳而已,另外還有和虛擬光驅(qū)關(guān)聯(lián)的鏡像文件。

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

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

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

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

  VxWorks 提供了一個快速靈活的與 ANSI C 兼容的 I/O 系統(tǒng),包括 UNIX 標準的Basic I/O(creat(), remove(), open(),close(), read(), write(), and ioctl()。),Buffer I/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文件為模板,在 ornado argetconfig目錄下創(chuàng)建用戶的BSP目錄bspname,把 ornado argetconfigall下的文件和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:boot ROM的入口地址(以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配置的是HIGH VECTORS,就設(shè)置入口地址為0xFFFF0000,否則設(shè)置入口地址為0x00000000;

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

  ·初始化堆棧指針pc和sp:堆棧指針sp指向STACK_ADRS,這個宏的定義為當(dāng)鏡像為駐留ROM時,該宏值為_sdata,當(dāng)鏡像為非駐留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菜單中選擇Build Boot ROM來創(chuàng)建各種類型的Boot ROM;

  結(jié)語

  我們已經(jīng)利用基于VxWorks的BSP開發(fā)包成功的進行了線纜調(diào)制解調(diào)器的底層軟件開發(fā)。在開發(fā)過程中深感BSP在整個系統(tǒng)軟件中的重要性——沒有正確的BSP軟件,整個系統(tǒng)的啟動和運行也不會正確。對同一目標板而言,不同操作系統(tǒng)的BSP在本質(zhì)上是一樣的,但是不同的操作系統(tǒng)將提供不同的支持庫,另外在BSP結(jié)構(gòu)上也可能會有所不同,在做BSP移植的時候應(yīng)該注意。



  

參考文獻:

[1]. TOOL datasheet http://m.58mhw.cn/datasheet/TOOL_2550708.html.
[2]. ARM7TDMI datasheet http://m.58mhw.cn/datasheet/ARM7TDMI_139812.html.


版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!