驅動程式的載入機制

2021-05-24 15:13:22 字數 878 閱讀 1794

裝置

驅動程式的載入過程如下

圖所示:

1. 當在oal

中的oeminit

執行時,需要啟動乙太網除錯、串列埠除錯等除錯服務;

2. oal可能需要配置和列舉乙個匯流排,如

pci匯流排,以便操作乙個用於除錯的裝置;

3. oal負責將這個資源資訊放到乙個登錄檔鍵,並使驅動程式可訪問它。然後,

device.exe

被載入和啟動,它載入資源管理器以從登錄檔讀取乙個可用的資源列表。

4. device.exe從

[hkey_local_machine/drivers/rootkey]

載入登錄檔列舉器,登錄檔列舉器開始掃瞄登錄檔過程,以獲得由

rootkey

下的子鍵載入的更多匯流排和裝置。登錄檔列舉器被用於替代乙個

isa匯流排驅動。所有

isa資源都必須通過登錄檔來分配,

regenum.dll(busenum.dll)

也能被列舉

isa裝置的登錄檔。

5. drivers的乙個子鍵可以是

pci,通常,在

pci鍵下列出的

dll是

pci匯流排驅動

pcibus.dll

,它由登錄檔列舉器載入。

pci匯流排驅動的登錄檔入口是包括

pci匯流排可用的資源。通常設定

[hkey_local_machine/drivers/rootkey/order]

是為了在最後載入

pci匯流排驅動。這是為了在配置靈活的

pci裝置資源之前先分配固定的資源,

pci裝置驅動程式的登錄檔入口列在

pci鍵之下,它代表駐留在

pci匯流排上的裝置。

驅動程式的載入方式

linux裝置驅動程式有兩種載入方式。第一種是直接編譯進linux核心,在linux啟動時載入 第二種是採用核心模組方式,利用模組可動態載入。如果希望將新驅動程式編譯進核心,需要修改核心 和編譯選項。下面以字元型裝置為例,說明如何在linux 2.6核心中新增乙個新的裝置驅動程式。如果驅動程式 原始...

驅動程式開機自動載入

將驅動程式編譯進核心的方法比較多,既可以進行靜態編譯,也可以動態載入。所以的靜態編譯,也就是在直接將驅動程式原始碼放入核心原始碼,在編譯核心原始碼時,就已經將驅動程式編譯進了核心。但是,我們也經常會遇到需要動態載入核心驅動。在編譯生成了驅動程式後,使用insmod命令載入即可,例如 insmod k...

USB驅動程式的載入 二

應用程式 usb client driver 層一 usbd.dll 層二 ohci.dll 層三 wince的usb驅動分為三層,如上圖所示.從上到下,姑且將其稱為層一,層二,層三。層一通過gc usbfuncs來呼叫層二所提供的功能,而層二通過gc hcdfuncs來呼叫層三實現的功能,而應用程...