wince下Gpio 驅動程式

2021-06-16 23:36:54 字數 998 閱讀 9390

gpio 驅動程式

在wince下能夠直接訪問的都是虛擬位址,不能直接訪問gpio埠,因此我們首先需要將gpio口的物理位址對映到虛擬位址上來。

分別使用virtualalloc和virtualcopy這兩個函式來完成對映!

這兩個函式的原型:

lpvoid virtualalloc(     lpvoid lpaddress

,       dword dwsize,

dword flallocationtype

,   dword flprotect

); bool virtualcopy( lpvoid lpvdest

, lpvoid lpvsrc

, dword cbsize

, dword fdwprotect

); 如果這兩個函式執行成功,哪麼virtualalloc將返回乙個指標,使用這個指標我們就可以直接訪問gpio,通過讀寫相關位址暫存器,來控制gpio埠!

v_piopregs = (volatile iopreg *)virtualalloc(0, sizeof(iopreg), mem_reserve, page_noaccess);

if (v_piopregs == null)

else

}if (!retvalue)

v_piopregs = null;

}//else retailmsg (1, (text("::: pbt_initializeaddresses - success\r\n") ));

return(retvalue);

v_piopregs是乙個

iopreg結構,在

s2410.h中定義, //

// registers : i/o port

#define iop_base      0xb1600000 // 0x56000000

typedef struct  iopreg; 

0 給主人留下些什麼吧!~~

WinCE驅動程式的分類

最近有一些同學發郵件問我,驅動除錯助手到底能動態載入哪些驅動,為什麼在載入usb裝置驅動時總是失敗。要解釋這個問題,首先得弄清楚wince中驅動的相關概念。本文將主要介紹wince下驅動程式的分類。驅動程式是介於作業系統和裝置之間的乙個 層,它的主要作用是為作業系統提供乙個介面,以操作不同的硬體,包...

WinCE驅動程式的分類

發 布 時 間 2009 04 29 來 源 來自網路 作 者 匿名 瀏 覽 最近有一些同學發郵件問我,驅動除錯助手到底能動態載入哪些驅動,為什麼在載入usb 裝置驅動時總是失敗。要解釋這個問題,首先得弄清楚wince 下驅動程式的分類。驅動程式是介於作業系統和裝置之間的一 個 層,它的主要作用是為...

WinCE驅動程式的分類

最近有一些同學發郵件問我,驅動除錯助手到底能動態載入哪些驅動,為什麼在載入usb裝置驅動時總是失敗。要解釋這個問題,首先得弄清楚wince中驅動的相關概念。本文將主要介紹wince下驅動程式的分類。驅動程式是介於作業系統和裝置之間的乙個 層,它的主要作用是為作業系統提供乙個介面,以操作不同的硬體,包...