Windows CE下的FMD介面實現檔案與FAL.LIB的連結
Windows CE下的FLASH驅動分為兩層,分別為FMD層和FAL層,FMD(Flash Media Driver)屬於底層,直接操作Flash硬體,不同的Flash硬體則FMD_XXX介面實現函數各不相同,上層則是FAL (Flash Abstraction Layer)層,該層是由微軟實現並提供的,是一個與硬體無關的層。FAL層嚮應用層(如API)提供DSK介面。例如CreateFile中調用的裝置即是調用該FAL層提供的介面。FMD層暴露FMD_XXX讓FAL層調用。
FAL層在PB中以FAL.LIB形式供連結。如果想實現一個流式的Flash驅動,無法單獨用FMD_XXX的實現檔案來編譯成一個DLL,必須要和FAL.LIB連結之後才能成為一個可以使用的驅動。
開發Flash驅動的基本步驟如下:
1. 編程實現FMD_XXX函數,也可以用PB下微軟提供的範例驅動程式。
2. 配置.def檔案,將匯出函數設定為DSK_XXX。其中DSK_XXX中的XXX與FMD_XXX中的XXX相對應。
3. 設定SOURCE檔案。其中有
TARGETLIBS= \
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \
$(_WINCEROOT)\PUBLIC\COMMON\SDK\LIB\ARMV4I\RETAIL\ceddk.lib
以及
SOURCELIBS= \
$(_WINCEROOT)\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\fal.lib
4. 編譯連結,這樣即可成功產生DLL檔案。
5. 可用dumpbin/exports XXX.dll來驗證匯出函數是否正確。
6. 配置註冊表,測試驅動。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/redeg/archive/2008/09/26/2980149.aspx