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