首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SDHC卡上内存位置的‘擦除’值是多少?

SDHC卡上内存位置的‘擦除’值是多少?
EN

Stack Overflow用户
提问于 2019-06-17 19:47:06
回答 1查看 31关注 0票数 0

我正在向嵌入式应用程序的micro SD卡(SDHC)写入数据。应用程序需要能够非常快速地实时写入到卡中。

我已经看到,预先擦除内存块会使写入速度更快。不幸的是,我正在努力使擦除命令(和ACMD23)工作,因为为我正在使用的开发板提供的驱动程序并不完整。

有没有办法通过预先向存储块中写入一个“已擦除”值来擦除存储卡?例如,如果擦除一个块后,它变为0x12345678,我是否可以直接写入此值,使其被擦除,以便使用擦除命令?或者,有没有其他方法可以让卡将一个块标记为已擦除?

谢谢

我试着写0xffffffff作为擦除的值,但是没有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 20:00:40

我想你误解了闪存的工作原理。

闪存的数据块比一般文件系统所期望的要大得多。此外,它们具有有限数量的擦除周期。因此,闪存控制器提供将虚拟扇区映射到物理块的抽象。

被“擦除”的扇区根本不会被主动擦除。它只是未映射,并且在其位置映射了一个空块(如果可用)。在后台,闪存控制器对扇区进行打乱,并在物理块完全不使用时将其擦除。

如您所见,闪存控制器的质量在这里很重要。通常,这都不是驱动程序的问题。驱动程序只发送命令;闪存控制器执行它们。如果你需要更好的性能,那就买一张更好的SD卡。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56630678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档