在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式WinCE的I2C驅(qū)動(dòng)程序設(shè)計(jì)

            基于嵌入式WinCE的I2C驅(qū)動(dòng)程序設(shè)計(jì)

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

              reg = (PVOID)VirtualAlloc(0, sz, MEM_RESERVE, PAGE_NOACCESS);

            本文引用地址:http://www.biyoush.com/article/256368.htm

              if (reg) {

              if (!VirtualCopy(reg, addr, sz, PAGE_READWRITE | PAGE_NOCACHE )) {

              RETAILMSG( DEBUGMODE,( TEXT( "Initializing interrupt \n\r" ) ) );

              VirtualFree(reg, sz, MEM_RELEASE);

              reg = NULL;

              }

              }

              其中sz是申請(qǐng)的長(zhǎng)度,addr是申請(qǐng)?zhí)摂M地址空間的實(shí)際物理地址在Win CE中的映射地址。

              然后對(duì)申請(qǐng)到的虛擬地址進(jìn)行操作,安裝Windows中的流驅(qū)動(dòng)的模型進(jìn)行驅(qū)動(dòng)的編寫(xiě),主要包括下面函數(shù)的編寫(xiě)。

              IIC_Init()

              在函數(shù)中,主要是對(duì)的初始化,主要語(yǔ)句如下:

              v_pIICregs = ( volatile IICreg *)IIC_RegAlloc((PVOID)IIC_BASE, sizeof(IICreg));

              v_pIOPregs = ( volatile IOPreg *)IOP_RegAlloc((PVOID)IOP_BASE, sizeof(IOPreg));

              v_pIOPregs->rGPEUP|= 0xc000;

              v_pIOPregs->rGPECON |= 0xa00000;

              v_pIICregs->rIICCON = (1<<7) | (0<<6) | (1<<5) | (0xf);

              v_pIICregs->rIICADD= 0x10;

              v_pIICregs->rIICSTAT = 0x10;

              VirtualFree( ( PVOID )v_pIOPregs,sizeof( IOPreg ),MEM_RELEASE );

              v_pIOPregs = NULL;

              if ( !S

              tartDispatchThread( pIIcHead) )

              { IIC_Deinit( pIIcHead );return ( NULL );}在StartDispatchThread()函數(shù)中,主要是創(chuàng)建線程、關(guān)聯(lián)事件和中斷,主要語(yǔ)句如下:

              InterruptInitialize( 36,pIicHead->hIicEvent,NULL,0 );//關(guān)聯(lián)時(shí)間和中斷

              CreateThread( NULL,0,IicDispatchThread,pIicHead,0,NULL );//創(chuàng)建線程等待時(shí)間

              在IicDispatchThread()函數(shù)中,主要是等待中斷的產(chǎn)生,然后去執(zhí)行:WaitReturn = WaitForSingleObject( pIicHead->hIicEvent,INFINITE );

              IicEventHandler( pIicHead );//事件處理函數(shù)

              InterruptDone( 36 );

              最后,在函數(shù)IIC_Open、IIC_Read、IIC_Write中,對(duì)各個(gè)寄存器進(jìn)行操作,進(jìn)行數(shù)據(jù)的賦值,得到讀取的數(shù)據(jù)和發(fā)送數(shù)據(jù)。

              4 驅(qū)動(dòng)的封裝和添加到Windows CE中

              通過(guò)上面的工作,能編譯一個(gè)DLL函數(shù),但這還不能叫流接口驅(qū)動(dòng)程序。因?yàn)樗慕涌诤瘮?shù)還沒(méi)有導(dǎo)出,還需要告訴鏈接程序需要輸出什么樣的函數(shù),為此要建立一個(gè)自己的def文件,可以用記事本建一個(gè),取名mydrive.Def:

              LIBRARY MyDriver

              EXPORTS

              IIC_Close

              IIC_Deinit

              IIC_Init

              IIC_IOControl

              IIC_Open

              IIC_PowerDown

              IIC_PowerUp

              IIC_Read

              IIC_Seek

              IIC_Write

              然后同樣用記事本編寫(xiě)一個(gè)注冊(cè)表文件,取名為mydrive.reg:

              [HKEY_LOCAL_MACHINEDriversBuiltInSTRINGS]

              "Index"=dword:1

              "Prefix"="IIC"

              "Dll"="MyDriver.dll"

              "Order"=dword:0

              最后編寫(xiě)自己的CEC文件。主要是添加一個(gè)Build Method,任務(wù)是復(fù)制注冊(cè)表到Win CE的系統(tǒng)目錄下面。加一個(gè)Bib File,其主要功能是把編譯的mydrive.dll文件添加到系統(tǒng)內(nèi)核中去。保存寫(xiě)好的CEC文件。打開(kāi)Platform Builder,打開(kāi)“File”菜單,添加剛剛編寫(xiě)的CEC特征到系統(tǒng)選項(xiàng)中去。生成系統(tǒng)的時(shí)候,添加自己的CEC特性,就可以包含剛剛編寫(xiě)的I2C驅(qū)動(dòng)了。

              以上介紹了Win CE的驅(qū)動(dòng)結(jié)構(gòu),并給出了基于Win CE的 I2C驅(qū)動(dòng)程序部分源代碼。實(shí)驗(yàn)證明該設(shè)計(jì)是可行的。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
            上拉電阻相關(guān)文章:上拉電阻原理

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

            關(guān)鍵詞: 嵌入式 WinCE I2C

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉