• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關(guān) 閉

    新聞中心

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

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

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

    2 板的硬件結(jié)構(gòu)抽象
    從主板的VME地址空間上看從板的結(jié)構(gòu)圖如圖3所示。

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


    這樣的數(shù)據(jù)結(jié)構(gòu)設(shè)計實現(xiàn)了對從板的抽象,使得驅(qū)動程序具有良好的可移植性,方便的實現(xiàn)對多種板卡的驅(qū)動。
    3.2 數(shù)據(jù)傳輸機制設(shè)計
    驅(qū)動程序設(shè)計模仿了Linux操作系統(tǒng)實現(xiàn)了數(shù)據(jù)傳輸?shù)臋C制——查詢機制,數(shù)據(jù)傳輸?shù)淖枞麢C制及信號通知機制。
    查詢機制主要是指驅(qū)動程序為應(yīng)用程序提供查詢緩沖區(qū)標(biāo)志的接口,應(yīng)用程序可以隨時查詢緩沖區(qū)的狀態(tài)而不會引起任務(wù)狀態(tài)的變化;阻塞機制是調(diào)用獲取緩沖區(qū)的任務(wù)在緩沖區(qū)沒有數(shù)據(jù)時會使該任務(wù)處于阻塞狀態(tài),直到緩沖區(qū)數(shù)據(jù)可用獲得后,任務(wù)才會重新獲得運行;信號機制是應(yīng)用程序預(yù)先設(shè)定一個信號處理函數(shù),當(dāng)緩沖區(qū)有數(shù)據(jù)時,系統(tǒng)就會自動調(diào)用這個信號處理函數(shù)而完成用戶預(yù)定的操作;阻塞機制的任務(wù)圖示如圖4所示,這些機制的細節(jié)可用參考文獻。要實現(xiàn)這些功能需要實現(xiàn)中斷處理機制、字符設(shè)備操作的ioctrl方法和read方法。

    h.JPG



    4 驅(qū)動程序的實現(xiàn)
    4.1 中斷程序的實現(xiàn)
    中斷程序的實現(xiàn)上使用了上、下兩半部機制,上半部是中斷處理函數(shù),下半部是中斷處理任務(wù),上、下兩半部使用信號量進行同步,其中功能性的操作主要安排在中斷處理任務(wù)中。其程序框架如圖5所示。在中斷任務(wù)中實現(xiàn)對數(shù)據(jù)緩沖區(qū)的操作及緩沖區(qū)標(biāo)志操作,實現(xiàn)操作的過程中著重解決與ioctrl方法和read方法進行同步。

    j.JPG



    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 右玉县| 垣曲县| 上犹县| 红桥区| 浮山县| 永德县| 营山县| 青浦区| 铁岭县| 阿城市| 望江县| 若羌县| 陆丰市| 秦皇岛市| 兴国县| 汽车| 东宁县| 枣阳市| 东乡族自治县| 金山区| 永修县| 扶绥县| 许昌县| 株洲市| 莱州市| 隆林| 罗甸县| 元阳县| 普陀区| 抚顺市| 宁南县| 靖宇县| 杭锦后旗| 若尔盖县| 东宁县| 禹城市| 湖南省| 海口市| 浦北县| 昔阳县| 恩施市|