阅读:2052回复:13
免费大放送:远峰的SDMMC驱动
s3c2440,wince4.2
注册表,就请各位研究了 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDMMC] "Dll"="sdmmc_loader.dll" "Prefix"="SML" "Order"=dword:2 "Ioctl"=dword:4 "Class"=dword:01 "SubClass"=dword:80 "ProgIF"=dword:0 "DeviceID"=dword:1100 "VendorID"=dword:15b7 "FSD"="fatfsd.dll" "Profile"="SDMMC" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" [HKEY_LOCAL_MACHINE\System\StorageManager\SDMMC\FATFS] "FriendlyName"="FAT FileSystem" "Dll"="fatfsd.dll" "Flags"=dword:00000024 "Paging"=dword:1 "CacheSize"=dword:0 "EnableCache"=dword:0 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC] "Name"="SDMMC Disk Drive" "Folder"="SDMMC" 这样是无效的,无法加载进去 另外使用的中断号 ,我也不确定 总之,各位兄弟大家一起研究吧,搞定的记得回来这跟大家分享 |
|
|
沙发#
发布于:2007-10-15 16:51
对不?不对吧。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDMMC] "Dll"="sdmmc_loader.dll" "Prefix"="SML" "Order"=dword:2 "Ioctl"=dword:4 "Class"=dword:01 "SubClass"=dword:80 "ProgIF"=dword:0 "DeviceID"=dword:1100 "VendorID"=dword:15b7 "FSD"="fatfsd.dll" "Profile"="SDMMC" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" 这个不应该写在注册表里面, 应该由sdmmc_loader.dll来动态创建。 在发现卡之后由DoRegSetup()来创建。 然后由ActivateDevice加载SDmmc.dll. 卸载的时候会删除这个健值吧! |
|
|
板凳#
发布于:2007-10-15 23:46
同意2楼的,而且下面这些都是可以不要的。
"Class"=dword:01 "SubClass"=dword:80 "ProgIF"=dword:0 "DeviceID"=dword:1100 "VendorID"=dword:15b7 |
|
地板#
发布于:2007-10-16 00:08
試了完全不能加載
EINT16,18也都試了.,不行的 |
|
地下室#
发布于:2007-10-16 08:13
远峰的注册表,跟SDMMC有关的,只有:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\sdmmcloader] "Dll"="sdmmc_loader.dll" "Prefix"="SML" "Order"=dword:2 "Ioctl"=dword:4 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC] "Name"="SD/MMC Card" "Folder"="SDMMC" |
|
5楼#
发布于:2007-10-16 09:52
"Ioctl"=dword:4
不明白要这个干什么? sdmmc_loader只是起一个线程来加载SDMMC卡。 根本用不着Ioctl。 |
|
|
6楼#
发布于:2007-10-16 10:27
唉...原本以为把sdmmc.dll, sdmmc_loader.dll取出
注册表和他一样 就可用了... 结果...唉... 不是EINT16,也不是18... 有没有办法得知,远峰是用EINT多少阿 |
|
7楼#
发布于:2007-10-16 16:39
不知道楼主研究这个有什么用处?
除非你用的板子和远峰的一模一样。 否则和话,个人感觉用处也不大。 不光中断不一样, 还有可能你们板子用来发现SD卡的GPIO 都不一样。 不如找个代码修改一下。也不是很难。 |
|
|
8楼#
发布于:2007-10-16 17:44
当然是要取代微软附的那三个. 不然很伤脑筋!
用微软那个驱动,烂到爆 只要卡内多存点东西,从插入到盘符出来,竟然要半分钟以上 有些还干脆就一直打印讯息,不出现盘符了… 这样的驱动,根本不能用在实体商品 (学生拿来玩玩还可以) http://www.cnemb.com/forum/read.php?tid=22811 至于这个原本2410的驱动来改的,根据大家的经验… 改改改~~试试试~~盘符出现了,不过内容是空的 而且其它人的经验,似乎也告知了,容量就是固定512MB 插了256的也是判定为 512… 但相形之下,远峰的驱动,不管你卡多大多小,已存多少,插入后可立刻读写. 花了点功夫,把远峰GPS所有档案弄出,当然希望直接用他们的 身为工程师当然有尊严, 不过SD驱动对我而言,只是产品中很小的一部份,又不是每个人都很专精..能够有现成的当然是最好,你说的很简单,对其他人而言却不见得简单. 不用远峰的,那在这里大家又不肯分享出来. 难道2440,wince4.2 大家都是用微软附的驱动? 算了, “连手合作” 在中国是不成立的~ |
|
9楼#
发布于:2007-10-16 21:39
这样说有点片面了吧。我觉得出现你说的问题是你自己写的驱动有问题。
不能说人家微软的很烂(不过确实有点烂) , 但是绝对没有你说那么烂。不然5。0下面s3c2410 和px270就不会用这个架构了。 我现在用的就是这个架构,插上到盘附出现,不到5秒(release mode). 不过盘符消失的时候确实有点慢,主要好像是卸载文件系统比较慢。 还有就是不管里面有多少东西他是都能立刻显示出来的。 读写速度写还OK,(当然比不上你说的那个,这个我知道) 还有微软这个架构是兼容SDIO WIFI卡的,所以有些臃肿。 我是真的觉得你一直研究这个用处不是很大, 因为虽然都是2440,各家的还会有些差别,就想你遇到的中断。 还有GPIO的设置, 除非你的SD控制器和远峰做的一模一样,否则你还是要修改代码 它的代码应该就是你以前贴的那个。可以修改那个 分两个sdmmc.dll (真正的驱动)和sdmmc_loader.dll(实现插拔的用,来loader sdmmc.dll) 你研究的功夫,以你的厉害来说早就修改出来了。个人觉得, 呵呵,我是没有,有的话,我肯定愿意和你“联手合作” |
|
|
10楼#
发布于:2007-10-20 11:36
进度:
EINT18 卡一插入就死掉了 |
|
11楼#
发布于:2007-10-20 15:36
拿兩個Dll有什么用,完全沒有借鑒意義,關鍵是要有Source Code。
|
|
12楼#
发布于:2007-10-20 16:18
樓上的,你以為SOURCE CODE很好拿阿
有人願意破解他的檔案,丟出來就不錯了 |
|
13楼#
发布于:2007-10-22 15:26
EINT 20
|
|