阅读:1494回复:3
急问!块设备驱动的引入
现在刚刚开始学习wince的驱动开发,
进入PB,建立了platform以后,右边的catalog没有块设备驱动的东东,所以加不到platform里面,但是wince自带好多的这些驱动的,例如ramdisk,应该怎么把wince自带的驱动引入到工程中,一起编译出结果呢?? 试了好多的platform,但是缺省都不加入这个ramdisk驱动,好像也没有编译过,用了BSP wizard,new了一个ramdisk类型驱动,然后选择的是wince下面的ramdisk驱动文件,也好像只把.c变成了.obj,但是没有最终生成.dll。郁闷!????? 工具环境: win2000 professional Platform Builder |
|
最新喜欢:Eric_P... |
沙发#
发布于:2002-12-11 13:59
你可以修改在C:\\Program Files\\Windows CE Platform Builder\\4.10\\cepb\\cec 目录下的storage.cec文件
参考该文件的内容,添加一个ComponentType: ComponentType ( Name(\"Ramdisk_driver\") Description(\"Dens Child Feature\") GUID( {F9D61780-9AA9-4FC7-A674-EEA308D07E6F} ) Vendor(\"your company\") Group ( \"\\Device Drivers\" ) Implementations ( Implementation ( Name(\"Ramdisk1\") Description(\"Ramdisk 1 driver\") GUID( {DA2C55CB-FA0A-4CB8-B916-551165182E77} ) Vendor(\"your company\") Date(\"10/21/02\") BuildMethods ( BuildMethod ( Step( BSP ) CPU( \"DEFAULT\" ) Action( \'#BUILD(SOURCES,\"$(_WINCEROOT)\\public\\COMMON\\OAK\\DRIVERS\\BLOCK\\RAMDISK\\DRIVER\")\' ) ) ) ) ) ) 找到storage.cec文件里的第一个ComponentType 下,添加一句: OptionalChildren({F9D61780-9AA9-4FC7-A674-EEA308D07E6F}) 好了,现在storage.cec修改完毕了,在Files| Manage Catalog Features里,把storage.cec文件remove ,Refresh后,再把storage.cec重新import,再Refresh一次,你就可以在catalog|device driver | storage里找到ramdisk1了,把它Add to platform就可以了。 “ \'#BUILD(SOURCES,\"$(_WINCEROOT)\\public\\COMMON\\OAK\\DRIVERS\\BLOCK\\RAMDISK\\DRIVER\")\' ) ”就是编译命令,里面的路径就是你的RAMDISK源代码的路径,此路径下有个SOURCES文件,就是编译时要用到的文件。sources文件里“TARGETTYPE=LIBRARY”也就是说你编译出来的类型是.lib文件,如果要编译成DLL,就用TARGETTYPE=DYNLINK 它编译出来的.lib文件,放到了$(_WINCEROOT)\\public\\COMMON\\OAK\\LIB路径下相应的CPU和编译类型目录里 以上只是编译出该驱动,如果要把它加到你的image里,需要修改project.bib文件。 先找到你编译出来的ramdisk.dll文件,把它拷贝$(_FLATRELEASEDIR)路径下,也就是你的平台编译出来的RELEASE目录下。 打开project.bib文件,在MODULES下加上一行 ramdisk.dll $(_FLATRELEASEDIR)\\ramdisk.dll NK SH 好了,编译你的PLATFORM,里面就应该有RAMDISK.DLL了 以上只是DEMO怎么把Ramdisk驱动程序加如到CATALOG和platform里,并不保证ramdisk驱动能够WORK,因为它可能还需要加些注册表信息或者其他驱动程序的支持,如果你想把它跑起来,还需要参考帮助文档里BLOCK驱动程序的部分。 另外: 其实你“用了BSP wizard,new了一个ramdisk类型驱动”可能就已经把RAMDISK加进去了,只是怎么编译,编译出来的是什么东西,还有编译出来的文件放在哪里,是由该驱动目录下的sources文件决定的。sources文件的详细说明,PB的帮助文档里有。 |
|
|
板凳#
发布于:2002-12-11 17:54
感激涕零,竟然在两个地方都re了我......
|
|
地板#
发布于:2002-12-12 01:26
已经成功的编译好了ramdisk.dll和ceramdrv.exe
但是运行没有效果,使用的platform是Internet Appliance 没有修改注册表的信息,因为在remote registry editor 中没有HKEY_LOCAL_MACHINE\\System\\storage manager 是否因为没有这个注册表项,导致ramdisk无法加载? |
|