工業(yè)內(nèi)窺鏡設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核和設(shè)備硬件之間的接口。內(nèi)窺鏡設(shè)備驅(qū)動程序為應(yīng)用程序屏蔽了硬件細節(jié),使得在應(yīng)用程序看來,硬件設(shè)備只是一個設(shè)備文件,應(yīng)用程序可以像普通文件一樣操作硬件設(shè)備。北京德朗的微內(nèi)核嵌入式操作系統(tǒng),設(shè)備驅(qū)動一般由內(nèi)核外的應(yīng)用程序?qū)崿F(xiàn)。然而,由于不區(qū)分系統(tǒng)空間和用戶空間,這些設(shè)備驅(qū)動程序總是在系統(tǒng)狀態(tài)下執(zhí)行?! 膶崿F(xiàn)的角度來看,設(shè)備驅(qū)動程序的實現(xiàn)可以分為兩種:輪詢(Polling)方式和中斷方式。輪詢是簡單的設(shè)備驅(qū)動程序。在這種模式下,設(shè)備的操作完全由MPU掌握,外部設(shè)備完全被動。當(dāng)MPU要在外部設(shè)備上執(zhí)行操作時、但是MPU在設(shè)備暫時沒有準備好的情況下有兩個對策:一種是睡一段時間(或者先干點別的)以后再試;另一種是堅持不懈的探索,直到完成叫連續(xù)輪換(Spin)顯然,在實時系統(tǒng)中,如果采用輪詢設(shè)備驅(qū)動程序,系統(tǒng)的實時性能會受到影響。 中斷是工業(yè)內(nèi)窺鏡嵌入式系統(tǒng)中主要使用的設(shè)備驅(qū)動方式。工業(yè)內(nèi)窺鏡設(shè)備驅(qū)動程序的開發(fā)大致可以分為以下5個步驟: (1)將訪問設(shè)備時所需的相關(guān)數(shù)據(jù)信息封裝到適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)中,以便于管理; (2)定義一組跟蹤硬件和設(shè)備驅(qū)動程序當(dāng)前狀態(tài)的變量這些變量的定義應(yīng)該與***步中給出的數(shù)據(jù)結(jié)構(gòu)相對應(yīng); (3)編寫設(shè)備的初始化函數(shù); (4)為用戶的相關(guān)操作編寫接口函數(shù),仔細合理的定義接口函數(shù)的形參和返回值,重要的用戶操作程序是讀和寫; (5)寫中斷服務(wù)程序。在決定ISR做什么之前,需要對整個設(shè)備驅(qū)動方案有一個全局的把握和深入的分析。