硬體平台:s5pv210
軟體平台:wince6.0
已iicbus為例,實現流驅動框架,供以後參考使用
1、建立檔案
iicbus.cpp
iicbus.def
makefile
sources
2、iicbus.def檔案匯出函式介面
exports ibs_initibs_deinit
ibs_open
ibs_close
ibs_read
ibs_write
ibs_seek
ibs_iocontrol
ibs_powerdown
ibs_powerup
3、source檔案
targetname=iicbustargettype=dynlink
releasetype=platform
dllentry = dllentry
deffile = iicbus.def
targetlibs=$(_commonsdkroot)\lib\$(_cpuindpath)\coredll.lib
includes=$(includes); \
sources= \
iicbus.cpp \
4、 iicbus.cpp檔案
bool winapi dllentry(handle hinstdll, dword dwreason, lpvoid lpvreserved)return true;
} dword ibs_init(dword dwcontext)
bool ibs_deinit(dword dwcontext)
bool ibs_open( dword dwdata, dword dwaccess, dword dwsharemode)
bool ibs_close(dword dwhandle)
bool ibs_iocontrol(
dword dwhandle,
dword dwiocontrolcode,
pbyte pbufin,
dword dwbufinsize,
pbyte pbufout,
dword dwbufoutsize,
pdword pbytesreturned
)return true;
}dword ibs_read(dword dwhandle, lpvoid pbuffer, dword dwnumbytes)
dword ibs_write(dword dwhandle, lpcvoid pbuffer, dword dwnumbytes)
dword ibs_seek(dword dwhandle, long ldistance, dword dwmovemethod)
void ibs_powerup(void)
void ibs_powerdown(void)
4、修改platform.bib檔案
if bsp_noiicbus !iicbus.dll $(_flatreleasedir)\iicbus.dll nk shk
endif bsp_noiicbus !
5、修改platform.reg檔案
if bsp_noiicbus ![hkey_local_machine\drivers\builtin\iicbus]
"dll" = "iicbus.dll"
"prefix" = "ibs"
"index" = dword:1
"order" = dword:0
endif bsp_noiicbus !
注意:prefix不能超過3個字元!而且必須跟驅動檔案裡的字首一致!
以上完成流驅動的架構,具體的實現功能可以根據需求來做。
6、應用程式呼叫
handle hiicbus;hiicbus = createfile(_t("ibs1:"),
generic_read|generic_write,
file_share_read|file_share_write,
null,
open_existing,
0,0);
if (invalid_handle_value == hiicbus)
if(!deviceiocontrol(hiicbus,
change_ch1,
null, 0,
null, 0,
null, null))
closehandle(hiicbus);
WinCE驅動開發基礎
wince中的程序 process 是程式的一次動態執行例項 instance 程序不參與系統排程,沒有優先順序和上下文。每個程序在建立時都會建立乙個主線程作為其預設的執行體。真正參加系統排程的是執行緒。wince提供了互斥mutex,事件event,訊號量semaphore 3種核心機制來實現多執...
wince驅動開發學習筆記
因為課題前期調研沒做好,用的cpu板卡和資料採集卡來自兩個部門。加上買的是裸板,自己定製的os,技術支援不愛搭理。所以給的ai板卡的驅動一直裝不上,自己在鬱悶中尋找答案,就紮進了wince驅動的知識庫裡了。不管驅動裝不上是不是這個原因,學點東西總沒有壞處。做點記錄備查 首先是wince驅動的分類問題...
wince驅動開發學習筆記
因為課題前期調研沒做好,用的cpu板卡和資料採集卡來自兩個部門。加上買的是裸板,自己定製的os,技術支援不愛搭理。所以給的ai板卡的驅動一直裝不上,自己在鬱悶中尋找答案,就紮進了wince驅動的知識庫裡了。不管驅動裝不上是不是這個原因,學點東西總沒有壞處。做點記錄備查 首先是wince驅動的分類問題...