阅读:3552回复:12
在WINCE5.0下实现了双SD卡的驱动,但是盘符的顺序会发生改变,请教高手如何固定盘符的顺序。
在WINCE5.0下实现了双SD卡的驱动,但是盘符的顺序会发生改变,
就是盘符和硬件上的对应顺序不固定, 如:硬件上是大卡和小卡, 开机时,大卡有时对应SD,小卡对应SD2。但是有时又反过来,大卡对应SD2,小卡对应SD。 请教高手如何固定盘符的顺序。 多谢! |
|
沙发#
发布于:2008-01-14 16:33
可以在注册表里面设定区分2个槽,另外SDBus驱动大概也要修改,比如
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class] "Dll"="SDMemory.dll" "Profile"="SDMemory" [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory] "Folder"="SD" [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory2_Class] "Dll"="SDMemory.dll" "Profile"="SDMemory2" [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory2] "Folder"="SD2" 修改SDBus驱动,当发现是小卡插入时,让BUS驱动去加载[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory2_Class]路径下的SDMemory驱动,否则加载[SDMemory_Class]下的驱动。 默认情况下,系统只会在后发现的卡后面加2。 |
|
板凳#
发布于:2008-01-15 10:40
搞定了,多谢!
|
|
地板#
发布于:2008-01-15 10:56
能否介绍一下双SD卡的驱动是怎么实现的?
谢了 |
|
|
地下室#
发布于:2008-01-15 15:19
具体我也没有做多少工作,
1、确保SD卡cd脚的中断检测,我是将原先的PCMCIA的中断号改为了SD卡2的。 2、在SD卡的驱动初始化的时候返回2个SD卡。 3、其它的地方我的驱动里面都差不多原先就写好了。 个人认为主要是中断响应连接上了就可以了。 |
|
5楼#
发布于:2008-01-22 22:44
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory2_Class]
"Dll"="SDMemory.dll" "Profile"="SDMemory2" [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory2] "Folder"="SD2" 可以这样设置注册表吗? [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory2_Class] 这个路径SD Bus Driver是不能辨识的。 一般只有下面两种情况: 1. 缺省路径 [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class] 2. Customize 路径 [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Custom\CID-M-AA-PPPPP] tyris 你是怎么实现的? |
|
|
6楼#
发布于:2008-01-23 09:31
注册表我没有做任何更改。主要是在驱动里面要配置要2个SD卡就可以了。1。分别响应中断使能。2,配置SD卡。配置SD卡的主要是配置端口。其他地方的程序都是一样 的。
|
|
7楼#
发布于:2008-01-23 11:52
引用第6楼tyris于2008-01-23 09:31发表的 : 你用的那个驱动改的?? Samsung2410的??分三层的吗?? |
|
|
8楼#
发布于:2008-01-23 22:35
呵呵,我没有做过两个slot的SD驱动,但是,我估计这个做法应该和SDIO有两个Functions或Combo SDIO卡是一样的原理吧。都是分别去Load相应的Client端驱动。
但是,如你所说,如果要显示两个不同的Folder (eg: SD, SD2)的话,就必须要有注册表设置两个SDMemory项,且有两个不同的“Folder”。 还有一种可能的情况是,两个SD Slot 共用同一个Client端注册表设置,当第二个SD Memory卡插入时,Load相同的SDMemory.dll,且“Folder”的名字自动加一,即“SD2”。但这样的话,就会出现tyris 沙发上提出的两个SD卡的Folder名字不能固定的问题 (因为只要两次SD卡的插入顺序不同,就会出现这种情况)。 一种解决办法就是Customize 注册表 [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Custom\CID-M-AA-PPPPP]。 但是,tyris 你是怎么实现的呢? 你说的 配置端口(CD, Write Protected),中断使能IST,这些都是要在初始化完成的,但是SD Memory卡还必须加载SDMemory Client驱动和文件系统,虽然对于单个SD Slot会有缺省值,但是你的两个Slot情况就特殊些了。 个人认为需要定制 zhuxiaofeng 我用的是Mainstoneii平台。 |
|
|
9楼#
发布于:2008-01-28 15:57
以下是我的情况。
还有一种可能的情况是,两个SD Slot 共用同一个Client端注册表设置,当第二个SD Memory卡插入时,Load相同的SDMemory.dll,且“Folder”的名字自动加一,即“SD2”。 我解决的办法是,由于SD卡的外部中断我是先通过CPLD控制后传给CPU的,所以我的中断使能可控,所以更改了CPLD的程序即可。 我用的是AU1200的平台 |
|
10楼#
发布于:2008-01-29 23:51
tyris
能否解析介绍下,还不是很清晰,谢谢先! 另外,你的两个Slot硬件实现上,是公用同一个硬件中断,还是两个独立的硬件中断呢? 最后,求证一点的是: 你的两个SD卡文件夹,也就是盘符,现在已经实现了对固定的SD卡,即例如大卡对SD,小卡对SD2,而不论两个卡的插入先后顺序如何?对吧? |
|
|
11楼#
发布于:2008-01-31 18:10
我的硬件用的不是同一个中断,只是我通过外部CPLD的控制可以让另外一个中断晚一点到,两个SD卡的盘符不是固定的,
因为我的产品特性只要求在开机的时候,当两张卡都插入的情况下,盘符固定,这个 我可以做到。 |
|
12楼#
发布于:2008-01-31 20:03
引用第11楼tyris于2008-01-31 18:10发表的 : OK, 现在就非常了解需求了。 |
|
|