關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于VxWorks的VME從板驅動設計與實現(xiàn)

        基于VxWorks的VME從板驅動設計與實現(xiàn)

        作者: 時間:2013-06-14 來源:網(wǎng)絡 收藏

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

        本文引用地址:http://www.104case.com/article/159333.htm

        k.JPG


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

        5 數(shù)據(jù)傳輸測試
        VME數(shù)據(jù)傳輸測試主要是測試總線數(shù)據(jù)傳輸?shù)目煽啃裕挥锌偩€數(shù)據(jù)傳輸?shù)目煽啃阅軌虮WC,驅動才能穩(wěn)定的運行,其測試的方法是通過隨機地讀寫從板的隨機讀寫寄存器來完成的,整個測試中為了模擬操作系統(tǒng)在有負載情況下的運行效果,增加了一些定時器操作,
        其測試的程序流程圖如圖7所示。

        l.JPG


        使用這種測試的方法最終得到測試的結果如表3所示。從測試結果可以看出,數(shù)據(jù)傳輸?shù)臏蚀_性比較好,通過閱讀VG5-7457PowerPC的板級支持包可以發(fā)現(xiàn)其實現(xiàn)VME數(shù)據(jù)總線操作的函數(shù)都有原子操作過程,以此保證數(shù)據(jù)傳輸?shù)目煽啃浴A己玫?a class="contentlabel" href="http://www.104case.com/news/listbylabel/label/VME總線">VME總線傳輸特性為驅動的實現(xiàn)提供了良好的基礎。

        m.JPG



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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 巫溪县| 泸定县| 鹤壁市| 马尔康县| 黎城县| 平遥县| 宁蒗| 赤峰市| 云安县| 依安县| 竹北市| 民县| 徐水县| 竹溪县| 富顺县| 青河县| 临猗县| 旌德县| 繁昌县| 白城市| 手机| 晋中市| 滦平县| 和田县| 泸定县| 铜陵市| 新营市| 招远市| 山西省| 商水县| 繁峙县| 光山县| 察雅县| 利川市| 祥云县| 西乌珠穆沁旗| 吐鲁番市| 永修县| 闽侯县| 凯里市| 大姚县|