WinCE CEDDK之IO訪問函式

2021-08-23 11:41:22 字數 2285 閱讀 4421

ceddk就是ce的ddk,其中封裝了一些驅動開發會用到的函式。有時在開發驅動的時候用ceddk中的函式會比較方便,使用的時候需要連線ceddk.dll,源**為於wince的\public\common\oak\drivers\ceddk下面找到,其中大致可以分為幾類,如下:

io訪問函式(ddk_io.c)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

dma操作函式(ddk_dma.c)

匯流排控制函式(ddk_bus.c)

位址對映函式(ddk_map.c)

這4類是比較常用到的,其中還包含了時間控制函式(ddk_time.c)電源管理函式(ddk_power.cpp),少被用到。

在這裡先介紹io訪問函式,主要用於訪問硬體io埠,暫存器以及緩衝區中的資料。函式如下:

read_port_buffer_uchar

read_port_buffer_ushort

read_port_buffer_ulong

讀連續的io埠資料,資料可以是uchar,ushort,ulong型別。

read_port_uchar

read_port_ushort

read_port_ulong

讀某乙個io埠資料,資料可以是uchar,ushort,ulong型別。

read_register_buffer_uchar

read_register_buffer_ushort

read_register_buffer_ulong

讀連續的暫存器中的資料,資料可以是uchar,ushort,ulong型別。

read_register_uchar

read_register_ushort

read_register_ulong

讀某乙個暫存器中的資料,資料可以是uchar,ushort,ulong型別。

write_port_buffer_uchar

write_port_buffer_ushort

write_port_buffer_ulong

寫連續的io埠資料,資料可以是uchar,ushort,ulong型別。

write_port_uchar

write_port_ushort

write_port_ulong

寫某乙個io埠資料,資料可以是uchar,ushort,ulong型別。

write_register_buffer_uchar

write_register_buffer_ushort

write_register_buffer_ulong

寫連續的暫存器,資料可以是uchar,ushort,ulong型別。

write_register_uchar

write_register_ushort

write_register_ulong

寫某乙個暫存器,資料可以是uchar,ushort,ulong型別。

上述函式比較簡單,沒有給出整個函式原型。所有的函式定義在ddk_io.c中可以找到,看一下就知道了。對於risk架構cpu來說,讀寫暫存器和讀寫io的**是一樣的,都如同訪問記憶體,而x86就不同了,因為io位址空間和記憶體位址空間是分開的,所以實現也不一樣。

IO程式訪問

外設都是通過讀寫其暫存器進行訪問的,可以通過暫存器對其進行配置 獲取其執行狀態 外設的暫存器需要通過其位址訪問 外設讀寫配置 外設暫存器 外設暫存器位址 外設暫存器位址可能位於 1 記憶體位址空間 io記憶體 2 單獨的io位址空間 io埠 外設暫存器 io記憶體 是對映到記憶體空間的暫存器或裝置記...

IO隨機訪問流

file 封裝的file檔案對物件,也可以直接檔名。mode 訪問模式,r rw rws 或 rwd r 僅開啟供讀取 rw 開放閱讀和寫作 rws 開放供閱讀和寫入 rwd 只需要更新要寫入儲存的檔案內容 randomaccessfile file file,string mode 體現 publ...

裝置I O 埠和I O 記憶體的訪問

幾乎每一種外設都是通過讀寫裝置上的暫存器來進行的,通常包括控制暫存器 狀態暫存器和資料暫存器三大類,外設的暫存器通常被連續地編址。根據cpu體系結構的不同,cpu對io埠的編址方式有兩種 典型地,如x86處理器為外設專門實現了乙個單獨的位址空間,稱為 i o位址空間 或者 i o埠空間 cpu通過專...