编程器烧写NAND flash的一些说明

2023-11-11

注意事项:

1.大小端模式,也即在使用编程器时需不需要做字节反序

2.Spare area处理方式,需要还是不需要,是否含有私有ECC算法。

3.坏块处理方式。

摘要一段说明如下:(虽然针对西尔特SUPERPRO/9000U的文章,但也对许多其他的适用)

2.关于NAND FLASH技术以及烧录模式使用说明

2. How Nand Devices are programmed on Xeltek programmer
1)NAND FLASH的特点。
1) An introduction to Nand flash
A. NAND FLASH同NOR FLASH相比,NANDFLASH有着容量大、价格低等优势。
A. Compared with NOR FLASH, Nand flash devices have the advantages of large capacity with lower cost. 
B.由于NAND生产工艺的原因,出厂芯片中会随机出现坏块。坏块在出厂时已经被初始化,并在特殊区域中标记为不可用,在使用过程中如果出现坏块,也需要进行标记。
B. Since the manufacturing method, te NAND flash may include invalid blocks when they are first shipped.  Bad blocks have been initialized before shipping and marked in the specific area. New bad blocks can be generated during usage so the system will have to identify these blocks.
C. NAND FLASH更易出现位反转的现象,如果位反转出现在关键文件上,会导致系统挂机。所以在使用NAND FLASH的同时,建议使用ECC/EDC算法确保可靠性。
C. Bit inverse is easier to be found in Nand flash. If bit inverse happens in the important file, it will cause system shut-down. Therefore, ECC/EDC algorithms are suggested to use to keep reliability when programming Nand Flash.
2)NAND FLASH的坏块处理  NAND FLASH的坏块处理方式有很多,用户可以根据自己的需要选择那一种方法,或者按照自己的要求向我们公司定做。目前我们公司比较成熟、已经被使用验证过的5~6种,下面主要对最常见的三种模式进行一下说明:
2) How to handle the bad blocks
There are many methods to handle the bad blocks. The customer can choose one method according to their own requirements or request Xeltek to customize the algorithms for their own solutions. Currently, we have 5 to 6 methods to handle the bad blocks.  Three common methods are introduced here.

A. 直接跳过(Skip Bad Block)

  这种处理方法是最为简单,也是最常见的方法。即读取辨认坏块标志后,如果此为坏块的话,将内容写入到下一个好块中。如果是读操作的话,不处理当前坏块,跳到下一个好块进行读(如图2)。如果使用这种方式,客户需要关注图(1)中的UBA start block、Size of UBA blocks ( RBA start block、Size of RBA blocks是针对Reserved block的。Boot start block、Size of Boot blocks是检查启动代码区有没有坏块使用的)。UBA start block表示程序文件从第几block开始进行烧录,默认是从0000开始。Size of UBA blocks表示程序文件要烧录多少个block。
   The skip bad block method is the simplest and most common method. This method is very straightforward. It is to just skip over the bad blocks and place the data in the good blocks. When reading a chip, the program just skip over the bad blocks and read the data in the next good blocks. Using this method, the customer needs to check User Block Area (UBA) start block、Size of UBA blocks in the figure 1. The Reserved Block Area (RBA) start block and the size of RBA blocks are used for reserved block method. Boot start block and Size of Boot blocks are used to check if there are bad blocks used in boot area. UBA start block shows the staring address to program the chip. The default address is 0000. The size of UBA blocks is the number of blocks to be programmed. 
  例如:程序的文件为19M,从第0个block开始烧录,目标芯片为K9F1208U0B,每个block大小为16K(大页模式为128K),则要烧写的block=19*1024/16=1216=0x4C0,为安全起见,建议留一点余量,加上0x10个block。所以UBA start block填0000, Size of UBA blocks填0x4D0.
  For example, the file size is 19M and programming starts from the first block. The target chip is K9F1208U0B. Each block is 16K (Large mode is 128K). The blocks for programming = 19*1024/16=1216=0x4C0. It is suggested to add 0x10 block to make sure to have enough space. Therefore, UBA start block is 0000 and Size of UBA blocks is 0x4D0.

 B. 保留替代(Reserved)

B. Reserved Block

使用这种方式编程时,将生成一个存储地址替代表。即当用户程序区出现坏块的时候,编程器软件会在Reserved区找一个好块替代它,并最终生成一张替代表,放在一个区域保留。在读写操作时,遇到坏块就读一下替代表,再读替代块的内容,这样的好处是让系统在逻辑上感觉存储器依然是连续的区域。
In this method, a mapping table will be generated. When a bad block is identified, the software will reserve a good block to replace it and creating a mapping table saved in a reserved area. When a bad block is detected during reading a chip, software will read the mapping table and then read the replaced block. The advantage is the storage area is logically continuous.
使用这种方式编程时,将生成一个存储地址替代表。即当用户程序区出现坏块的时候,编程器软件会在Reserved区找一个好块替代它,并最终生成一张替代表,放在一个区域保留。在读写操作时,遇到坏块就读一下替代表,再读替代块的内容,这样的好处是让系统在逻辑上感觉存储器依然是连续的区域。
In this method, a mapping table will be generated. When a bad block is identified, the software will reserve a good block to replace it and creating a mapping table saved in a reserved area. When a bad block is detected during reading a chip, software will read the mapping table and then read the replaced block. The advantage is the storage area is logically continuous.

如图3,UBA区是存放用户代码区的,RBA区是存放替代表的,Reserved for Replacement区是存放用户代码区出现坏块替代的内容的。
如图1中填写的话。UBA区是从0000~0EFF, RBA区是从0F80~0F8F, Reserved for Replacement区是从0F00~0F7F。Reserved for Replacement区是UBA与RBA中间的一段区域。
In figure 3, UBA is User Block Area. RBA is Reserved Block Area.  Reserved for Replacement
Between the starting address of UBA and RBA, there are some reserved for replacement blocks used for replacing the bad blocks.

 C.分区模式(Partition)
  分区模式是由一张分区表对NAND进行定位烧写的。在烧录准备前,先要装载或编辑一张分区表如图4&图5。
C. Partition

Partition is used to Nand programming based on a partition table. A partition table is loaded and edited before programming, shown in Figure 4 and Figure 5.

(图4)Figure 4

  在分区表中,每16个字节代表一个分区,16个字节中的第1~4个字节表示该分区的起始块地址,第5~8个字节表示该分区的结束块地址,第9~12个字节表示该分区实际使用到的块大小,第13~16个字节为保留字节。当遍历到分区的起始块地址为FF FF FF FF时,遍历结束。当在烧录过程中遇到坏块时,按Skip Bad Block处理。故如图5所示,该目标芯片要烧录三个分区,第一个分区的起始块地址为0000,结束块地址为007F,实际使用的块大小为0001。
In the partition table, every 16-byte represents a partition, in which the bytes from 1st to 4th  represents the starting block address, the bytes from the 5th to 8th represent the ending block address, the bytes form 9th to 12th represent the block size actually used, the bytes from 13th to 16th is the conserved bytes. The address searching will end until the starting address is FF FF FF FF. The skip bad block method is used during programming. For example, there are three partitions need to be programmed for this chip. The starting address and the ending address for the first
partition are 0000 and 007F.  The actual block size is 0001.
3)NAND FLASH的Spare Area的使用。
关于Spare Area的使用在如图1中的Spare Area(ECC)中设置。如果您要烧录的文件中已经包含了Spare Area的信息,请选择Used选项;如果您要烧录的文件中没有包含Spare Area的信息并且Spare Area也不需要任何处理,请选择Reserved, ECC disabled;如果您选择了Reserved, ECC enabled,表示您使用编程器计算出来的ECC算法。我们编程器默认使用的为512B ECC算法,以如下表的结构分布的。

0~4th

5th

6~8th

9~12th

13~15th

Reserved

Bad Mark

ECC0

ECC1

ECC2

Reserved

ECC0

ECC1

ECC2


如果您希望XELTEK编程器为您计算Spare区要存放的数据,请将您的要求详细告诉我们.

3) Spare Area in NAND FLASH
About the usage of Spare Area, we need to set the Spare Area (ECC) in Figure 1. If the file for programming includes Spare Area information, please select “Used”. If there is no Spare Area information in the file for programming, please select “Reserved, ECC disabled”. If you select “Reserved ,ECC enabled”, you will use the ECC algorithm generated by the software. The default algorithm used by our programmer is 512B ECC algorithm. Table 1 shows the format.

Table 1


0~4th

5th

6~8th

9~12th

13~15th

Reserved

Bad Mark

ECC0

ECC1

ECC2

Reserved

ECC0

ECC1

ECC2


If you want XELTEK programmer to calculate the data for saving to Spare Area, please tell us the requirement in details.

4)关于Boot Block Check。
一般情况,程序的Boot区是不允许有坏块的,所以在使用NAND芯片时,检查一下boot区的坏块情况是有必要的,如果您的Boot区安排在第0个block,一般情况下不需要检察坏块,因为芯片在出厂时已经保证了第0个block不是坏块。检查的设置如图1,其中Boot start block表示启动代码区的起始块,Size of Boot blocks启动代码区的大小。如果设置Size of Boot blocks为All blocks(全部块大小),就可以检查出整个NAND的坏块情况。
4) Generally, bad blocks are not allowed to reside in boot area. Therefore it is necessary to check if there are bad blocks in boot area when programming NAND chips. If your boot area is in the first block, there is no need to check the bad block since most NAND manufacturers guarantee that the first block is good. Figure 1 show the boot area configuration. Boot start block shows the starting address of boot area. Size of Boot blocks is the size of boot area. Size of Boot blocks is set to be the size of all blocks in order to check all bad blocks of the Nand chip.

5)坏块标志位。
一般情况,大页模式的坏块标志位为每个block的第2048个字节,小页模式的坏块标志位为每个block的第517个字节,所以在烧录文件中坏块标志位的内容必须为FF,如果您的程序中使用了非标准处理方法,请联系我们,我们会按您的要求提供算法。
5) Bad block mark
In general, the bad block mark for large page mode is in the 2948 byte of every block and in the 517 byte of every block. Therefore, the content of the bad block mark in the programming file is FF. If you didn’t use standard processing method in your file, please contact us. We will customize the algorithm according to your requirements.

6)关于新烧录模式、文件系统和Spare区特殊信息等的开发支持
如果您有如下的开发需求,请给我们提供详细的说明,我们会努力满足您的需求。
A.新的坏块处理方法。
B.非标准的坏块标志位。
C.使用ECC512B&ECC256W以外的ECC算法。
D. Spare区存放扇区,块使用次数,程序文件的其他信息。
E.需要文件系统(FFS)的支持。
....................................
6) About support for new programming mode, file system and specific information of spare area
Please provide the detail description about your development requirements. We will try to fulfill your requirements.

  1. New bad block processing method.
  2. Non standard bad block mark.
  3. Using ECC algorithm except ECC512B & ECC256W.
  4. Saving sector, block usage time, programming file or other information to Spare Area.
  5. Need FFS support.

 

3.NAND FLASH烧录常见问题解答
3. NAND FLASH programming FAQ
1) Config Error错误,不允许继续操作。
出现这样的情况是由于器件配置字(Dev.Config)中的参数设置不当。正确的设置应该是这样的:UBA start block应该是小于All Blocks,Size of UBA blocks应该小于或者等于All Blocks减去UBA start block。Boot start block应该是小于All Blocks,Size of Boot blocks小于或者等于All Block减去UBA start block。
如果在Reserved模式下面,UBA start block应该是小于RBA start block ,Size of UBA blocks 也应该是小于RBA start block减去UBA start block,RBA start block应该大于UBA start block加Size of UBA blocks、并且小于All Blocks,Size of RBA blocks应该小于All Blocks减去RBA start block。
1) Config Error, not allow to continue operation
The problem happens because the variables in Dev. Config is not set properly.
Correct setting is: UBA start block < All Blocks, 
Size of UBA blocks <= (All Blocks - UBA start block)
Boot start block < All Blocks
Size of Boot blocks <= (All Block - UBA start block)

2)编程中提示Good blocks not enough.
这是由于要烧录的数据超过了芯片好块的大小,所以设置器件配置字(Dev.Config)还应该结合芯片的实际情况,如果检查出芯片中有16个坏块,那实际的好块 (ALL Blocks)应该相应减去0x10.
有时在读写母片时也会出现这样的情况,而且检查坏块多少时发现有很多的坏块。这是因为母片中的坏块标志位被转移到其他的地方。默认的坏块标志位被写成有效的数据。

2) Programming message problem about “Good blocks not enough”
This problem happens because the programming file is larger than the size of all good blocks in the chip. Therefore, setting the value in Dev. Config should consider the actual size of the chip. If 16 bad blocks is detected in the chip, the actual good block size should be equal to (All Blocks – 0x10).
The similar problem could happen while reading and programming the master chip. More bad blocks will properly be detected, since the bad block mark of the mother chip is moved to other places. The default bad block mark is written as effective data.

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编程器烧写NAND flash的一些说明 的相关文章

  • 检索受“rowspan”影响的行的列索引的最有效方法是什么?

    考虑下表 table thead tr th th th A th th B th th C th tr thead tbody tr th 1 th td Apples td td Oranges td td Pears td tr tb
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 高维最近邻搜索的最佳数据结构

    我实际上正在处理高维数据 50 000 100 000 个特征 并且必须对其执行最近邻搜索 我知道随着维度的增长 KD 树的性能很差 而且我还了解到 一般来说 所有空间分区数据结构都倾向于对高维数据执行详尽的搜索 此外 还有两个重要事实需要
  • 寻找距离原点最近的 100 颗恒星的算法

    首先让我提出正确的问题 问 有一个文件包含超过一百万个点 x y 每个点代表一颗星星 a b 处有一颗行星地球 现在 任务是构建一种算法 返回距离地球最近的 100 颗恒星 您的算法的时间和空间复杂度是多少 这个问题在各种采访中被问过很多次
  • Flash 图表和图形的最佳解决方案是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道融合图表 http www fusioncharts com 还有其他好的解决方案或 API 用
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包
  • 有人可以解释以下异或属性

    我的一个论坛提到给定的数组n数字 arr 0 n 1 以下条件成立 is the xor运算符 f l r f 0 r f 0 l 1 where f l r arr l arr l 1 arr r 我检查了上面的数组数量和不同的值l an
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 包围一组点的多边形

    我有一组 S 点 2D 由 x 和 y 定义 我想找到 P 包围该组所有点的最小 含义 具有最少数量的点 多边形 P 是S 有没有已知的算法来计算这个 我在这个领域缺乏文化令人惊讶 感谢您的帮助 对于这个问题有很多算法 它被称为 最小边界框
  • 带路径压缩算法的加权 Quick-Union

    有一种 带路径压缩的加权快速联合 算法 代码 public class WeightedQU private int id private int iz public WeightedQU int N id new int N iz new
  • 生成所有多集大小为 n 的分区的算法

    我一直在试图找出一种方法来生成多重集的所有不同的大小为 n 的分区 但到目前为止却空手而归 首先让我展示一下我想要实现的目标 假设我们有一个输入向量uint32 t std vector
  • 用 C++ 生成 AST

    我正在用 C 制作一个解释器 到目前为止我已经有了词法分析器来生成标记 问题是我不确定如何生成 行走 解析树 我正在考虑使用数组数组来制作解析树 但我不确定如何以正确的顺序将标记实际插入到解析树中 我不确定是自上而下 左右还是自下而上 左右
  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对
  • 从一种数字系统转换为另一种数字系统后会有多少位数字

    主要问题 有多少位数字 让我解释 我有一个二进制数 11000000 十进制数是192 转换为十进制后 它有多少位 以十进制表示 在我的示例中 它是 3 位数字 但是 这不是问题 我在互联网上搜索并找到了一种用于整数部分的算法和一种用于小数
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 用于开始和/或包含搜索的最快字符串集合结构/算法是什么

    我有以下情况 我有一个大的字符串集合 比如说 250 000 平均长度可能是 30 我要做的就是在这些搜索中进行许多搜索 大多数搜索都是 StartsWith 和 Contains 类型的 该集合在运行时是静态的 这意味着选择的集合的初始读
  • 需要解释搜索最小大和的算法

    我正在解决 Codility 问题作为练习 但无法回答其中一个问题 我在互联网上找到了答案 但我不明白这个算法是如何工作的 有人可以引导我逐步完成它吗 这是问题 You are given integers K M and a non em
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出

随机推荐

  • 比较级的用法

    文章目录 1 比较级 最高级的变换规则 2 比较级 最高级在句子中的应用 1 比较级 最高级的变换规则 通常在形容词和副词后面加 er est 最高级前面要加the hard harder the hardest 词尾是不发音的单音节e时
  • 使用 Python 的支持向量回归 (SVR):预测建模的实用方法

    介绍 支持向量回归 SVR 是一种用于解决回归问题的强大算法 它是支持向量机 SVM 的一部分 用于变量之间的非线性关系 在本文中 我们将学习如何使用 python 语言实现它 了解 SVR SVR 的目标是找到最适合数据点的超平面 同时允
  • 部署gitlab以及迁移代码仓库方案

    作者 JohnLi 未经允许 禁止转载 一 关闭防火墙与内核 systemctl stop firewalld setenforce 0 二 配置yum源并下载依赖 root gitlab cd etc yum repos d root g
  • 深度选择器{/deep/ ; >>> ; ::v-deep }在vue前端项目中使用注意事项

    官网地址 https vue loader vuejs org zh guide scoped css html E6 B7 B1 E5 BA A6 E4 BD 9C E7 94 A8 E9 80 89 E6 8B A9 E5 99 A8
  • linux gvim使用教程,Vim编辑器使用教程

    Vim是一个类似Vi的著名的功能强大 高度可定制的文本编辑器 在Vi的基础上改进和增加了许多的功能 Vim是自由软件 今天我们就来讲讲Vim的使用方法 本文是基于CentOS7上的vim编辑器演示的 默认CentOS7没有安装Vim 可以使
  • 解压后还原jar包

    解压后还原jar包 记一次 jar 包还原 JAR 文件就是 Java Archive Java 档案文件 它是 Java 的一种文档格式 JAR 文件非常类似 ZIP 文件 准确的说 它就是 ZIP 文件 所以叫它文件包 JAR 文件与
  • vue-charts 的图片自定义导出

    chart 图
  • [YOLO专题-27]:YOLO V5 小目标检测遇到的问题与常见解决办法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122348281 目录 第1章 前言
  • 使用android studio进行springboot项目的开发

    B站视频 Step 1 Modify build gradle Module Dir apply plugin org springframework boot apply plugin java dependencies implemen
  • MATLAB—医学图像读取(1)

    基于matlab的医学图像处理 图像读取 1 1 一般图像读取 2 医学图像读取操作 图像读取 1 1 一般图像读取 imread指令 读取图像文件 BMP GIF PNG JPEG and TIFF imshow指令 显示图像 imwri
  • 逆向爬虫26 各种加密逻辑

    逆向爬虫26 各种加密逻辑 一 什么是加密 加密就是输入一段得懂的东西 明文 通过一系列数学算法加工后 输出一段看不懂的东西 密文 二 为什么要加密 什么情况下需要加密 当我们想在网络上传输私密数据时 就需要用到加密 加密可以使数据变得更安
  • 从事研发管理的心得

    从事管理工作的心得 前言 职业生涯中 从技术走向管理似乎已成为普遍并达成共识的职业规划套路 但要完成这样的转变过程是需要一定的思考的 它肯定不会也不应该如同开关切换一样简单 因为在技术与管理之间肯定不是断崖 即使是也应该有一个安全可靠且宽阔
  • 芯片封装测试流程详解,一文带你了解清楚

    芯片封装是指芯片在框架或基板上布局 粘贴固定和连接 经过接线端后用塑封固定 形成立体结构的工艺 下面就带大家来了解一下芯片封装 什么是芯片 想要了解芯片封装测试 首先应该了解芯片 芯片其实是半导体元件产品的统称 很多时候我们把集成电路 In
  • [jQuery自定义插件] 2 自定义消息弹窗插件-jQueryToast

    用多了市面上的各种ui框架 各种的消息弹窗类型 我选择其中的一种 我觉得比较好看的 去模仿实现了 先上源码 再解释 目录结构 1 jQueryToast css ftoast position fixed top 0 width 351px
  • [Hive]一篇带你读懂Hive是什么

    作者简介 大家好 我是Philosophy7 让我们一起共同进步吧 个人主页 Philosophy7的csdn博客 系列专栏 哲学语录 承认自己的无知 乃是开启智慧的大门 如果觉得博主的文章还不错的话 请点赞 收藏 留言 支持一下博 gt
  • 组合优化问题求解算法思路的整理(VRP、SDVRP,container loading)

    一 技术背景与合作的必要性 解决合作问题现有的技术路线 挑战与不足 拟采用的技术路线 合作引进 这种技术的有益效果 缺 求解组合优化问题可以通过利用各种数学方法 寻找离散事件的最优编排 分组 次 序或筛选等 目前常用的优化算法可以分为以下四
  • 【LaTeX 教程】04. LaTeX 插入数学公式与符号

    LaTeX 教程 04 LaTeX 插入符号与数学公式 LaTeX 公式 我将把握最近文章里用到的数学公式格式都放上来供大家参考学习 首先 最简单的数学模式 xxx 一个 符号 中间的内容是行内模式 xxx 两个 符号 中间的内容是行间模式
  • 使用wxml2canvas将微信小程序页面转为图片

    最近有个微信小程序项目 需要将页面转为图片 微信小程序提供的Api是wx canvasToTempFilePath 这个方法是将画布指定区域的内容导出生成指定大小的图片 但是我们是将页面导出图片 所以可以使用wxml2canvas解决 1
  • WINRAR常用命令

    这段时间因为工作的需要 研究了一下关于WINRAR的操作 一下是关于它的一些常用命令 一 压缩命令1 将temp txt压缩为temp rarrar a temp rar temp txt 2 将当前目录下所有文件压缩到temp rarra
  • 编程器烧写NAND flash的一些说明

    注意事项 1 大小端模式 也即在使用编程器时需不需要做字节反序 2 Spare area处理方式 需要还是不需要 是否含有私有ECC算法 3 坏块处理方式 摘要一段说明如下 虽然针对西尔特SUPERPRO 9000U的文章 但也对许多其他的