SD 卡被擦除后,从卡中读取了什么值?所有位都清除还是所有位都设置?

SD 卡被擦除后,从卡中读取了什么值?所有位都清除还是所有位都设置?

SD 卡被擦除后,从卡中读取了什么值?所有位都清除还是所有位都设置?

答案1

SD 协会官方规格应该是您的第一站:

4.3.5 擦除

为了提高数据吞吐量,最好同时擦除多个写入块。

这些写入块的识别是通过 ERASE_WR_BLK_START (CMD32)、ERASE_WR_BLK_END (CMD33) 命令完成的。

主机应遵守以下命令序列:ERASE_WR_BLK_START、ERASE_WR_BLK_END 和 ERASE (CMD38)。

如果收到的擦除(CMD38)或地址设置(CMD32,33)命令顺序不正确,则卡应在状态寄存器中设置 ERASE_SEQ_ERROR 位并重置整个序列。

如果接收到无序命令(SEND_STATUS 除外),则卡应设置状态寄存器中的 ERASE_RESET 状态位,重置擦除序列并执行最后一个命令。

如果擦除范围包括写保护扇区,则应保留这些扇区,仅擦除未受保护的扇区。应设置状态寄存器中的 WP_ERASE_SKIP 状态位。

地址设置命令中的地址字段是以字节为单位的写入块地址。卡将忽略所有低于 WRITE_BL_LEN(参见 CSD)大小的 LSB。

如上文块写入所述,卡将通过将 DAT0 保持为低电平来指示正在进行擦除。实际擦除时间可能很长,并且主机可能会发出 CMD7 来取消选择卡或执行卡断开连接,如上文块写入部分所述。

擦除操作后,卡上的数据为“0”或“1”,取决于卡供应商。

SCR 寄存器位 DATA_STAT_AFTER_ERASE(位 55)定义它是“0”还是“1”。

答案2

文件系统实际上只检查文件的头部,看到头部显示为空白,然后继续。然后操作系统将其视为可以使用的空间,但直到这些扇区/块被覆盖,数据仍在那里,并且很容易恢复。如果你想看到它,请下载免费的 Recuva,删除一些文件,然后使用 Recuva 浏览该目录。它应该会让你感到害怕。

http://www.piriform.com/recuva

相关内容