Windows CE下的FMD接口实现文件与FAL.LIB的链接

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

你可能感兴趣的:(windows)