日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

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

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

  概述

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

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

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

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

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

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

  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)作個(gè)ghost鏡像。這樣可以在很短時(shí)間,很方便的還原出一個(gè)完整的系統(tǒng)來。鏡像可以說是一種文件,比如iso,gho都屬于鏡像文件,鏡像文件可以直接刻錄到光盤中,也可以用虛擬光驅(qū)打開。

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

  可鏡像(Loadable Image):實(shí)際包括兩部分,一是vxWorks,二是boot ROM,兩部分是獨(dú)立創(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)啟動(dòng)流程

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

  VxWorks 提供了一個(gè)快速靈活的與 ANSI C 兼容的 I/O 系統(tǒng),包括 UNIX 標(biāo)準(zhǔn)的Basic I/O(creat(), remove(), open(),close(), read(), write(), and ioctl()。),Buffer I/O (fopen(), fclose(), fread(), fwrite(), getc(), putc()) 以及POSIX 標(biāo)準(zhǔn)的異步 I/O。VxWorks 包括以下驅(qū)動(dòng)程序:網(wǎng)絡(luò)驅(qū)動(dòng)、管道驅(qū)動(dòng)、RAM盤驅(qū)動(dòng)、SCSI驅(qū)動(dòng)、鍵盤驅(qū)動(dòng)、顯示驅(qū)動(dòng)、磁盤驅(qū)動(dòng)、并口驅(qū)動(dòng)等

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

  BSP的開發(fā)過程

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

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

  修改模板程序

  Makefile

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

  ·CPU:目標(biāo)板CPU的類型;

  ·TOOL:主機(jī)的make工具,為GNU;

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

  ·TARGET_DIR:BSP目錄名;

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

  ·BOARD:目標(biāo)板名;

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

  ·MACH_EXTRA:擴(kuò)展文件,用戶可以加入自己的目標(biāo)模塊;

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

  ·$(TGT_DIR)/h/make/defs.bsp:Vxworks系統(tǒng)運(yùn)行的標(biāo)準(zhǔn)變量定義;

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

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

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

  BOOTINIT=bootInit.c

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

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

  bspname.h

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

  ·中斷向量/級(jí)別

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

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

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

  config.h

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

  romInit.s

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

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

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

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

  ·初始化cache,屏蔽cache;

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

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

  sysALib.s

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

  創(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ā)包成功的進(jìn)行了線纜調(diào)制解調(diào)器的底層軟件開發(fā)。在開發(fā)過程中深感BSP在整個(gè)系統(tǒng)軟件中的重要性——沒有正確的BSP軟件,整個(gè)系統(tǒng)的啟動(dòng)和運(yùn)行也不會(huì)正確。對(duì)同一目標(biāo)板而言,不同操作系統(tǒng)的BSP在本質(zhì)上是一樣的,但是不同的操作系統(tǒng)將提供不同的支持庫,另外在BSP結(jié)構(gòu)上也可能會(huì)有所不同,在做BSP移植的時(shí)候應(yīng)該注意。



  

參考文獻(xiàn):

[1]. TOOL datasheet http://www.hbjingang.com/datasheet/TOOL_2550708.html.
[2]. ARM7TDMI datasheet http://www.hbjingang.com/datasheet/ARM7TDMI_139812.html.


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

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

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

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

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

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

在線人工客服

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

0571-85317607

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

13606545031

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

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

建議反饋

聯(lián)系人:

聯(lián)系方式:

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