<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于VxWorks的VME從板驅動(dòng)設計與實(shí)現

基于VxWorks的VME從板驅動(dòng)設計與實(shí)現

作者: 時(shí)間:2013-06-14 來(lái)源:網(wǎng)絡(luò ) 收藏

4.2 驅動(dòng)程序ioctrl方法的實(shí)現
驅動(dòng)程序的ioctrl方法在驅動(dòng)程序中具有重要地位,它除了要實(shí)現從板功能寄存器的設置及驅動(dòng)程序的查詢(xún)機制外,還要實(shí)現用戶(hù)信號處理函數的注冊工作,結合這些功能實(shí)現的ioctrl方法的框架代碼如下所示。
i.JPG
整個(gè)的ioctl方法由switch結構組成,這樣的結構代碼簡(jiǎn)單明了,易讀性和可維護性都很好,同時(shí)可以方便地通過(guò)擴充命令的方法來(lái)實(shí)現對從板功能寄存器多種多樣的操作,便于驅動(dòng)程序的重用。
4.3 驅動(dòng)程序read方法的買(mǎi)現
驅動(dòng)程序的read方法主要實(shí)現對緩沖區數據的讀取,同時(shí)它是實(shí)現數據阻塞操作的關(guān)鍵,read方法的程序流程圖如圖6所示。

本文引用地址:http://dyxdggzs.com/article/159333.htm

k.JPG


函數首先進(jìn)行參數的檢查及轉化;然后檢查緩沖區標志,如果緩沖區存在數據則直接讀出數據,如果緩沖區沒(méi)有數據,函數就會(huì )申請緩沖區的信號量而使任務(wù)處于掛起狀態(tài),當中斷處理任務(wù)處理完緩沖區后會(huì )發(fā)送一個(gè)信號量而使任務(wù)重新運行并且讀出緩沖區數據;函數最后是設置緩沖區標志,表示緩沖區數據已經(jīng)讀出。函數要與中斷處理任務(wù)進(jìn)行同步;讀取和設置緩沖區標志使用原子操作的方法,等待中斷處理任務(wù)設置緩沖區時(shí)使用了信號量的方式完成了同步。

5 數據傳輸測試
VME數據傳輸測試主要是測試總線(xiàn)數據傳輸的可靠性,只有總線(xiàn)數據傳輸的可靠性能夠保證,驅動(dòng)才能穩定的運行,其測試的方法是通過(guò)隨機地讀寫(xiě)從板的隨機讀寫(xiě)寄存器來(lái)完成的,整個(gè)測試中為了模擬操作系統在有負載情況下的運行效果,增加了一些定時(shí)器操作,
其測試的程序流程圖如圖7所示。

l.JPG


使用這種測試的方法最終得到測試的結果如表3所示。從測試結果可以看出,數據傳輸的準確性比較好,通過(guò)閱讀VG5-7457PowerPC的板級支持包可以發(fā)現其實(shí)現VME數據總線(xiàn)操作的函數都有原子操作過(guò)程,以此保證數據傳輸的可靠性。良好的傳輸特性為驅動(dòng)的實(shí)現提供了良好的基礎。

m.JPG



6 結論
設計了基于從板的驅動(dòng)程序框架,著(zhù)重介紹了驅動(dòng)程序的機制及這些機制的實(shí)現方法;在設計的整體上重點(diǎn)地考慮了驅動(dòng)程序的可維護性及可移轉性。采用這種方式建立起來(lái)的驅動(dòng)程序代碼的可讀性好,可維護性強,而且可以方便地移植到其他的應用場(chǎng)合。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>