国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Pentium4處理器的VxWorks板級(jí)支持包設(shè)計(jì)

2011-03-31 20:26
電子科技 2011年6期
關(guān)鍵詞:驅(qū)動(dòng)程序網(wǎng)卡鼠標(biāo)

王 柯

(中國(guó)電子科技集團(tuán)公司第20研究所通信事業(yè)部,陜西西安 710068)

VxWorks操作系統(tǒng)是美國(guó)風(fēng)河公司于1983年設(shè)計(jì)開發(fā)的一套具有微內(nèi)核、高性能、可伸縮的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)VxWorks良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在實(shí)時(shí)性要求較高的領(lǐng)域[1]。實(shí)時(shí)嵌入式操作系統(tǒng)VxWorks已經(jīng)在國(guó)內(nèi)的嵌入式系統(tǒng)開發(fā)中占據(jù)著重要地位。

1 BSP概念

在嵌入式系統(tǒng)中,板極支持包BSP(Board Support Package)是介于底層硬件和操作系統(tǒng)之間的一個(gè)接口,主要作用是初始化硬件和軟件系統(tǒng)。設(shè)備驅(qū)動(dòng)程序旨在隱藏底層硬件細(xì)節(jié),為上層應(yīng)用程序提供統(tǒng)一的API函數(shù)接口。在嵌入式系統(tǒng)的研發(fā)過程中,BSP和設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)是關(guān)鍵環(huán)節(jié),它的設(shè)計(jì)質(zhì)量直接影響到整個(gè)系統(tǒng)的可靠性和穩(wěn)定性[1]。BSP具體功能包括:(1)單板硬件初始化,主要是CPU的初始化,為整個(gè)軟件系統(tǒng)提供底層硬件支持。(2)為操作系統(tǒng)提供設(shè)備驅(qū)動(dòng)程序和系統(tǒng)中斷服務(wù)程序。(3)定制操作系統(tǒng)的功能,為軟件系統(tǒng)提供一個(gè)實(shí)時(shí)多任務(wù)的運(yùn)行環(huán)境。(4)初始化操作系統(tǒng),為操作系統(tǒng)的正常運(yùn)行做好準(zhǔn)備。

BSP主要的兩部分組成為:初始化代碼,硬件驅(qū)動(dòng)程序。

BSP的初始化是指從上電復(fù)位開始直到Wind內(nèi)核和usrRoot()函數(shù)啟動(dòng)的這段時(shí)間內(nèi)系統(tǒng)的執(zhí)行過程。具體包括:CPU初始化;設(shè)備初始化以及系統(tǒng)初始化;CPU初始化CPU內(nèi)部寄存器;設(shè)備初始化智能I/O的寄存器,將板上設(shè)備接口與系統(tǒng)接口連通;系統(tǒng)初始化為系統(tǒng)的運(yùn)行準(zhǔn)備數(shù)據(jù)結(jié)構(gòu),進(jìn)行數(shù)據(jù)初始化[2]。

2 BSP開發(fā)環(huán)境及BSP移植目的

Tornado是風(fēng)河公司推出的集成開發(fā)調(diào)試環(huán)境,包含3部分:交叉開發(fā)工具和實(shí)用程序;運(yùn)行在目標(biāo)機(jī)上的實(shí)時(shí)操作系統(tǒng)VxWorks;連接宿主機(jī)和目標(biāo)機(jī)的多種通訊方式,如以太網(wǎng),串口線,仿真器等[2]。

開發(fā)環(huán)境及開發(fā)工具:開發(fā)板使用研華6186P4級(jí)主板,硬件配置為1 GB內(nèi)存、2.8 GHz雙核Pentium4 CPU、80 GB 5400轉(zhuǎn)IDE硬盤、板載VGA圖形控制器、雙 10/100Base-T網(wǎng)絡(luò)控制器、RTL81x9控制芯片網(wǎng)卡、開發(fā)軟件使用Tornado 2.2,宿主機(jī)安裝目錄為“C:Tornado 2.2“。

Tornado 2.2帶有PcPentium標(biāo)準(zhǔn)板級(jí)支持包,需要對(duì)其進(jìn)行移植。移植目的為:(1)支持Pentium4處理器。(2)支持IDE硬盤。(3)支持以太網(wǎng)接口(Intel 82557/RTL81X9)。(4)支持PS2鍵盤、鼠標(biāo)。(5)支持VGA圖形控制器。

BSP移植需要熟悉并掌握VxWorks映像種類,系統(tǒng)的啟動(dòng)順序和過程,以及BSP軟件包中各文件的組成和作用以及相應(yīng)的設(shè)置文件的修改[1]。

3 BSP移植實(shí)施步驟

實(shí)現(xiàn)BSP的移植有兩大步驟:

(1)修改VxWorks的配置頭文config.h中定義的相應(yīng)參數(shù),使編譯出來的系統(tǒng)引導(dǎo)程序Bootrom映象符合開發(fā)板的硬件條件[3]。本例中為修改硬盤、鍵盤、鼠標(biāo)、網(wǎng)卡、控制臺(tái)及啟動(dòng)條件等相關(guān)參數(shù)。

(2)在config.h添加原BSP中沒有的硬件定義,在BSP中添加相應(yīng)的VxWorks版本驅(qū)動(dòng)程序包,并修改相關(guān)文件。本例中需要添加RTL81X9網(wǎng)絡(luò)控制芯片的驅(qū)動(dòng)。

修改config.h中定義的相應(yīng)參數(shù)時(shí)應(yīng)復(fù)制一份純凈未作修改的C:Tornado2.2 argetconfig下的pcPentium文件夾,改名為6186,其后步驟如下:

1)打開目錄 C: ornado2.2 argetconfig6186下config.h文件。

2)指定 CPU類型:定位到“CPU auto detection with sysCpuProbe()that support Intel CPUs for now“,將CPU定義改為PENTIUM4。

#define CPU PENTIUM4/* for CPU conditionals in BSP*/

#define X86CPU_DEFAULT X86CPU_PENTIUM4/*for sysProcessor set in BSP*/

3)指定啟動(dòng)行命令:定位到“DEFAULT_BOOT_LINE”,修改啟動(dòng)命令行CPU==PENTIUM4分支定義如下

#elif(CPU==PENTIUM4)

#define DEFAULT_BOOT_LINE“ata=0,0(0,0)host:/ata0/vxWorks h = 192.168.1.3 e =192.168.1.4 u=target pw=target tn=target o=fei0”

其意義是:使用第0個(gè)ata控制器和第0個(gè)驅(qū)動(dòng);主機(jī)名稱為host;VxWorks映象下載的完整路徑是/ata0/vxWorks;宿主機(jī)IP為192.168.1.3;目標(biāo)機(jī)IP為192.168.1.4;下載VxWorks映象的FTP服務(wù)器的用戶名為target;FTP密碼為target;目標(biāo)機(jī)名稱為target;通過網(wǎng)口1(fei0,Intel 82557芯片控制)使用WDB(WindDebug)協(xié)議。

4)指定啟動(dòng)映象路徑:定位到”BOOTROM_BIN”,指定 Bootrom映象路徑為“/ata0/vxworks/bootrom.bin”。

5)指定網(wǎng)卡驅(qū)動(dòng)程序:定位到“Network driver options”設(shè)置 INCLUDE_END處于定義狀態(tài);設(shè)置INCLUDE_FEI_END(Intel 82557芯片)處于定義狀態(tài)(define);添加RTL81X9芯片相應(yīng)定義如下

#define INCLUDE_END/*Enhanced Network Driver Support*/

#define INCLUDE_FEI_END/*(END)Intel 8255[7/8/9]PCI interface*/

#define INCLUDE_RTL_81X9_END/*(END)Realtek 81x9Fast Ethernet Controller*/

定位到“/* Include PCI support for drivers&libraries that require it.*/”,添加 define(INCLUDE_RTL_81X9_END)分支條件。

6)指定硬盤及文件系統(tǒng):定位到“/* driver and file system options*/”修改文件系統(tǒng)及硬盤相應(yīng)參數(shù)如下

#define INCLUDE_DOSFS/* include dosFs file system*/

#undef INCLUDE_FD/* include floppy disk driver*/

#define INCLUDE_ATA/* include IDE/EIDE(ATA)hard disk driver*/

定位到“/* ATA controller one ataResources[]parameters*/”修改IDE硬盤相關(guān)參數(shù)如下:

#define ATA1_CTRL_TYPE(IDE_LOCAL)/*ATA 1 logical type*/

#define ATA1_NUM_DRIVES(0)/* ATA 1number drives present*/

#define ATA1_INT_LVL(0x0f)/*ATA 1 interrupt level*/

定位到“/* Warm boot(reboot)devices and parameters*/”,修改 SYS_WARM_TYPE值為 SYS_WARM_ATA使系統(tǒng)由硬盤熱啟動(dòng)。

7)指定外部輸入設(shè)備定義:定位到“INCLUDE_PC_CONSOLE”,設(shè)置為定義狀態(tài)(define)。VxWorks缺省狀態(tài)不接受外部輸入,該設(shè)置用于對(duì)控制臺(tái)的支持,也是使用鍵盤、鼠標(biāo)等外部輸入設(shè)備的前提。

8)指定圖形接口定義:添加 INCLUDE_WINDML、INCLUDE_WINDML_PS2_KEYBOARD、INCLUDE_WINDML_PS2_POINTER3個(gè)選項(xiàng)并設(shè)置為定義狀態(tài)。該項(xiàng)設(shè)置用于使用WINDML(Wind Media Library)提供基本的圖形、視頻和聲頻技術(shù)以及提供設(shè)計(jì)標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序框架,后兩個(gè)設(shè)置用于在圖形界面下使用PS2鍵盤及鼠標(biāo)。

經(jīng)上述操作后,config.h中定義的相應(yīng)參數(shù)已修改完畢,并添加了RTL81x9芯片定義,下一步需要添加相應(yīng)的VxWorks版本驅(qū)動(dòng)程序包,步驟如下:

①在Realtek主頁上有提供for VxWorks的81X9系列的驅(qū)動(dòng),下載后解壓縮得到驅(qū)動(dòng)程序包。

②將驅(qū)動(dòng)程序包中的configNet.h和sysLib.c覆蓋6186中原有文件,congfig.h需要修改的部分在前一步中已經(jīng)添加了相應(yīng)定義。

③將srcdrvendunsupported下的rtl81x9.c和hdrvendunsupported下的rtl81x9.h拷貝到當(dāng)前BSP目錄下。

④修改sysRtl81x9End.c和rtl81x9.c對(duì)rtl81x9.h頭文件引用的路徑為#include“drv/end/unsupported/rtl81x9.h”。修改為#include“rtl81x9.h”。

⑤修改BSP文件夾中的Makefile文件,修改文件內(nèi)容為

TARGET_DIR=6186

MACH_EXTRA=rtl81x9.o

將rtl81x9.o作為外部輸入加入系統(tǒng)。

上述修改完成打開Torando,選擇“Build”菜單的“Build Boot ROM”選擇BSP為6186,Image選擇“bootrom.bin”,選擇“OK”生成映象文件。將該映象文件導(dǎo)入VxWorks目標(biāo)機(jī)中啟動(dòng)系統(tǒng)。輸入“devs”命令,可以看到系統(tǒng)連接的外設(shè)名稱及驅(qū)動(dòng),其中”/pcConsole/1”為鍵盤、”/ata0“為硬盤、”/pointer/0”為鼠標(biāo)。輸入“ifShow”可以看到3個(gè)網(wǎng)絡(luò)接口,分別為fei<unit number 0>、rtl<unit number 0>、fei<unit number 1>及各個(gè)接口的參數(shù),至此各設(shè)備驅(qū)動(dòng)正常,BSP移植成功。

4 結(jié)束語

在介紹BSP的概念和作用的基礎(chǔ)上,重點(diǎn)介紹了VxWorks的BSP設(shè)計(jì)中需要注意的問題及移植時(shí)的具體步驟。以研華6186系列Pentium4開發(fā)板為例,進(jìn)行了BSP的移植及外設(shè)驅(qū)動(dòng)的添加。盡管目標(biāo)板硬件不同,處理器類型、BSP的實(shí)現(xiàn)也不盡相同,但基本思想是一致的。

[1] 周伯平,張楊,吳瓊.VxWorks下設(shè)備驅(qū)動(dòng)程序及BSP開發(fā)指南[M].北京:中國(guó)電力出版社,2004.

[2] 喬從連.VxWorks系統(tǒng)的BSP概念及啟動(dòng)過程[J].艦船電子對(duì)抗,2005(1):120-125.

[3] 高超,郝燕玲,吳潤(rùn).VxWorks下網(wǎng)卡驅(qū)動(dòng)程序的開發(fā)[J].微計(jì)算機(jī)信息,2004(9):78-80.

猜你喜歡
驅(qū)動(dòng)程序網(wǎng)卡鼠標(biāo)
Progress in Neural NLP: Modeling, Learning, and Reasoning
Server 2016網(wǎng)卡組合模式
計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
RHEL7 Network Teaming(網(wǎng)卡綁定)配置與測(cè)試
基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動(dòng)程序設(shè)計(jì)
USB故障又一原因
妙用鼠標(biāo)驅(qū)動(dòng)
45歲的鼠標(biāo)
驅(qū)動(dòng)程序更新與推薦