關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > Windows CE6.0的DM9000A流接口驅(qū)動(dòng)開發(fā)

        Windows CE6.0的DM9000A流接口驅(qū)動(dòng)開發(fā)

        作者: 時(shí)間:2012-05-23 來源:網(wǎng)絡(luò) 收藏

        發(fā)送函數(shù)dm9000_send(pInBuf,nInBufSize)獲取流接口函數(shù)傳入的發(fā)送數(shù)據(jù)指針和相應(yīng)數(shù)據(jù)長(zhǎng)度,然后驅(qū)動(dòng)DM發(fā)送數(shù)據(jù),其工作流程如圖4所示。

        g.JPG

        4 CE 6.0系統(tǒng)下流驅(qū)動(dòng)程序的使用

        4.1 流驅(qū)動(dòng)程序的加載

        流接口驅(qū)動(dòng)程序需要按一定的方式配置后才能被系統(tǒng)識(shí)別并編譯。其配置的主要流程如圖5所示。

        h.JPG

        將流驅(qū)動(dòng)程序加入定制系統(tǒng)之后還需要添加相應(yīng)的注冊(cè)表啟動(dòng)信息,在platform.reg文件中添加以下內(nèi)容:

        [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\DM9]

        “Index”=dword:1

        “Order”=dword:30

        “Prefix”=“DM9”

        “DLL”=“DM9.dll”

        為使生成的DLL文件能夠被包括在燒寫文件中并下載到開發(fā)板上,還需在platform.bib文件中加入相應(yīng)代碼,內(nèi)容如下:

        IF BSP_NODM91

        DM9.dll $(FLATRELEASEDIR)\DM9.dll NK SHK

        ENDIF BSP_NODM9 !

        經(jīng)過以上的配置之后,流接口驅(qū)動(dòng)程序已經(jīng)配置完成,只需要對(duì) CE 6.0的系統(tǒng)定制工程重新編譯,并將生成的鏡像文件下載到開發(fā)板上,即可通過文件API操作DM的數(shù)據(jù)收發(fā)。

        4.2 應(yīng)用程序?qū)α黩?qū)動(dòng)程序的調(diào)用

        CE啟動(dòng)時(shí)會(huì)自動(dòng)枚舉注冊(cè)表HKEY_LOCAL_MACHINE\Drivers\BuiltIn目錄下的驅(qū)動(dòng)信息,并加載相應(yīng)驅(qū)動(dòng)程序的動(dòng)態(tài)鏈接庫,然后執(zhí)行初始化接口函數(shù)——DM9_Init()。在驅(qū)動(dòng)程序成功加載之后,應(yīng)用程序?qū)τ布牟僮骶椭恍枵{(diào)用文件API便可實(shí)現(xiàn),但前提是相應(yīng)的操作必須在驅(qū)動(dòng)程序中有定義,并且分配了操作碼。對(duì)于DM的數(shù)據(jù)發(fā)送,其文件API代碼如下:

        ……

        hDm9=CreateFile(TEXT(“DM91:”),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

        該代碼調(diào)用文件API打開設(shè)備進(jìn)行讀寫操作,得到文件操作的句柄名hDm9。

        DeviceIoControl(hDm9,DM9_SendFrame,&SendData,sizeof(SendData),NULL,0,&dwReturn,Null);

        ……

        該代碼調(diào)用文件API對(duì)設(shè)備發(fā)送操作命令。其中,hDm9告訴系統(tǒng)要操作的設(shè)備為DM9000A;DM9 SendFrame為發(fā)送數(shù)據(jù)的操作碼,這必須與驅(qū)動(dòng)程序中定義的相一致,也就是讓系統(tǒng)知道進(jìn)行的是什么操作;&SendData為發(fā)送的數(shù)據(jù)幀首地址;sizeof(SendData)為發(fā)送數(shù)據(jù)的長(zhǎng)度……



        關(guān)鍵詞: Windows 9000A CE6

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 峨山| 万安县| 文安县| 广昌县| 资溪县| 宣武区| 南汇区| 柞水县| 信丰县| 刚察县| 长岭县| 汝阳县| 湟源县| 玉树县| 司法| 涞水县| 长岭县| 密云县| 涞源县| 沁水县| 承德县| 耿马| 若羌县| 昂仁县| 舞阳县| 旌德县| 天镇县| 定安县| 永嘉县| 吴堡县| 建阳市| 朔州市| 那坡县| 康保县| 湘阴县| 玛曲县| 原平市| 吉安市| 临澧县| 镇雄县| 墨竹工卡县|