handle* hdevice;
#define bufsize 256
wchar buffer[bufsize];
bool apientry dllmain( handle hmodule,
dword ul_reason_for_call,
lpvoid lpreserved
)handle ttt_init(lpctstr pcontext,lpcvoid lpvbuscontext)
bool ttt_deinit(dword hdevicecontext)
dword ttt_open(dword hdevicecontext,dword accesscode,dword sharemode)
bool ttt_close(dword hopencontext)
dword ttt_read(dword hopencontext,lpvoid pbuffer,dword count)
;dword ttt_write(dword hopencontext,lpcvoid pbuffer,dword count)
dword ttt_iocontrol(dword hopencontext,dword dwcode,pbyte pbufin,
dword dwlenin,pbyte pbufout,dword dwlenout,pdword pdwactualout)
void ttt_powerup(dword hdevicecontext)
void ttt_powerdown(dword hdevicecontext)
編譯,然後編譯該test資料夾下的test.def檔案,將這些實現的介面函式匯出:
library test.dll exports
ttt_init
ttt_deinit
ttt_open
ttt_close
ttt_powerup
ttt_powerdown
ttt_iocontrol
ttt_read
ttt_write
同時編輯此資料夾下的test.reg檔案,加入必要的登錄檔項:
[hkey_local_machine/drivers/builtin/test]
"devicearrayindex"=dword:0
"prefix"="ttt"
"dll"="test.dll"
"order"=dword:20
好了,乙個ttt裝置的流介面驅動就寫好了,從中可以看到,在寫驅動的時候比pb4要更加清晰,在源程式資料夾中的def檔案,reg檔案,bib檔案,db檔案,dat檔案和編譯鏈結時需要的bat檔案都被pb生成好了,開發人員只要作些必要的修改即可以,非常方便。
接下來,為了測試我們的驅動程式是否可以正常工作,還需要寫乙個測試程式,再次為平台新建乙個wce應用程式專案testttt,寫入如下**並編譯為exe檔案:
很簡單吧,你只要在上述的介面中訪問你的裝置埠讀寫資料就可以了,我只是舉個例子,希望能對你有所啟發,對於驅動程式部分的內容,就先告一段落吧,繼續關注後續文章吧!
WinCE 5 0邊做邊學 5
對於實時系統,如何除錯是乙個很難解決的問題,包括對系統核心的除錯,對驅動程式的除錯,對應用程式的除錯等。對於應用程式,通常各整合開發環境都提供了常規的單步跟蹤等除錯手段。而對於另兩個的除錯,platform builder除了為我們提供了常規的斷點跟蹤等手段以外,還和系統的源程式配合使用了一種新的除...
WinCE 5 0邊做邊學 3
主頁 文斌程式網 我們重點要說的還是ce的生成過程,即你在編譯平台的時候platform builder到底為你做了些什麼?實際上,ide在生成ce的過程當中共經歷了四個階段,分別是sysgen build copy make,即元件生成階段,編譯階段,release資料夾複製階段和映象打包階段。下...
WinCE 5 0邊做邊學 5
對於實時系統,如何除錯是乙個很難解決的問題,包括對系統核心的除錯,對驅動程式的除錯,對應用程式的除錯等。對於應用程式,通常各整合開發環境都提供了常規的單步跟蹤等除錯手段。而對於另兩個的除錯,platform builder除了為我們提供了常規的斷點跟蹤等手段以外,還和系統的源程式配合使用了一種新的除...