- 相關(guān)推薦
Vxworks嵌入式操作系統(tǒng)下網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
作者Email: cai_yang@etang.com
摘 要:本文主要介紹在Vxworks操作系統(tǒng)下網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)、調(diào)試方法以及將其加入系統(tǒng)內(nèi)核的配置方法。
關(guān)鍵詞:Vxworks 嵌入式操作系統(tǒng) 網(wǎng)絡(luò)設(shè)備
引 言
VxWorks操作系統(tǒng)是美國(guó)WindRiver公司于1983年設(shè)計(jì)開(kāi)發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),是嵌入式開(kāi)發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶(hù)開(kāi)發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占據(jù)一席之地。它以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機(jī)導(dǎo)航等。
1 嵌入式系統(tǒng)
嵌入式系統(tǒng)是以嵌入式計(jì)算機(jī)為技術(shù)核心,面向用戶(hù)、面向產(chǎn)品、面向應(yīng)用,軟硬件可裁減的,適用于對(duì)功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。和通用計(jì)算機(jī)不同,嵌入式系統(tǒng)是針對(duì)具體應(yīng)用的專(zhuān)用系統(tǒng),目的就是要把一切變得更簡(jiǎn)單、更方便、更普遍、更適用;它的硬件和軟件都必須高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭(zhēng)在同樣的硅片面積上實(shí)現(xiàn)更高的性能。
嵌入式系統(tǒng)主要由嵌入式處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及特定的應(yīng)用程序等四部分組成,是集軟硬件于一體的可獨(dú)立工作的“器件”;用于實(shí)現(xiàn)對(duì)其它設(shè)備的控制、監(jiān)視或管理等功能。
嵌入式系統(tǒng)應(yīng)具有的特點(diǎn)是:要求高可靠性;在惡劣的環(huán)境或突然斷電的情況下,要求系統(tǒng)仍然能夠正常工作;許多嵌入式應(yīng)用要求實(shí)時(shí)處理能力,這就要求嵌入式操作系統(tǒng)(EOS)具有實(shí)時(shí)處理能力;嵌入式系統(tǒng)中的軟件代碼要求高質(zhì)量、高可靠性,一般都固化在只讀存儲(chǔ)器中或閃存中,也就是說(shuō)軟件要求固態(tài)化存儲(chǔ),而不是存儲(chǔ)在磁盤(pán)等載體中。
2 設(shè)備驅(qū)動(dòng)程序
Vxworks5.4中驅(qū)動(dòng)程序主要分為三種:字符、塊以及網(wǎng)絡(luò)驅(qū)動(dòng)程序。本文所介紹的網(wǎng)卡驅(qū)動(dòng)程序則屬于網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序。
2.1 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
網(wǎng)絡(luò)的各功能部件圖1所示,網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序?qū)嶋H上是處理硬件和上層協(xié)議之間的接口程序。網(wǎng)絡(luò)傳輸協(xié)議層分發(fā)數(shù)據(jù)在應(yīng)用程序接口和網(wǎng)絡(luò)接口之間。網(wǎng)絡(luò)化網(wǎng)絡(luò)協(xié)議(如IP協(xié)議)發(fā)送數(shù)據(jù)在網(wǎng)絡(luò)主機(jī)之間。連接/接口層使能主機(jī)隸屬于硬件到相同物理媒質(zhì)的通信。
在Vxworks5.4中,網(wǎng)卡驅(qū)動(dòng)程序又分為END(Enhanced Network Driver)和BSD兩種。它們分別處于如圖2所示結(jié)構(gòu)中。
2.1.1 BSD驅(qū)動(dòng)程序設(shè)計(jì)
在Vxworks5.4中,網(wǎng)絡(luò)驅(qū)動(dòng)程序都是基于BSD UNIX版本4.3基礎(chǔ)上的,這些驅(qū)動(dòng)程序都定義在一個(gè)全局例程中,那就是attach子程序,xxattach( )子程序中包含5個(gè)函數(shù)指針,它們都被映射到ifnet結(jié)構(gòu)中,這5個(gè)函數(shù)可見(jiàn)表1,它們?cè)贗P協(xié)議層任何地方被調(diào)用。
表1 網(wǎng)絡(luò)接口處理
驅(qū)動(dòng)程序入口xxattach( )調(diào)用ether_attach( )來(lái)把上述5個(gè)函數(shù)映射到ifnet結(jié)構(gòu)中,ether_attach( )調(diào)用如下:
ether_attach(
(IFNET *)
【Vxworks嵌入式操作系統(tǒng)下網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)】相關(guān)文章:
QNX操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)模塊03-18
嵌入式Linux下CAN總線驅(qū)動(dòng)程序設(shè)計(jì)03-07
基于Vxworks實(shí)時(shí)操作系統(tǒng)的串口通信程序設(shè)計(jì)與實(shí)現(xiàn)03-18
I2C總線在uClinux操作系統(tǒng)下的驅(qū)動(dòng)程序設(shè)計(jì)11-22
基于嵌入式操作系統(tǒng)VxWorks的SCSI硬盤(pán)高速記錄系統(tǒng)03-18
基于嵌入式Linux的MPC8271 ATM驅(qū)動(dòng)程序設(shè)計(jì)03-30
WindowsCE.Net下CAN卡的驅(qū)動(dòng)程序設(shè)計(jì)03-20
windowsnt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)(2)03-18
windows nt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)03-18