色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Windows CE的SPI接口驅(qū)動程序及與應(yīng)用程序交互的設(shè)計

          基于Windows CE的SPI接口驅(qū)動程序及與應(yīng)用程序交互的設(shè)計

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










          需要說明的是,在本程序中使用了DDK中MmMapIoSpace庫函數(shù),故另需在頭文件中添加#include和#pragma comment(lib,ceddk.lib)。至此,g_Reg在其他的驅(qū)動實現(xiàn)函數(shù)中就可以調(diào)用,直接讀寫其指向的寄存器的代碼即可完成相關(guān)的操作。還需要實現(xiàn)的函數(shù)有:_Deinit、_Read、SPI_write、SPI_Seek、SPI_Open、SPI_Close、SPI_IOCntrol。限于篇幅,本文僅給出驅(qū)動初始化的代碼。

          3.3 驅(qū)動與的通信

          中,用戶模式下每個進程與其他進程所占有的內(nèi)存空間被虛擬內(nèi)存機制隔離,進程間無法實現(xiàn)直接互訪。在通信過程中,位于device.exe的進程空間中,由于上述原因,發(fā)起的單向通信存在困難。通常的解決方法是在內(nèi)核空間中共享同步對象,建立消息隊列或者通過指針映射來完成。上述方法都無法回避進程間的數(shù)據(jù)復(fù)制過程,因而只適用于少量的數(shù)據(jù)傳輸。對于大量的數(shù)據(jù)或者實時性要求較高的情況,可以在虛擬地址為Ox4200 0000~0x7fff ffff的空間中建立命名的內(nèi)存映射來實現(xiàn)內(nèi)存共享,從而能夠避免數(shù)據(jù)在進程空間中的復(fù)制。相關(guān)的API為CreateFileMapping和MapView()fFile。

          3.4 驅(qū)動程序的封裝和安裝

          驅(qū)動函數(shù)編寫完后將其以dll的形式導(dǎo)出,再編寫一個簡單的注冊表文件,指明驅(qū)動安裝的路徑、前綴以及索引。至此驅(qū)動程序工作就完成了,將驅(qū)動及注冊表添加到當前的平臺中即可。

          結(jié) 語

          本文詳細介紹了Platform Builder下SPI驅(qū)動程序以及驅(qū)動程序同應(yīng)用程序的實現(xiàn)。驅(qū)動例程已經(jīng)成功地應(yīng)用于nRF2401的嵌入式系統(tǒng)無線通信當中,具有很高的參考價值。

          本文引用地址:http://cafeforensic.com/article/149152.htm
          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉