国产综合高清-a视频-高清全高清-国产黄a三级三级三级70年后|www.whhswh.com

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業(yè)以太網 | 現(xiàn)場總線 | 顯示調節(jié)儀表 | 數據采集 | 數傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
WinCE驅動中設備中斷的處理
深圳市盈鵬飛科技有限公司
收藏本文     查看收藏
    因為BSP和WinCE系統(tǒng),已經做了大量的工作,完成了所有底層的處理。所以我們僅調用幾個api,就可以完成驅動程序對中斷的處理。

    在WinCE中,中斷被轉換成為了一個事件。所以我們可以創(chuàng)建一個線程,該線程循環(huán)等待事件發(fā)生,一旦發(fā)生則去操作對應設備。這個線程被成為IST。整個過程如下:

在驅動的XXX_Init()中
1.創(chuàng)建一個事件

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
2.獲得sysIntr,硬件有一個中斷號,如EINT0,等等,但該中斷號并不是WinCE系統(tǒng)能識別的中斷號,故要獲取WinCE的系統(tǒng)中斷號。
KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &Irq, sizeof(UINT32), &sysIntr, sizeof(UINT32), NULL);
其中Irq為硬件中斷號,如EINT0等等。
當調用完KernelIoControl函數后,硬件中斷號對應的系統(tǒng)中斷號,則會保存在sysIntr中。
3.將事件與中斷號相連接
在連接前,先禁止該中斷,連接后調用一次InterruptDone則會啟動該中斷。
InterruptDisable(sysIntr);
if(!InterruptInitialize(sysIntr, hEvent, NULL, 0) )
 goto error;
InterruptDone(sysIntr);
4.創(chuàng)建中斷服務線程(IST)
hThread = CreateThread(NULL, 0, &IST, NULL, 0, NULL);
至此,就完成了有關設備中斷的初始化操作。接下來實現(xiàn)創(chuàng)建中斷服務線程即可
其樣式如下,省略了對設備操作的代碼。
DWORD IST(LPVOID param)
{
 DWORD we;
 while(hThread)
 {
  we = WaitForSingleObject(DPRAM.hEvent, INFINITE);
  ...;
  InterruptDone(sysIntr);
 }
 return ERROR_SUCCESS;
}
 

 

狀 態(tài): 離線

公司簡介
產品目錄

公司名稱: 深圳市盈鵬飛科技有限公司
聯(lián) 系 人: 李希崗
電  話: 0086-13602511395
傳  真: 0755-82523175,82523176-819
地  址: 深圳市福田區(qū)福明路40號,雷圳大廈12A06
郵  編: 518033
主  頁:
 
該廠商相關技術文摘:
WINCE下如何添加CPL應用程序
Wince sqlite3移植
EAC-C925開機畫面實現(xiàn)手冊
英貝德推出單板機產品軟件升級解決方案(WinCE篇)
EP9315電路設計要點
Linux下創(chuàng)建和使用RamDisk的技巧
英貝德科技移植PPP大揭秘:PPP撥號在ARM2410平臺上的移植
AT91SAM9263在人機界面方面的應用
詳解WinCE下USB Host驅動開發(fā)(2)
詳解WinCE下USB Host驅動開發(fā)(1)
Linux內核學習之BogoMIPS值的計算
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡

關于我們 | 聯(lián)系我們 | 廣告服務 | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved