原創 WinCE下流驅動開發流程

2022-08-16 09:12:09 字數 2395 閱讀 9799

硬體平台:s5pv210

軟體平台:wince6.0

已iicbus為例,實現流驅動框架,供以後參考使用

1、建立檔案

iicbus.cpp

iicbus.def

makefile

sources

2、iicbus.def檔案匯出函式介面

exports ibs_init

ibs_deinit

ibs_open

ibs_close

ibs_read

ibs_write

ibs_seek

ibs_iocontrol

ibs_powerdown

ibs_powerup

3、source檔案

targetname=iicbus

targettype=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驅動的分類問題...