


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中文全文信息檢索系統(tǒng)中索引項(xiàng)技術(shù)及分詞系統(tǒng)的實(shí)現(xiàn)
摘要該文提出了一種在Windows3.1保護(hù)模式下,通過動(dòng)態(tài)連接庫(DLL)生成中斷服務(wù)程序代碼,實(shí)現(xiàn)外設(shè)與Windows應(yīng)用程序?qū)崟r(shí)通信的有效方法。一、前言計(jì)算機(jī)的日益普及和計(jì)算機(jī)技術(shù)日益成熟,使得計(jì)算機(jī)在工業(yè)控制監(jiān)測(cè)中的應(yīng)用漸漸深入。但工業(yè)應(yīng)用不同于其它方面,它要求有較強(qiáng)的實(shí)時(shí)性?,F(xiàn)在有很多的DOS軟件在運(yùn)行過程中通過掛接外部中斷方式實(shí)現(xiàn)DOS應(yīng)用軟件與外設(shè)的實(shí)時(shí)通信,這種方法實(shí)現(xiàn)起來十分簡(jiǎn)單。而在Windows中應(yīng)用程序能否也能夠利用外部硬中斷實(shí)現(xiàn)外設(shè)與Windows應(yīng)用程序的實(shí)時(shí)通信呢?答案是肯定的。這里的關(guān)鍵是要解決好中斷代碼與Windows應(yīng)用程序相互之間交換信息的問題。從外設(shè)發(fā)送異步的硬中斷,通過中斷處理程序傳遞一條信息給Windows應(yīng)用程序。這時(shí)可以初始化相關(guān)端口,準(zhǔn)備好數(shù)據(jù),然后進(jìn)行數(shù)據(jù)傳送,從而做到實(shí)時(shí)通信。實(shí)現(xiàn)Windows應(yīng)用程序響應(yīng)外部中斷的方法有很多,如Microsoft公司自己開發(fā)的SDK、DDK軟件包,使用嵌入式匯編等等。本文將介紹一種在BC++3.1的基礎(chǔ)上利用Windows3.1擁有的一些功能實(shí)現(xiàn)Windows實(shí)時(shí)通信的實(shí)例。二、中斷代碼的位置在Windows中,幾乎所有的異步事件都是由中斷處理程序來管理的。中斷處理程序包含在設(shè)備驅(qū)動(dòng)程序中,由Windows在環(huán)境初始化中安裝。例如,KEYBOARD.DRV、MOUSE.DRV和COMM.DRV均含有中斷處理程序,以處理相應(yīng)的鍵盤、鼠標(biāo)和串行口的異步中斷。可以仿照標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序,編寫中斷處理代碼,以響應(yīng)外設(shè)的通信請(qǐng)求,從而完成一次實(shí)時(shí)通信。中斷代碼既可以包含在應(yīng)用程序的可執(zhí)行代碼中,也可以包含在動(dòng)態(tài)連接庫(DLL)中。包含在應(yīng)用程序中的代碼只能在一個(gè)程序中使用,而在動(dòng)態(tài)連接庫中的代碼則可以在Windows系統(tǒng)中所有的應(yīng)用程序所共享。這樣不僅在整個(gè)Windows系統(tǒng)中只有一個(gè)中斷代碼的副本,提高了內(nèi)存的使用效率,更重要的是可以防止由于同時(shí)存在多個(gè)中斷代碼的副本而發(fā)生沖突。本文將在DLL中編制中斷處理程序。當(dāng)動(dòng)態(tài)連接庫被裝入時(shí),要調(diào)用DLL庫的入口點(diǎn)LibMain(),利用這一點(diǎn)可以執(zhí)行一些初始化工作,可以分配一些內(nèi)存塊,可以初始化一些全局變量或者靜態(tài)變量,可以安裝中斷服務(wù)程序的代碼等等。例如:voidinterrupt(oldIsr)(--CPPARGS)/*舊的中斷服務(wù)程序地址*/LibMain(HANDLEhInstance,WORDwDataSeg,WORDcbHeapSize,LPSTRlpszCmdLine){…oldIsr=getvect(IRQNum);/*IRQNum指中斷號(hào)*/setvect(IRQNum,newIsr);/*newIsr指新中斷服務(wù)程序代碼*/return(1);}函數(shù)setvect()既可在實(shí)模式下,也可在保護(hù)模式下設(shè)置中斷處理向量。上述代碼也可以放在一個(gè)由用戶設(shè)置的引出(export)函數(shù)中,在應(yīng)用程序中用戶可以調(diào)用此引出函數(shù)來安裝中斷服務(wù)程序代碼。由于中斷可以在任何時(shí)刻發(fā)生,中斷代碼必須駐留在內(nèi)存中,并且在應(yīng)用程序運(yùn)行的過程中一直處于某一固定內(nèi)存中。這一點(diǎn)無論是在實(shí)模式還是在保護(hù)模式下都是一致的。在DLL的模塊定義文件中應(yīng)注意:1.CODE語句為固定代碼段,即FIXED;2.EXPORTS語句要引出被應(yīng)用程序和其它DLL用作入口點(diǎn)的函數(shù)。然后在應(yīng)用程序的窗口函數(shù)中,對(duì)WM-CREATE消息進(jìn)行處理時(shí)調(diào)用此函數(shù)來初始化DLL中的靜態(tài)變量hWndApp:CASEWM-CREATE:…SetIsrWin(hwnd);/*hwnd指應(yīng)用程序窗口句柄*/定義一個(gè)在應(yīng)用程序中使用的消息:#defineISRM-RUPTWM-USER+255最后在DLL中的中斷服務(wù)程序代碼中,調(diào)用PostMessage即可完成Windows應(yīng)用程序和中斷服務(wù)程序代碼相互的信息交流:voidinterruptnewIsr(--CPPARGS){…PostMessage(hWndApp,WM-RUPT,wParam,lParam);…}四、程序?qū)嵗臼纠劝惭b在DLL中的外中斷服務(wù)代碼,通過386/AT總線上的中斷申請(qǐng)線(IRQ12)外觸發(fā),由中斷服務(wù)代碼發(fā)送一條消息WM-RUPT通知Windows應(yīng)用程序外設(shè)有實(shí)時(shí)通信請(qǐng)求,應(yīng)用程序收到這條消息后,在窗口用戶區(qū)顯示一條信息,表明已和外設(shè)聯(lián)絡(luò)上,并同時(shí)鳴叫一聲喇叭。程序分為兩部分:DLL庫代碼和Windows應(yīng)用程序代碼。1.DLL庫代碼/***interruptincludefile,namedhandle.h***/voidFARPASCALSetIsrWin(HWNDhwnd);voidFARPASCALSetIRQNum(unsignedcharIRQ);/***moduledefinationfile,namedhandle.def***/LIBRARYHANDLEEXETYPESWINDOWSSTUB'WINSTUB.EXE'CODEPRELOADFIXEDDATAPRELOA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升學(xué)生自信心的教育方案
- 工廠節(jié)能減排實(shí)施方案與措施
- 數(shù)控機(jī)電傳動(dòng)系統(tǒng)設(shè)計(jì)方案
- 轉(zhuǎn)贈(zèng)房產(chǎn)合同(標(biāo)準(zhǔn)版)
- 祖孫房屋贈(zèng)予合同(標(biāo)準(zhǔn)版)
- 陽臺(tái)欄桿施工合同(標(biāo)準(zhǔn)版)
- 名宿租房合同(標(biāo)準(zhǔn)版)
- 2025-2030農(nóng)業(yè)機(jī)械化發(fā)展趨勢(shì)及市場(chǎng)投資潛力分析報(bào)告
- 2025-2030農(nóng)業(yè)廢棄物生物處理技術(shù)商業(yè)化應(yīng)用瓶頸分析
- 2025-2030農(nóng)業(yè)傳感器網(wǎng)絡(luò)部署成本下降與精準(zhǔn)農(nóng)業(yè)普及預(yù)測(cè)
- 中國血脂管理指南(基層版+2024年)解讀
- 青海省歷年中考語文現(xiàn)代文閱讀真題33篇(截至2024年)
- 艾梅乙防治知識(shí)培訓(xùn)課件
- 2025年春新北師大版數(shù)學(xué)七年級(jí)下冊(cè)課件 第四章 三角形 問題解決策略:特殊化
- 校外培訓(xùn)機(jī)構(gòu)傳染病防控健康教育制度
- 大學(xué)語文知到智慧樹章節(jié)測(cè)試課后答案2024年秋南昌大學(xué)
- 【MOOC】聲樂作品賞析與演唱-揚(yáng)州大學(xué) 中國大學(xué)慕課MOOC答案
- 60歲以上務(wù)工免責(zé)協(xié)議書
- 【MOOC】機(jī)械之美-神奇的礦冶機(jī)械(雙語)-江西理工大學(xué) 中國大學(xué)慕課MOOC答案
- T-IAC CAMRA 47.3- 2022汽車覆蓋件低碳維修技術(shù)規(guī)范 第3部分:車輛玻璃
- 信息技術(shù)居間協(xié)議書
評(píng)論
0/150
提交評(píng)論