更改块的ECC代码

时间:2010-06-21 11:57:18

标签: c++ c

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

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

此外,我需要使用C / C ++解决方案。

1 个答案:

答案 0 :(得分:1)

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