SD卡压力测试,快速插拔卡就会出SD卡被格式化了

IT铁哥 2012-03-28 11:36:16
SD卡压力测试,快速插拔卡就会出SD卡被格式化了。
引起格式化的原因是因为读出卡的分区信息好像不对。然后引起后面invalid BPB, volume deemed invalid,然后就被格式化了。

不知有没有大侠碰到过这种问题。或者有好的建议也可以帮忙提出,谢谢!!qq732393618

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
"FriendlyName"="FAT FileSystem"
"Dll"="fatfsd.dll"
"Flags"=dword:00020014 ;;这个要怎么设才会不让格式化。 "Paging"=dword:1
"EnableCache"=dword:1
"CacheSize"=dword:0
"Util"="fatutil.dll"
"CacheDll"="diskcache.dll"

DEBUG打印信息如下:


0x837ff8c8: SDHCControllerIst - Card is Inserted!
0x83820bb0: SHCSDSlotOptionHandler - Setting Host Control Register 0
0x83820bb0: SDSetCardInterfaceForSlot - HC ClockRate differs desired setting: desired: 100000 Hz, Actual : 97656 Hz
0x83820bb0: HandleErrors - ERROR INT STATUS=0x01
0x83820bb0: DumpCurrentRequest: 0x00054394
0x83820bb0: Command: 5
0x83820bb0: Argument: 0x00000000
0x83820bb0: ResponseType: 5
0x83820bb0: NumBlocks: 0
0x83820bb0: BlockSize: 0
0x83820bb0: HCParam: 0
0x83820bb0: HandleErrors - Command line error (0x1). Resetting CMD line.

0x83820bb0: SDSynchronousBusRequest_I: queue request failed(0xc0000014),TransferClass(2), CommandCode(5),CommandArgument(0)

0x83820bb0: HandleErrors - ERROR INT STATUS=0x01
0x83820bb0: DumpCurrentRequest: 0x00054394
0x83820bb0: Command: 1
0x83820bb0: Argument: 0x00300000
0x83820bb0: ResponseType: 4
0x83820bb0: NumBlocks: 0
0x83820bb0: BlockSize: 0
0x83820bb0: HCParam: 0
0x83820bb0: HandleErrors - Command line error (0x1). Resetting CMD line.

0x83820bb0: SDSynchronousBusRequest_I: queue request failed(0xc0000014),TransferClass(2), CommandCode(1),CommandArgument(300000)
SDBusDriver: The SDIO card does not support block mode. Use Soft-Block instead.
0x83820bb0: SHCSDSlotOptionHandler - Setting Host Control Register 0
0x83820bb0: HandleAddDevice: LoadDevice type = 2, slot 00x83820bb0: DEVICE!RegReadActivationValues RegQueryValueEx(\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity\BusPrefix) returned 2

0x83820bb0: SDMemory: +SMC_Init

0x83820bb0: SDGetDeviceHandle: ActivePath: Drivers\Active\55
0x83820bb0: SDGetClientFunctions: +Init
0x83820bb0: SDGetClientFunctions: -Init
0x83820bb0: SDMemCardConfig: Card is high capacity (2.0+)

0x83820bb0: SDMemCalcDataAccessClocks: Tpd:f ns, Asynch: f ns, AsyncClocks:0 , SyncClocks: 1078198272, ReadTotal: 0, Write Factor: 1093567616 WriteTotal: 25000
0x83820bb0: SDMemory: Initialize: Using block transfer size of 64 blocks

0x83820bb0: SDMemory: Idle Timeout: 2000 Idle Power State: 2

0x83820bb0: SDMemory: Power Management Setup complete
0x83820bb0: SDMemory: -SMC_Init

0x83fbad34: [NOTIFY] HandleSystemEvent 7 /ADD DSK2:

0x83fe9b90: SDMemory: GetDeviceInfo - Profile = SDMemory, length = 18

0x83fe9b90: SDMemory: GetStorageID Insufficient buffer space

SDMemory: -GetStorageID

0x83fe9b90: Loading partition driver mspart.dll hModule=83FADE88

0x83fe9b90: Driver mspart.dll loaded

0x83fe9b90: Opened the store hSt

0x83fe9b90: NumSec=7577600 BytesPerSec=512 FreeSec=0 BiggestCreatable=0

0x83fe9b90: Partition Part00 NumSectors=7569408

0x83fe9b90: MSPART!PD_OpenPartition: dwStoreId=000DB6B0, PartName=Part00
0x83fe9b90: FSD_MountDisk: mounting volumes for hDsk=000E5170

0x83fe9b90: SDMemory: GetDeviceInfo - Profile = SDMemory, length = 18

0x83fe9b90: FATFS!OpenVolume: access time updates disabled

0x83fe9b90: FATFS!OpenVolume: event logging enabled

0x83fe9b90: FATFS!OpenVolume: automatic scanning disabled

0x83fe9b90: FATFS!OpenVolume: write verify disabled

0x83fe9b90: FATFS!OpenVolume: extra FAT on format enabled

0x83fe9b90: FATFS!OpenVolume: force write through disabled

0x83fe9b90: FATFS!OpenVolume: Codepage = 1

0x83fe9b90: FATFS!OpenVolume: Number of path cache entries = 50

0x83fe9b90: FATFS!InitVolume: sector 0 byte 0 suspicious (0x0)

0x83fe9b90: FATFS!InitVolume: invalid BPB, volume deemed invalid

0x83fe9b90: FATFS!InitVolume: FAT version: 12

0x83fe9b90: FATFS!InitVolume: Cluster Size (Sectors): 0

0x83fe9b90: FATFS!InitVolume: TFAT enabled: FALSE

0x83fe9b90: FormatDisk!FormatVolume: New extended boot sector successfully written

...全文
435 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
WINCEANDROID 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

我这是SD卡,
对SD卡的驱动没有完全吃透。看样子还要慢慢来。
从协议开始。
[/Quote]

楼主问题解决了吗??
IT铁哥 2012-05-17
  • 打赏
  • 举报
回复
不建议快速插拔卡,最好等SD卡加载好后再拔出来。
IT铁哥 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
引用 9 楼 的回复:

我这是SD卡,
对SD卡的驱动没有完全吃透。看样子还要慢慢来。
从协议开始。


楼主问题解决了吗??
[/Quote]

九鼎创展,呵呵。是哪位大侠??
IT铁哥 2012-05-17
  • 打赏
  • 举报
回复
;FATFS_DISABLE_AUTOFORMAT 0x00000040 disable automatic formatting of unformatted volumes

按道理"Flags" = dword:64 就可以将FormatVolume 这个功能去掉了。
但是FATFS里面有个 VOLF_SECUREWIPE不知是做什么的。
强行做了FormatVolume 。修改一下,应该就OK了。
gooogleman 2012-04-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
我遇到过这种情况。
那是2009 年11月份这样。
我插入我的手机SD卡 到TQ2440 上,我的妈啊。出来后发现所有相片,数据全不见了。
被迅速格式化了,所以我对TQ2440 从此很恐惧。呵呵,
我有很多重要的相片的,但是被格式化掉了。真是悲催!
[/Quote]
插进去拔出来,就全没有了,应该和楼主现象一样,不过当时没有深入研究。至今不懂怎么回事。
gooogleman 2012-04-04
  • 打赏
  • 举报
回复
我遇到过这种情况。
那是2009 年11月份这样。
我插入我的手机SD卡 到TQ2440 上,我的妈啊。出来后发现所有相片,数据全不见了。
被迅速格式化了,所以我对TQ2440 从此很恐惧。呵呵,
我有很多重要的相片的,但是被格式化掉了。真是悲催!
IT铁哥 2012-03-31
  • 打赏
  • 举报
回复
我这是SD卡,
对SD卡的驱动没有完全吃透。看样子还要慢慢来。
从协议开始。
David_Hu 2012-03-30
  • 打赏
  • 举报
回复
好像最终还是调用 了你对flash block那里操作的,包括你前面说的读出卡的分区信息好像不对,这里也可以查一下,读的分区信息是nand驱动里的。
看是读的不对,还是没读到或是返回的值不对
IT铁哥 2012-03-30
  • 打赏
  • 举报
回复
这是FSFAT里面的东东。
David_Hu 2012-03-29
  • 打赏
  • 举报
回复
我觉得楼主应该是可以跟下去的,看为什么会调用format
woshi_ziyu 2012-03-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
这种问题 一般需要改驱动的代码

FAT File System Registry Settings

Storage Manager Registry Settings

http://www.cnblogs.com/Jade2009/archive/2010/1/22.html


你说的这个配置,我改了,但
FATFS!OpenVolume:……
[/Quote]
看一下具体的代码呢
IT铁哥 2012-03-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
这种问题 一般需要改驱动的代码

FAT File System Registry Settings

Storage Manager Registry Settings

http://www.cnblogs.com/Jade2009/archive/2010/1/22.html
[/Quote]

你说的这个配置,我改了,但
FATFS!OpenVolume: extra FAT on format enabled
总是这样子。
IT铁哥 2012-03-28
  • 打赏
  • 举报
回复
不是吧,就这么沉掉了。
.放存储在电脑识别.放到手机不识别!!这种情况往往是因为存储在电脑上进行格式化,但是格式化与手机不兼容.解决方法是吧放回手机,用手机中的"格式化存储"功能从新格式化!!2.手机提示"拔存储,请按确定"按照提示将来,一再插入手机就可以继续使用,但是过不了多久有在回提示拔,如此反复!!这是因为经常插拔存储,导致手机存储槽松动接触不良.可以考虑去客服检修一下手机,并且注意以后热插拔时不要用力过猛!3.存储密码丢失,存储里文件很重要!!A:下载安装MMCpwd软件,运行该软件后,我们可以看到一排乱码,乱码间隔中显示的英文或者数字就是密码!!B:还有简单的方法,再手机上安装类似与FILEMAN或者SELEQ等资源管理软件.然后再手机的C盘的SYSTEN文件下找到MMCSTORE文件,并将其发送到电脑上,给文件加个TXT的扩展名,用记事本打开,简简单单的找回密码!!4.MMC读写速度越来越慢,远不如刚买的时候同样是存储设备,手机中的MMC存储和电脑中的一样,用了一段时间以后回因为频繁的删除和拷贝回现磁盘碎片从而影响读写速度然而,硬盘的磁盘格式是FAT32或NTFS,手机中的MMC是FAT16的.因此,手机通过电脑的磁盘碎片整理后往往现一系列的错误,严重的回在MMC插入手机中抱错.其实我们只需要将MMC中的隐藏文件拷贝将格式化然后将文件拷入即可!!5.手机突然要求输入存储密码,否则拒绝访问,可是之前没有设置非常不幸,你很有可能中了S60系统下的一种手机病毒----CARDBLK木马.这个小木马完美的伪装成INSTANT.SIS破戒版软件来进行传播.当你不小心运行他之后,他就给你的设置密码,这个密码随机产生长达16位,破解性几乎为0,如果中毒的话就只能和小说再见了!!!A:不要接受任何陌生人发来得应用程序和短消息.特别是陌生的蓝牙传来得东西B:尽量从可以信任的站点下载东西(例如八一论坛..)C:再手机中安装一款专业的病毒软件6.手机插上存储不能打开网页,拔掉却可以!!无发打开网页,或者"网络"无反映都有可能是因为第三方输入法引起的.切换回原来的输入法,问题就解决了!!71GBYTE的MMC,拷入600MB的文件,再电脑上无法将存储安全移除,于是拔除,储存装入手机后显示"以损坏",如在将连接电脑,电脑不识别!一次性拷贝过大容量的资料的存储,偶尔后现无法删除存储的现象,建议以后拷贝时一批批分开拷贝,如果手机存储与电脑无法识别可以进行:A:再电脑端,用电脑使用FAT16格式进行格式化B:用强行格式化工具MMCMEDIC进行修复C:直接在手机上进行格式化存储8/.手机格式化存储现"存储以被使用",从新启动手机问题依然按照下列步骤尝试:关机---从新拔插存储---开机.9手机中的许多程序无法正常运行,当手机和存储连接时候显示""存储不存在无法连接!"""这个情况很有可能是存储被改名字引起的,因而导致的程序错误,只要将注册表到处,再电脑的记事本中进行批量替换存储名字就可以了!!10存储格式化后显示"不能使用"先检查使用格式化的格式是否为FAT32格式,如果是用FAT16进行格式,如果问题依然存在,可以尝试在电脑系统里的"磁盘工具"进行修复.11.储中放置的多媒体照片,视频文件突然不知道去那了1!将存储用读器连接上电脑,确定其盘符,打开电脑的"开始"菜单,选择运行,输入"CMD"后回车,在MS-DOS命令下输入"VCHKDSKH:/F"12.诺基亚N73在格式化存储后很多软件无法正常使用在格式化存储之前,必须将遗留在手机内的软件卸载.否则在次安装同版本的软件时就回发生错误备分存储上的文件---格式化!!13.把存储放入读器,连接后电脑想死机后没有什么反映,接着现两种情况:A:电脑提示存储无法读取B:漫长的等待中失去耐心,拔下存储,电脑显示无法操作存储!!!检查读器是否插好!!不行换个读器要不就格式化再不行只有换了!
第一款真正意义上的U盘扩容检测工具 集5大功能于一身:扩容检测、坏块扫描、速度测试、老化测试、坏块屏蔽 MyDiskTest是一款U盘/SD/CF等移动存储产品扩容识别工具。可以方便的检测存储产品是否经过扩充容量,以次充好。 还可以检测FLASH闪存是否有坏块,是否采用黑片,不破坏磁盘原有数据。 并可以测试U盘的读取和写入速度,对存储产品进行老化试验。是你挑选U盘和存储必备的工具。 ----------------------------------- 更新: V2.50 1、新增了功能强大的速度测试模块,是您选购和评测U盘、SD、CF、移动硬盘最为理想和专业的工具 V2.42 1、修正了“坏块软屏蔽”大于2GB的盘发生内存溢的问题 2、修正了测试某些黑片盘显示可用空间小于0的情况 3、修正了用快速扩容测试某些黑片盘发生下标越界错误 V2.40 1、主要改进了容量测试算法和界面 V2.33 1、改进了扫描过程异常现“严重I/O错误” 2、改进了进度条显示方式,可看坏块的位置 3、文件读写操作测试增加了速度数值显示,结果更直观准确 v2.30 1、修正了一个快速测试扩容的问题 2、改进了为i5128方案时检测的bug V2.20 1、继续改进速度测试模块 V2.10 1、增加一种坏块检测算法(未选检测黑片时为快速测扩容),可满足大量检测的需要 2、增加文件操作速度测试模块,检测的结果更帖近实际操作 V2.00 1、增加英文语言界面,并可根据操作系统自动识别 2、增加屏蔽FLASH坏块功能,使数据存储更安全 注意:使用此功能后格式化磁盘使屏蔽功能失效 V1.80 1、加强了速度测试功能,在选购存储产品时更加实用 2、修正了当U盘没有一个好区块时显示为1M的bug V1.70 1、增加了对量产成本地磁盘的U盘的支持 2、增加对量产为USB HDD的U盘的识别能力 3、修正了一个可能造成非法操作的问题 4、排除了对USB光驱的检测,因为不可写 V1.60 1、修正了测试错的处理,当测试是可能导致数据损坏的情况给提示。 2、加入了进行稳定性(老化)测试时可以选择测试的次数。 V1.50 1、增加了稳定性(老化)测试功能,助你挑选质量上乘的U盘/存储 2、增加了显示设备名称功能 3、修正了一个可能导致内存溢非法操作的bug 4、优化了程序代码 V1.45 1.改进了快速扫描方式的算法,扫描结果更准确(代价是比原来稍慢) 2.增加了自动感应USB设备插拔,不必每次换设备都手动刷新(注意!测试中一定不要插拔被测设备,以免数据丢失!且测试过程中不响应其他设备的插拔动作。) V1.40 优化了磁盘坏块扫描算法 V1.30 改进了无法检测大于2G容量问题,改进检测算法 ----------------------------------- 反馈:http://www.mydigit.net/read.php?tid-22095.html ----------------------------------- 声明: 在检测前请自行备份U盘/SD内的文件资料,以防数据丢失。
首先关于 [评价可免费] 的严重声明: 一、评价=评论加评价(评星星); 二、评价必须是下载完了该资源后的评价,没下载就评论无效; 三、如果正确评价了,返还积分可能需要等等,系统需要反应下。呵呵 评论时记得要评分。然后返回给你花费的分再加1分.理论上有十分就可以下载完所有的资源了。一般人我不告诉他。 第一款真正意义上的U盘扩容检测工具 集5大功能于一身:扩容检测、坏块扫描、速度测试、老化测试、坏块屏蔽 MyDiskTest是一款U盘/SD/CF等移动存储产品扩容识别工具。可以方便的检测存储产品是否经过扩充容量,以次充好。 还可以检测FLASH闪存是否有坏块,是否采用黑片,不破坏磁盘原有数据。 并可以测试U盘的读取和写入速度,对存储产品进行老化试验。是你挑选U盘和存储必备的工具。 MyDiskTest在手,U盘无忧 第一款真正意义上的U盘扩容检测工具。 集5大功能于一身:扩容检测、坏块扫描、速度测试、老化测试、坏块屏蔽。 MyDiskTest是一款U盘/SD/CF等移动存储产品扩容识别工具。可以方便的检测存储产品是否经过扩充容量,以次充好。还可以检测FLASH闪存是否有坏块,是否采用黑片,不破坏磁盘原有数据。 并可以测试U盘的读取和写入速度,对存储产品进行老化试验。是你挑选U盘和存储必备的工具。 ★MyDiskTest主界面,此时未插入存储设备,软件提示:请插入要测试的设备。 ★MyDiskTest自行侦测所有插入的可移动磁盘,选择你要检测的磁盘。 ★点击“立即开始测试此驱动器”,稍等片刻,结果马上知晓。没错,就是这么简单! ★选中“同时检测是否采用黑片”,从结果中可以看,实际容量比未选中时略小一些,结果更为严谨。 “坏块检测”与“同时检测是否采用黑片”的区别: 两者检测的算法不同,前者速度快,适合要大批量检测扩容使用,但无法得知是否采用了黑片FLASH。 后者检测速度慢一些,结果更为严格,并且可以得知是否采用黑片,建议普通消费者使用。 如果没有检测到扩容,那么就恭喜啦。当然还可以选择“全面扫描”进一步测试。 ★如果检测到坏块,就一个提示框,可以选择进入坏块屏蔽功能。 PS:不过建议大家还是用ChipGenius检测后,用相应的量产工具进行量产。 ★坏块软屏蔽窗口,左下方自动显示要操作的磁盘名称。 ★点击“立即执行”,如果磁盘存有文件,就一个提示框,询问是否进行格式化, 为了能够完全屏蔽坏块,我们当然选择“是”了。 ★点击开始进行格式化。 ★开始屏蔽坏块操作,显示为“0”的表示是好的块,显示为“X”的表示为坏块。右边是坏块列表,看来坏块还真不少。 下方提示“坏块空间已被隔离,可以放心使用”。这时就可以关闭窗口了。(如下图) 全面扫描及检测坏块功能: 如果在上一步的测试中没有发现问题,我们还可以再进行更为严格的全面扫描。 选择“全面扫描及检测坏块功能”,注意这个方式扫描速度较慢,但可以检测移动盘坏块的数量和U盘实际可用空间。并可测试U盘的读写速度(如下图) U盘/存储是现代人交换数据,存储文件的重要途径和载体,所以安全问题显得尤其重要,如何挑选一款好U盘就成了首当其冲的问题。 ★使用MyDiskTest的“稳定性测试(老化测试)”功能就可以帮助你挑选到一款稳定品质的U盘/。 我们先勾选“全面扫描”,再勾选“稳定性测试”,在后面有一个数字框让我们输入老化测试的次数。一般使用默认的5次即可,也可以输入更高的次数,当然测试的时间更长,在中途可以按停止测试来中止,也可以查看结果。(如下图) ★点击“立即开始”,结果来了,我的劣质U盘连2次测试都未通过! 速度测试: MyDiskTest集成了功能完善的速度测试模块,模拟我们正常读写文件,使测试的结果更加真实可靠。完全可以满足大家测试移动磁盘的需求,帮助大家挑选到一款高速U盘/。 ★选择“速度测试”,点击“立即开始”,稍等一,测试结果就来了:平均读写速度、峰值读写速度。 ★如果你觉得这个结果太简洁了一些,那就选中“文件操作速度测试”,这时高级速度测试窗口。 ★呵呵,看起来一目了然吧,最上面一栏显示待测磁盘的盘符和磁盘名称,第二栏左边是将要测试的项目,中间一栏在测试时显示测试的结果。其它的就看图吧,点击“开始测试”let’s go ★速度测试结果,赶紧抓图帖到网站上让大家伙评评。就我这自已“生产”的扩容U盘,有这个速度算是不错了。不过想要逃MyDiskTest的慧眼还是不可能的。它早就看穿我的扩容真面目啦。 ★关闭MyDiskBenchmark窗口,刚才速度检测的结果文本就保存到主程序窗口中了。 ----------------------------------- 历史更新: V2.10 增加一种坏块检测算法(未选检测黑片时为快速测扩容),可满足大量检测的需求 增加文件操作速度测试模块,检测的结果更帖近实际操作 V2.00 1、增加英文语言界面,并可根据操作系统自动识别 2、增加屏蔽FLASH坏块功能,使数据存储更安全 注意:使用此功能后格式化磁盘使屏蔽功能失效 V1.80 1、加强了速度测试功能,在选购存储产品时更加实用 2、修正了当U盘没有一个好区块时显示为1M的bug V1.70 1、增加了对量产成本地磁盘的U盘的支持 2、增加对量产为USB HDD的U盘的识别能力 3、修正了一个可能造成非法操作的问题 4、排除了对USB光驱的检测,因为不可写 V1.60 1、修正了测试错的处理,当测试是可能导致数据损坏的情况给提示。 2、加入了进行稳定性(老化)测试时可以选择测试的次数。 V1.50 1、增加了稳定性(老化)测试功能,助你挑选质量上乘的U盘/存储 2、增加了显示设备名称功能 3、修正了一个可能导致内存溢非法操作的bug 4、优化了程序代码 V1.45 1.改进了快速扫描方式的算法,扫描结果更准确(代价是比原来稍慢) 2.增加了自动感应USB设备插拔,不必每次换设备都手动刷新(注意!测试中一定不要插拔被测设备,以免数据丢失!且测试过程中不响应其他设备的插拔动作。) V1.40 优化了磁盘坏块扫描算法 V1.30 改进了无法检测大于2G容量问题,改进检测算法 ----------------------------------- 问题反馈: http://www.mydigit.net/read.php?tid=22095 ----------------------------------- 使用声明: 在检测前请自行备份U盘/SD内的文件资料,以防数据丢失。

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧