2010-06-21 64 views
0

我可以通过任何方式更改存储在闪存驱动器上的文件块的ECC代码吗? 存储在硬盘上的文件(虽然我不认为这两者之间会有差别)更改块的ECC代码

也许,通过一些硬件中断或类似的东西?

此外我需要的解决方案是在C/C++中。

+0

如果有人仍然不清楚,我正在讨论闪存驱动器中的ECC代码http://www.eurekatech.com/products/memory/NAND_Flash_faq.htm#11作为示例 – 2010-06-25 10:59:15

回答

1

NAND闪存驱动器由多个数据页和闪存控制器组成。 NAND闪存上的ECC代码由闪存控制器使用。控制器使用它来确定关联的数据页是否有任何错误。文件系统(如fat32,NTFS或ext3)通常在原始数据页面结构上实现。文件可能分布在一个或多个Flash页面上。请注意,每个Flash页面都有一个错误代码,这意味着一个大于一个数据页面的文件将为其使用的每个页面提供一个错误代码。硬盘驱动器由一个或多个盘片,在盘片上读写数据的磁头以及磁盘控制器组成。每个盘片被分成扇区。硬盘驱动器也有错误代码来检查盘片上扇区的完整性。再次,文件系统通常在原始磁盘扇区之上实现。如果文件大于扇区,则会有多个扇区与文件相关联,每个扇区都有自己的错误代码。要访问数据页面或扇区错误代码,您需要直接与Flash或硬件潜水控制器连接。这将需要与设备的设备驱动程序接口。您需要阅读设备驱动程序的文档,才能发现它提供的功能以允许您访问错误代码。在任何一种情况下,除非一个文件只占用一个数据页面或扇区,否则它将有多个与之关联的错误代码。有些文件系统为文件创建错误代码,无论长度如何,但访问文件系统级别的错误代码通常不需要硬件访问。