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通過專...