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