999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VxBus的設備驅動開發

2010-05-18 07:28:06趙永鋼韓國義
網絡安全與數據管理 2010年18期
關鍵詞:設備系統

趙永鋼,韓國義

(哈爾濱威克科技股份有限公司,黑龍江 哈爾濱150090)

VxBus是風河公司新的設備驅動程序架構,是VxWorks新增的特性,它是在Vx-Works6.2及以后版本被增加到VxWorks中的。在以前的版本中,驅動程序并沒有和工程配置集成到一起,如果要配置設備驅動,就要通過修改BSP目錄下的config.h和syslib.c文件來完成。而基于VxBus架構模型的好處是允許驅動的集成和配置在Workbench工程中完成。這就意味著在Workbench環境下,每個驅動程序都能通過可視化環境進行配置,都能夠按要求添加或刪除設備。本文結合基于PCI2040數據采集卡驅動的開發過程[1],分析了VxBus架構下驅動的設計實現。

1 VxBus簡介

VxBus是指在VxWorks中用于支持設備驅動的特有的架構,這種架構包含對minimal BSP的支持。它包括以下功能:①允許設備驅動匹配對應設備;②提供驅動程序訪問硬件的機制;③軟件其他部分訪問設備功能;④在VxWorks系統中,實現設備驅動的模塊化。VxBus在總線控制器驅動程序服務的支持下,能在總線上發現設備,并執行一些初始化工作,使驅動與硬件設備之間正常的通訊。

圖1是VxBus在整個系統中的位置示意圖。從圖1中可以看到,VxBus起到了輔助總線的作用,提供了對總線控制驅動的支持。

圖1 VxBus在整個系統中的位置示意圖

在VxWorks6.2版本發布前,設備驅動并不能被集成到VxWorks工程配置當中,為了添加或移出設備驅動,需要有豐富的BSP和驅動開發相關的知識[2]。并且在驅動被添加或移出時要去做一些管理VxWorks工程的額外的工作。作為VxWorks系統組件的一部分,VxBus消除了上面遇到的一些難題,各種驅動和支持組件的添加與刪除完全可以在Workbench工程中進行,而不需要BSP和驅動相關的知識,也不會在添加、刪除驅動時增加管理VxWorks工程的額外工作。因此大大方便了BSP的開發。

2 硬件介紹

TI公司推出的PCI2040是一款用于實現PCI局部總線與DSP之間無縫鏈接的專用芯片。在VxWorks實時操作系統環境下實現主機與DSP的通訊,系統利用PCI2040實現TMS320VC5410與主機的通訊。由于PCI2040是TI的配套專用芯片,硬件級的連接比較簡單,將對應的引腳連接即可。需要注意的是,未用的輸入信號線需要通過上拉電阻上拉至有效邏輯電平。TMS320VC5410的MCBSP0與TLC2548連接,實現8路12位A/D數據的采集。TMS320VC5410將采集到的數據通過PCI2040傳輸到主機上,數據在主機上得到進一步的處理。硬件連接框圖如圖2所示。

圖2 硬件連接框圖

3 驅動開發

基于VxBus架構下PCI2040設備驅動的開發主要包括設備的初始化、設備控制以及設備驅動如何以組件形式添加到Workbench配置界面中。下面分步介紹它的實現。

3.1 設備驅動初始化

設備的初始化,包含在BSP的初始化過程中[3],主要分三個階段,如圖3所示。

圖3 設備初始化流程圖

3.1.1 內核預初始化階段

系統上電啟動,CPU在上電時跳轉到一個指定的地址 ,開始執行指令,初始化內存和 CPU,然后是VxWorks的初始化處理。

在VxWorks內核預初始化早期,BSP的 sysHwInit()函數被執行[4],在這個函數中,設備驅動初始化工作第一步被執行。sysHwInit()函數執行一些早期的初始化,調用hardWareInterFaceInit()函數,執行初始化硬件內存分配機制,這步允許在系統內存池初始化之前,限制為設備驅動分配內存,這個函數接著調用hardWareInter-FaceBusInit(),在 hardWareInterFaceBusInit()函數中完成所有設備驅動和模塊的注冊工作。PCI2040的注冊函數是 vxbPci2040Register()。vxbPci2040Register()通過數據結構,向系統注冊一些設備初始化函數。其中涉及到三個數據結構:

在這個結構中,包含了初始化階段要調用的函數。下面的初始化過程會用到這些函數。

這個結構提供了應用軟件操作硬件的一些函數及方法。

最后這個結構在vxbPci2040Registe()中被使用。這個結構包括幾個驅動的初始化入口,其中Pci2040Probe()是PCI2040采集卡的硬件探測函數,該函數在VxBus初始化過程中檢測采集卡的數量,當檢測到采集卡時,將采集卡與驅動結合,形成設備的一個實例,以便應用程序使用。Pci204InstanceInit()函數在VxBus初始化的第一階段被調用,Pci204InstanceInit()函數只是簡單地確保設備的中斷被禁止。

當所有驅動在VxWorks注冊之后,hardWareInterFace-BusInit()和 hardWareInterFaceInit()函數返回,sysHwInit()完成非VxBus驅動的初始化并返回。sysHwInit()函數返回后,VxWorks內核被初始化。

3.1.2 內核自檢

在這個階段,內核在 sysHwInit2()中執行,BSP調用Pci2040InstanceInit2()函數[5]。在這個函數中,建立系統內存到設備空間的映射。關鍵部分代碼如下:

此時,完成內核服務初始化,并可以被驅動訪問。但是,中間層的服務仍然無效。

3.1.3 應用程序初始化驅動部分

在devInstanceInit2()函數最后,創建用戶的運行任務,并完成設備驅動的初始化。在這個階段,Pci2040InstanceConnect()函數被調用,完成最后的初始化工作,在這個函數中,主要是建立中斷與中斷服務程序的連接。

至此,設備驅動的初始化完成。

3.2 驅動程序的配置

采用VxBus驅動的一個主要優點是:設備的驅動程序可以被看成VxWorks系統的一個組件,通過集成的Workbench開發環境來配置設備驅動。為了實現這一功能,開發的驅動需要增加一些額外的擴展文件。標準VxWorks設備驅動有一個最小的文件集,對于大多數Vx-Works設備驅動,最小的設備驅動集要求有6個單獨的文件[6]。PCI2040數據采集卡需要有以下文件:

·一個驅動源文件PCI2040.c,執行驅動運行邏輯,包括PCI2040驅動的實現代碼。

·一個組件描述文件PCI2040.cdf,允許集成驅動到VxWorks開發工具Workbench當中。

·一個PCI2040.dc文件,提供驅動注冊函數原型。

·一個PCI2040.dr文件,提供一個調用注冊函數的C語言代碼段。

·一個readme文件 ,提供版本信息。

·一個makefile文件,提供建立驅動的編譯規則。

當上述文件在workbench環境下進行相應的配置后,PCI2040的設備驅動就會以組件的形式出現在開發工程的Kernel Configuration選項中,可以方便地進行PCI2040驅動配置。

4 應用程序與驅動的通信

為了使設備和驅動能夠在VxWorks系統中使用,讓應用程序、中間件、VxWorks內核模塊訪問設備,執行一些操作,最基本的方法是在VxWorks中采用VxBus方法來實現硬件設備的訪問。VxBus方法是在驅動中公開一個入口,使VxBus中API函數可以調用這些入口函數。在PCI2040初始化階段,Pci2040Methods結構中注冊的函數就是在驅動中公開的函數,用于對PCI2040的操作。

例如,通過PCI2040完成對DSP數據寄存器的訪問

struct vxbDriverControl ctrl;

vxbDevMethodRun(DEVMETHOD_CALL(ReadHPID),&ctrl);

vxbDevMethodRun()函數夠被用于調用一個指定的驅動方法,這個函數反復查找所有的實例,并檢查每一個,看是否有指定公開申明的方法,如果實例有指定的方法,vxbDevMethodRun()調用方法函數。

為了避免重復遍歷在系統上的所有實例,可以用vxbDevMethodGet()函數找出驅動函數相對應的驅動方法 ,然后通過下面代碼完成函數調用。

在PCI2040的數據采集卡中,通常是DSP在采集完數據后,通過中斷通知主機,去讀取數據。下面是中斷服務相關代碼。

采用基于VxBus架構來開發PCI2040數據采集卡的驅動,通過擴展文件實現驅動的配置。與簡單的非VxBus驅動相比,顯然增加了工作量,然而對于基于多個BSP設備的復雜的驅動,VxBus驅動是優于非VxBus驅動的。通過實際運用證明,所開發采集卡的驅動能夠穩定運行,并且能很方便地將該驅動移植到其他的系統。

[1]高超,郝燕玲,吳潤.VxWorks下網卡驅動程序的開發[J].微計算機信息.2004(9):18-20.

[2]周啟平,張楊.VxWorks下設備驅動程序及BSP開發指南[M].北京.中國電力出版社,2004.

[3]VxWorks Device Driver Developer′s Guide Wind River Systems,Inc.2007.1,6.6

[4]VxWorks Device Driver Developer's Guide Volume 2,6.6.Wind River Systems,Inc.2007.2,6.6

[5]VxWorks Device Driver Developer's Guide Volume 3,6.6.Wind River Systems,Inc.2007.3,6.6

[6]BSP Developer's Guide,6.6 Wind River Systems,Inc.2007.

猜你喜歡
設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 99热国产这里只有精品无卡顿"| 国产欧美日韩免费| 91av国产在线| 国产女人综合久久精品视| 99热最新网址| 午夜三级在线| 欧美日韩成人在线观看| 国产欧美精品午夜在线播放| 精品国产www| 亚洲免费成人网| 国产成人亚洲精品蜜芽影院| 亚洲欧美不卡中文字幕| 亚洲欧州色色免费AV| 国产日本视频91| 2020久久国产综合精品swag| 日韩毛片视频| 91毛片网| 97精品久久久大香线焦| 好紧太爽了视频免费无码| 成人午夜免费视频| 99久久人妻精品免费二区| 永久在线精品免费视频观看| 久夜色精品国产噜噜| 精品久久综合1区2区3区激情| 国产成人乱无码视频| 中文字幕永久视频| AV熟女乱| 精品久久综合1区2区3区激情| 一区二区日韩国产精久久| 中国一级特黄视频| 人妻精品久久久无码区色视| 亚洲男人的天堂在线观看| 久久人体视频| 无码国产伊人| 成人国产精品视频频| 9久久伊人精品综合| 亚洲国产精品国自产拍A| 欧美第二区| 九九视频在线免费观看| 国产精品一区不卡| 亚洲国产一区在线观看| 色综合手机在线| 欧洲精品视频在线观看| 色色中文字幕| 永久免费精品视频| 伊人成人在线视频| 中文字幕第4页| 亚洲高清国产拍精品26u| AV无码一区二区三区四区| 波多野结衣AV无码久久一区| 国产成人资源| 色精品视频| 久久国产高潮流白浆免费观看| 97在线视频免费观看| 久久semm亚洲国产| 婷婷开心中文字幕| 亚洲中文字幕av无码区| 亚洲女同一区二区| 亚洲视频在线观看免费视频| 久久久国产精品无码专区| 2020国产精品视频| 日韩中文字幕亚洲无线码| 久久精品人人做人人爽97| 国产午夜精品鲁丝片| 久久国产精品夜色| 天堂久久久久久中文字幕| 亚洲嫩模喷白浆| 自慰网址在线观看| 精品伊人久久久香线蕉| 97在线免费| 欧美亚洲国产精品第一页| 91人妻日韩人妻无码专区精品| 91麻豆国产视频| 亚洲va视频| 色老头综合网| 国产av剧情无码精品色午夜| 日韩欧美中文字幕在线精品| 国产本道久久一区二区三区| 国产午夜一级毛片| 91免费片| 国产主播福利在线观看| 精品无码一区二区在线观看|