娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

Windows CE6.0中斷實驗過程

發布者:JoyfulJourney最新更新時間:2024-11-07 來源: cnblogs關鍵字:Windows  中斷實驗  S3C6410 手機看文章 掃描二維碼
隨時隨地手機看文章

    {

        RETAILMSG(1,(TEXT('[KEY] For pGPIOregs: DrvLib_MapIoSpace failed!/r/n')));

        bResult = FALSE;

        goto CleanUp;

    } 

//禁止上下拉

pPublicKey->pGPIOregs->GPMPUD = 0x00000000;

//GPM0-GPM3設置成輸出

pPublicKey->pGPIOregs->GPMCON = 0x00001111;

//LED0-3熄滅

pPublicKey->pGPIOregs->GPMDAT = 0x0;

//設置EINT0中斷

//禁止GPN0和GPN1上下拉

pPublicKey->pGPIOregs->GPNPUD &= ~0x0F;

//GPN0-1設置成外中斷

pPublicKey->pGPIOregs->GPNCON |= 0x0a;

//使能外中斷EINT0-EINT1

pPublicKey->pGPIOregs->EINT0MASK &= ~0x3;

//EINT0-1下降沿觸發中斷

pPublicKey->pGPIOregs->EINT0CON0 |= 0x2;

    do

    {

        //Button1 Thread

pPublicKey->FlagExitThrd = FALSE;

        g_hEvent1 = CreateEvent(NULL, FALSE, FALSE, NULL);

       

g_SysIntr1 = SYSINTR_UNDEFINED;

dwHwIntr = IRQ_EINT0;

if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwHwIntr, sizeof(DWORD), &g_SysIntr1, sizeof(DWORD), NULL))

        {

            RETAILMSG(1,(TEXT('[KEY] Failed to request the KEY sysintr./n')));

            g_SysIntr1 = SYSINTR_UNDEFINED;

            bResult = FALSE;

            break;

        }

        if (!InterruptInitialize(g_SysIntr1, g_hEvent1, NULL, 0))

        {

            RETAILMSG(1,(TEXT('[KEY] KEY Interrupt Initialization failed!!!/n')));

            bResult = FALSE;

            break;

        }

g_hThread1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Button1Thread, NULL, 0, NULL);

if (g_hThread1 == NULL)

        {

            RETAILMSG(1,(TEXT('[KEY] Key Button Thread creation error!!!/n')));

            bResult = FALSE;

            break;

        }

//Button2 Thread

g_hEvent2 = CreateEvent(NULL, FALSE, FALSE, NULL);

       

g_SysIntr2 = SYSINTR_UNDEFINED;

dwHwIntr = IRQ_EINT1;

if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwHwIntr, sizeof(DWORD), &g_SysIntr2, sizeof(DWORD), NULL))

        {

            RETAILMSG(1,(TEXT('[KEY] Failed to request the KEY sysintr./n')));

            g_SysIntr2 = SYSINTR_UNDEFINED;

            bResult = FALSE;

            break;

        }

        if (!InterruptInitialize(g_SysIntr2, g_hEvent2, NULL, 0))

        {

            RETAILMSG(1,(TEXT('[KEY] KEY Interrupt Initialization failed!!!/n')));

            bResult = FALSE;

            break;

        }

g_hThread2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Button2Thread, NULL, 0, NULL);

if (g_hThread2 == NULL)

        {

            RETAILMSG(1,(TEXT('[KEY] Key Button2 Thread creation error!!!/n')));

            bResult = FALSE;

            break;

        }

    } while (0);

    RETAILMSG(1,(TEXT('--[KEY] KEY_Init Function/r/n')));

    if(bResult)

    {

        return pPublicKey;

    }

    else

    {

        return NULL;

    }

CleanUp:

    if (!bResult)

    {

        if (pPublicKey->pGPIOregs)

        {

            DrvLib_UnmapIoSpace((PVOID)pPublicKey->pGPIOregs);

            pPublicKey->pGPIOregs = NULL;

        }

return NULL;

}

}

DWORD KEY_Open(DWORD dwData, DWORD dwAccess, DWORD dwShareMode)

{

RETAILMSG(1, (TEXT('KEY_Open: KEY Device Open Successfully./r/n')));

    return(dwData);

}

BOOL KEY_Close(DWORD Handle)

{

RETAILMSG(1, (TEXT('KEY_Close: KEY Device Close Successfully./r/n')));

return (TRUE);

}

DWORD KEY_Read(DWORD Handle, LPVOID pBuffer, DWORD dwNumBytes)

{

UINT16 ch;

DWORD result;

RETAILMSG(1, (TEXT('KEY_Read: KEY Device Read Successfully./r/n')));

    ch = (UINT16)pPublicKey->pGPIOregs->GPNDAT;

if( (ch & Butt1Mask) != 0)

{

result = 1;

RETAILMSG(1, (TEXT('Button 1 pressed:/r/n')));

}

else if( (ch & Butt2Mask) != 0)

{

result = 2;

RETAILMSG(1, (TEXT('Button 2 pressed:/r/n')));

}

else

{

result = -1;

RETAILMSG(1, (TEXT('No Button pressed:/r/n')));

}

dwNumBytes = result;

    return (dwNumBytes);

}

DWORD KEY_Write(DWORD Handle, LPCVOID pBuffer, DWORD dwNumBytes)

{

RETAILMSG(1, (TEXT('BTN_Write:KEY Device Write Successfully./r/n')));

    return(TRUE);

}

DWORD KEY_Seek(DWORD Handle, long lDistance, DWORD dwMoveMethod)

{

    return (DWORD)-1;

}

void KEY_PowerDown(void)

{

    return;

}

void KEY_PowerUp(void)

{

return;

}

BOOL KEY_IOControl(DWORD hOpenContext,DWORD dwCode,PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD dwLenOut,PDWORD pdwActualOut)

{

RETAILMSG(1, (TEXT('BTN_IOControl:/r/n')));

    return(TRUE);

}

/*******************************************************************************

 *DLL入口函數

 *******************************************************************************/

BOOL

DllEntry(

    HINSTANCE   hinstDll,

    DWORD       dwReason,

    LPVOID      lpReserved

    )

{

    if ( dwReason == DLL_PROCESS_ATTACH )

    {

        DEBUGMSG (1, (TEXT('[MyKey] Process Attach/r/n')));

    }

    if ( dwReason == DLL_PROCESS_DETACH )

    {

        DEBUGMSG (1, (TEXT('[MyKey] Process Detach/r/n')));

    }

    return(TRUE);

}

3.編寫配置文件,包括如下文件sources,MyKey.def,makefile如下:

技巧:可以到其他驅動程序目錄下拷貝在加以修改

Sources:

RELEASETYPE=PLATFORM

PREPROCESSDEFFILE=1

TARGETNAME=MyKey

TARGETTYPE=DYNLINK

DEFFILE=MyKey.def

DLLENTRY=DllEntry

 

TARGETLIBS= /

    $(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/coredll.lib /

    $(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/DriverLib.lib

SOURCES= /

    MyKey.c

MyKey.def:

LIBRARY MyKey

EXPORTS         

        KEY_Init

        KEY_Deinit

        KEY_Open

        KEY_Close

        KEY_Read

        KEY_Write

        KEY_Seek

        KEY_IOControl

        KEY_PowerDown

        KEY_PowerUp

[1] [2] [3]
關鍵字:Windows  中斷實驗  S3C6410 引用地址:Windows CE6.0中斷實驗過程

上一篇:基于gnu-arm-linux的LPC2220的簡單工程模板
下一篇:基于ARM7(LPC2131)平臺的μC/OS-Ⅱ的移植

推薦閱讀最新更新時間:2025-05-15 14:10

LPC1768 GPIO中斷實驗 八個LED輪流點亮100毫秒
路虎LPC1768開發板 GPIO實驗 這個例程是將路虎開發板上的八個LED輪流點亮100毫秒, 采用SYStick 定時器中斷方式做延時 系統時鐘設置在100MHZ 使用時,短路JP8跳線使能LED。 單片機源程序如下: /**************************************************************************//** * @file main.c * @brief CMSIS Cortex-M3 GPIO example * a LED using CM3 SysTick * @version V1.30 * @date 24. Jan 2
[單片機]
STM32單片機(5) 定時器中斷實驗
/******************************************************************************* * * 軟件功能: 定時器中斷實驗 * *******************************************************************************/ #include stm32f10x.h #include delay.h void RCC_Configuration(void); void GPIO_Configuration(void); void NVIC_
[單片機]
s3c6410 SD卡啟動的Secure mode
前段時間我新來的同事弄SD卡啟動的時候,按照三星Internal ROM Booting的Application Note弄得,也和網上的文章寫的一樣,irom啟動完了以后開始u-boot的匯編初始化的代碼,配置PLL、配置RAM...,然后到C語言段的時候開始調用irom自己提供的CopyMMCtoMem函數將代碼復制到內存開始運行。但無論如何跑不起來,還報了4.2 Verification failure of BL1 integrity的錯誤。后來找了好久,用Jlink連上以后一步一步的看irom的代碼才發現了是啟動時候的Secure mode的問題。手冊里面對于這方面什么都沒寫,就把我們知道的一點東西寫一下吧。 在IR
[單片機]
S3C6410移植u-boot-2010.3(1)成功編譯的開始
  參考連接:http://wenku.baidu.com/view/ae78a00390c69ec3d5bb75ce.html?st=1   鏈接上已經指明了我之前一直2013.01版本uboot產生錯誤的原因,2010.3版本到2010.6版本是uboot的一個分界,而2010.3版本的uboot是最接近samsung定制的s3c-u-boot-1.1.6版本uboot的一個版本號,所以在此選擇版本2010.3   1、download the uboot from ftp http://ftp.denx.de/pub/u-boot/ download u-boot-2010.03.tar.bz2   2、為
[單片機]
基于S3C6410的ARM11學習(十二) 代碼拷貝及led測試輸入日志
之前已經將ddr進行初始化了,這樣就可以使用ddr了。首先就要將代碼從stepping stone拷貝到ddr中。最后在ddr中運行程序。如果外部nandflash還有剩余的程序,還要將剩下程序拷貝到ddr中。 Stepping stone的起始地址是0x0c000000,DDR的起始地址是0x50000000。在上電的時候,CPU會自動把NANDFLASH的前8K代碼拷貝到stepping stone中。但是現在寫的代碼是比較小的,還沒有超過4K。所以這里就設定拷貝的代碼是前4K代碼。 這樣,代碼就比較好寫了。 R0保存的是stepping stone的起始地址,r1保存的是要拷貝的ddr的地址,這里地址是0x
[單片機]
基于<font color='red'>S3C6410</font>的ARM11學習(十二) 代碼拷貝及led測試輸入日志
三星S3C6410(ARM1176)平臺Android資源獲取與編譯(RedHat AS5)
1. Android的一些有用的官方網站: http://android.git.kernel.org android源碼網站 http://source.android.com http://code.google.com/android http://developer.android.com 2. 安裝git源碼管理工具 # cd ~ # mkdir bin # echo $PATH # curl http://android.git.kernel.org/repo ~/bin/repo # chmod a+x ~/bin/repo git下載源碼方法: 下載一個tree(至當前路徑): # git clone
[單片機]
微軟有一個移動的夢想,Windows 10和英特爾成關鍵?
微軟剝離諾基亞的舉動表明它在移動設備領域制定了新的戰略; 剝離諾基亞本身不是一個好消息,但移動新戰略這個消息不錯; 新戰略是盡可能快地將現有的Windows PC生態系統轉換為移動設備生態系統; 對微軟而言,這一步走對了。 ? 對微軟剝離諾基亞的行為,媒體反應不一,有持欣賞態度的也有猛烈批評的,這些反應中,既缺乏對微軟移動新戰略的理解,也沒考慮現下的微軟對鮑爾默時代的顛覆。微軟當前的戰略是“移動化”,創造將微軟現有的約15億Windows PC用戶納入到移動設備生態內的典范。這項戰略在短期內和長期內都會帶來深遠的影響,本文中筆者將會一一剖析。 ? ? 反應褒貶不一 對微軟剝離諾基亞
[嵌入式]
蘋果CEO庫克嘲諷Windows 8沒人用
??? Mac操作系統Mavericks與Windows系統升級率對比   新浪手機訊 北京時間6月3日凌晨消息,蘋果公司在美國舊金山召開2014年度全球開發者大會。微軟最新一代操作系統Windows 8因為用戶接受度低而遭到蘋果公司CEO庫克(Tim Cook)“嘲諷”。   蘋果公司CEO庫克在今年的開發者大會上做開幕演講。在介紹蘋果Mac電腦的操作系統時,庫克將蘋果公司去年發布的Mac操作系統Mavericks與微軟推出的Windows 8進行了對比。由于Windows 8的用戶接受度低而遭到庫克“嘲諷”。   庫克表示,在用戶接受度上,Mac操作系統Mavericks遠高于Windows
[手機便攜]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 千阳县| 类乌齐县| 花莲市| 西和县| 于都县| 合水县| 育儿| 三明市| 威宁| 莱阳市| 张家界市| 西城区| 奉化市| 萍乡市| 深圳市| 津市市| 天等县| 伊宁县| 务川| 彝良县| 渭源县| 仁寿县| 江津市| 措勤县| 桃园市| 通渭县| 珠海市| 长春市| 二连浩特市| 巫山县| 平江县| 高尔夫| 清河县| 乌鲁木齐市| 泸西县| 从化市| 阳曲县| 吉木乃县| 兰州市| 永康市| 青海省|