阅读:2511回复:11
wince4.2 下的sd卡无法在“\”目录下显示
小弟遇到的问题是这样的:s3c2410上运行有pb4.2定制的系统。系统由sd卡上启动,但在根目录下却看不到sd卡的文件夹。从控制面板->存储管理器中是能看到的sd卡插拔的,但系统只识别出了sd的容量,而没到得卡的文件格式信息,并且可以对其进行格式化,格式化再添加分区后,看属性为fstfs文件格式,且在根目录下能显示storage card文件夹并进行读写,然后这个卡在pc机上却无法识别了。文件系统我也添加了fatfs了。
现不知道问题出在什么地方了,请高手点拨下,小弟将不胜感激。 备注,从启动后的注册表中有如下的信息: [HKEY_LOCAL_MACHINE\Drivers\Active\21] 'Hnd'=dword:004a9ae0 'Name'='SDC1:' 'Key'='\\Drivers\\SDCARD\\SDBusDriver' 'ClientInfo'=dword:00000000 [HKEY_LOCAL_MACHINE\Drivers\Active\22] 'Hnd'=dword:004a51d0 'Name'='SDC2:' 'Key'='Drivers\\SDCARD\\HostControllers\\SDSC' 'ClientInfo'=dword:00000000 [HKEY_LOCAL_MACHINE\Drivers\Active\24] 'Hnd'=dword:004b97e0 'Name'='DSK1:' 'Key'='\\Drivers\\SDCARD\\ClientDrivers\\Class\\SDMemory_Class' 'ClientInfo'=dword:004ab7e8 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDBusDriver] 'Order'=dword:00000020 'Dll'='SDBusDriver.dll' 'Entry'='SDBusDriverStartUp' [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class] 'Dll'='SDMemory.dll' 'Prefix'='DSK' 'FSD'='FATFS.DLL' 'IOCTL'=dword:00000004 'BlockTransferSize'=dword:00000040 'Profile'='MMC' [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class] 'Dll'='SDMemory.dll' 'Prefix'='DSK' 'FSD'='FATFS.DLL' 'IOCTL'=dword:00000004 'BlockTransferSize'=dword:00000040 'Profile'='SDMemory' [HKEY_LOCAL_MACHINE\Drivers\SDCARD\HostControllers] [HKEY_LOCAL_MACHINE\Drivers\SDCARD\HostControllers\SDSC] 'Dll'='SDCSDCard.dll' 'Prefix'='SDC' [HKEY_LOCAL_MACHINE\Drivers\SDCARD\SDBusDriver] 'BusDriverHandle'=dword:004a9ae0 'Order'=dword:00000020 'Dll'='SDBusDriver.dll' 'Prefix'='SDC' 'ThreadPriority'=dword:00000064 'RequestListDepth'=dword:00000030 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC] 'Name'='MMC Card' 'Folder'='Storage Card' [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory] 'Name'='SD Memory Card' 'Folder'='Storage Card' [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC] 'Name'='SD/MMC Card' 'Folder'='存储卡' [HKEY_LOCAL_MACHINE\System\StorageManager] "Dll"="fsdmgr.dll" "PNPUnloadDelay"=dword:00001000 [HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] "FriendlyName"="FAT FileSystem" "Dll"="fatfsd.dll" "Flags"=dword:00000024 "Paging"=dword:00000001 "EnableCache"=dword:00000001 "CacheSize"=dword:00000000 "Util"="fatutil.dll" "MountFlags"=dword:00000000 [HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable] "01"="FATFS" "04"="FATFS" "06"="FATFS" "07"="NTFS" "0B"="FATFS" "0C"="FATFS" "0E"="FATFS" "0F"="FATFS" "20"="BOOT" "21"="BINFS" "22"="XIP" |
|
沙发#
发布于:2008-04-02 22:41
[HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable] 应该是这个注册键值设的不对,
01好像不是FAT,而0X10是FAT你并没有包含. 可以在控制面板中看一下,你格式化后的FLAG是多少就明白了, 设置了正确的值以后应该就好了. |
|
|
板凳#
发布于:2008-04-03 16:43
我先看了sd卡格式化后的Flag值,确实是0x10,但在注册表中加入"10"="FATFS"后,问题依然存在,又陷入困境了。。
|
|
地板#
发布于:2008-04-04 21:08
那你测一下DRIVER自己是不是对的,即写入的数据再读出还是不是对的,保证这个是以的了再做下一步的考虑.
|
|
|
地下室#
发布于:2008-04-07 13:56
刚刚测试过了,sd卡驱动应该是能正常运行的。过程:首先是,sd卡插入时,可以看到device.exe加载了sdmemory.dll(另外两个启动好就加载了)。然后在wince下对sd卡格式化、添加分区后,显示出了storage card文件夹。接下来,我从pc机上给该文件夹传送了一个文本文件,将sd卡拔下再插上,再下载该文件到pc上,一切正常。
|
|
5楼#
发布于:2008-04-07 22:55
得试一个比较大的文件,比如几M,如果正常才能说明这个驱动大致是正常的.
|
|
|
6楼#
发布于:2008-04-08 11:07
对,昨天忘说了,我还下载过一个tcpmp,和一些多媒体文件(总大小近10M了),然后在wince上播放,都很正常的。这个驱动应该是没什么问题的。
为什么在wince下和xp下格式化的sd卡相互不能识别呢? |
|
7楼#
发布于:2008-04-10 07:38
你分析一下分区看看问题出在哪?还有,你的SD上有几个分区啊?
|
|
|
8楼#
发布于:2008-04-15 19:37
sd卡是 sandisk 的1G 卡,只有一个分区。应该是wince的文件系统设置的问题,不过我又不知道问题出在哪,郁闷啊
|
|
9楼#
发布于:2008-04-16 09:52
引用第6楼liuzm于2008-04-08 11:07发表的 : 上传一个大点的文件 到 SD卡, 然后再下载下来到PC上看看,能不能识别。 怀疑你的读写有问题。导致不能互相识别。 正常是可以识别的, WinCE下面你挂载的是FAT文件系统吧,这个没什么问题。 |
|
|
10楼#
发布于:2008-04-18 10:16
昨晚又试了下,用ActiveSync传输的速度确实慢啊。我已开始直接试传了下600M左右的东西,很快就出错了,sd卡得到一个64K的文件,后来又试了100M多一点的文件也出问题,同意得到一个64k的文件。
然后我开始从小到大的试,结果从4M+,10M+,30M+,50M+,100M+,都成功了。 还有个问题不太明白,在wince下对sd卡格式化时,并没有选项可以指定格式化为什么文件系统,wince是根据什么来对sd卡进行格式化的呢? |
|
11楼#
发布于:2008-04-24 21:40
我又试了下,不从sd卡启动,把同样的nk.nb0烧到flash里面再启动,居然sd卡可以正常在目录下显示了,想不通啊。。。。
|
|