CN106339246A | 2017-01-18 | |||
CN103049298A | 2013-04-17 | |||
CN102999436A | 2013-03-27 |
权利要求书 [权利要求 1] 一种用于 NANDFLASH生产阶段的烧写方法, 其特征在于, 包括以下 步骤: SI : PC端烧片程序发送终端烧片程序到终端的 NANDFLASH中; S2: 所述终端烧片程序检测 NANDFLASH中的坏块分布, 发送所述 坏块分布到 PC端烧片程序; S3: PC端烧片程序根据收到的坏块分布和预置的第一分区表, 所述 第一分区表描述每个分区实际需要使用的区域大小; 算出每个分区实 际占用的区域大小, 从而生成用于这个分区的第二分区表; S4: PC端烧片程序根据第二分区表依次在终端的 NANDFLASH中烧 写入每个分区的镜像。 [权利要求 2] 根据权利要求 1所述的用于 NANDFLASH生产阶段的烧写方法, 其特 征在于, 所述步骤 S 1中 PC端烧片程序在 Linux操作系统下运行。 [权利要求 3] 根据权利要求 1所述的用于 NANDFLASH生产阶段的烧写方法, 其特 征在于, 所述步骤 S4中 PC端烧片程序将第二分区表通过加入 Uboot环 境变量分区, 生成分区镜像, 并写入终端的 NANDFLASH。 [权利要求 4] 根据权利要求 1所述的用于 NANDFLASH生产阶段的烧写方法, 其特 征在于, 所述步骤 S1中 PC端通过 USB连接终端, 发送终端烧片程序 SJ终端的 NANDFLASH中。 [权利要求 5] 根据权利要求 1所述的用于 NANDFLASH生产阶段的烧写方法, 其特 征在于, 所述步骤 S3中 PC端烧片程序根据收到的坏块分布和预置的 第一分区表, 在所述第一分区表中的各区内加上该区内坏块占用的区 域大小, 算出每个分区实际占用的区域大小, 从而生成第二分区表。 [权利要求 6] 根据权利要求 1所述的用于 NANDFLASH生产阶段的烧写方法, 其特 征在于, 所述步骤 S4中依次在终端的 NANDFLASH中烧写入每个分 区的镜像后, 启动终端, 操作系统按照第二分区表依次加载相应的镜 像运行。 [权利要求 7] —种用于 NANDFLASH生产阶段的烧写系统, 其特征在于, 包括: 发送模块: 用于发送终端烧片程序到终端的 NANDFLASH中; 检测模块: 用于检测 NANDFLASH中的坏块分布, 并发送到 PC端; 分区表生成模块: 用于根据 PC端烧片程序程序根据收到的坏块分布 和预置的第一分区表, 算出每个分区实际占用的区域大小, 从而生成 用于这个分区的第二分区表; 烧写模块: 用于根据第二分区表依次在终端的 NANDFLASH中烧写入 每个分区的镜像。 根据权利要求 7所述的用于 NANDFLASH生产阶段的烧写系统, 其特 征在于, 还包括 PC端烧写程序运行模块, 用于在 Linux操作系统下运 行所述 PC端烧写程序。 根据权利要求 7所述的用于 NANDFLASH生产阶段的烧写系统, 其特 征在于, 还包括镜像生成模块, 用于将第二分区表通过加入 Uboot环 境变量分区, 生成分区镜像。 根据权利要求 7所述的用于 NANDFLASH生产阶段的烧写系统, 其特 征在于, 还包括镜像运行模块, 用于在操作系统中按照第二分区表依 次加载相应的镜像运行。 |
技术领域
[0001] 本发明涉及 PC领域, 特别涉及一种用于 NANDFLASH生产阶段的烧写方法及 其烧写系统。
背景技术
[0002] 由于 NANDFLASH具有容量大、 成本低、 改写速度快的优点, 已经逐渐在支付 终端、 车载导航、 工控设备、 机顶盒等嵌入式设备上的得到使用, 替代了原来 N ORFLASH等存储设备的地位。
[0003] 大部分嵌入式设备都需要把 FLASH划分为不同区域实现不同功能。 常见的分区 有 Uboot分区、 Linux内核分区、 LOGO分区、 系统配置分区等。 而在生产阶段, 大部分分区都需要预先写入不同的镜像, 而在写入吋, 需要根据分区表进行写 入。 分区表描述了 FLASH上的各区域分布, 包括起始地址、 大小等。
[0004] 目前在生产烧入吋, 多使用固定的分区表, 规定了每个分区的实际大小。 对于 NANDFLASH, 这种方式存在问题。 NANDFLASH芯片的工艺决定了其存在着 一定数量的坏块; 对于每片 NANDFLASH, 坏块的数量和分布都是不同的。 这 样, 如果使用固定的分区表, 就存在因为某个分区所在区域坏块过多导致有 效 区域变小, 无法烧入完整的镜像; 这样使得一些终端无法正常使用。 如果这些 分区预留较多区域, 则会存在浪费区域的情况, 使 FLASH空间利用率降低, 甚 至导致被迫选用更大容量的 FLASH而导致成本上升。
[0005] 申请号为 CN201210157878.7的中国专利公幵了一种闪速存储 坏块管理办法, 将存储器空间划分为第一区域和第二区域, 将第一区域中的坏块映射到第二区 域中的正常块, 并将记录这样的映射关系的 BBT存储在第二区域的块中。 该方法 通过使用多个坏块表来保存映射关系, 以避免由于坏块表所在的块损坏造成映 射关系的丢失。 但该专利的坏块管理办法存在问题, 由于坏块表和数据都会存 放在第二区域的块中, 如果使用标志位来区分块中存储的是坏块表还 是数据, 则在每次访问 NAND闪存设备吋, 都需要遍历整个第二区域来査找坏块表, 降低 访问效率, 如果在第二区域中划分特定的空间来保存坏块 表, 虽然能减少遍历 块的数量, 但特定空间内的块只能用于保存坏块表, 不能用于存放数据, 浪费 了存储空间。
技术问题
[0006] 本发明所要解决的技术问题是: 提供一种用于 NANDFLASH生产阶段的烧写方 法及其烧写系统, 解决 NANDFLASH在生产阶段产生的坏块造成某个分区内 坏 块集中, 有效区域无法烧入完整镜像的问题, 以及在分区吋预留较多区域带来 空间利用率低, 成本上升的问题。
问题的解决方案
技术解决方案
[0007] 为了解决上述技术问题, 本发明采用的技术方案为: 提供一种用于 NANDFLA
SH生产阶段的烧写方法, 包括以下步骤:
[0008] SI : PC端烧片程序发送终端烧片程序到终端的 NANDFLASH中;
[0009] S2: 所述终端烧片程序检测 NANDFLASH中的坏块分布, 发送所述坏块分布到
PC端烧片程序;
[0010] S3: PC端烧片程序根据收到的坏块分布和预置的第 分区表, 所述第一分区 表描述每个分区实际需要使用的区域大小; 算出每个分区实际占用的区域大小
, 从而生成用于这个分区的第二分区表;
[0011] S4: PC端烧片程序根据第二分区表依次在终端的 NANDFLASH中烧写入每个 分区的镜像。 烧片程序烧片程序烧片程序。
发明的有益效果
有益效果
[0012] 本发明的有益效果在于: 本发明根据所需烧入 NANDFLASH中的镜像在 PC端 烧片程序中预置分区表, 通过终端执行 PC端发送的烧片程序检测 NANDFLASH 中的坏块分布, 再根据坏块分布情况在预置的分区表中的各区 内加上该区坏块 占用的空间, 设置新的分区表, 用于指导后续各分区镜像烧入过程和系统运行 ; 这种方式避免了固定分区表带来的部分终端无 法使用或 NANDFLASH空间利 用率下降的问题, 既保证了生产质量, 又提高了存储空间利用率, 控制了成本 对附图的简要说明
附图说明
[0013] 图 1为本发明具体实施方式的用于 NANDFLASH生产阶段的烧写方法的步骤流 程图;
[0014] 图 2为本发明具体实施方式的用于 NANDFLASH生产阶段的烧写方法的模块结 构图。
具体实施方式
[0015] 本发明最关键的构思在于: 根据坏块分布情况在预置的分区表中的各区内 加上 该区坏块占用的空间, 设置新的分区表, 用于指导后续各分区镜像烧入过程和 系统运行。
[0016] 请参照图 1和图 2, 本发明提供一种用于 NANDFLASH生产阶段的烧写方法, 包 括以下步骤:
[0017] SI : PC端烧片程序发送终端烧片程序到终端的 NANDFLASH中;
[0018] S2: 所述终端烧片程序检测 NANDFLASH中的坏块分布, 发送所述坏块分布到 PC端烧片程序;
[0019] S3: PC端烧片程序根据收到的坏块分布和预置的第 分区表, 所述第一分区 表描述每个分区实际需要使用的区域大小; 算出每个分区实际占用的区域大小
, 从而生成用于这个分区的第二分区表;
[0020] S4: PC端烧片程序根据第二分区表依次在终端的 NANDFLASH中烧写入每个 分区的镜像。 烧片程序烧片程序烧片程序
[0021] 上述用于 NANDFLASH生产阶段的烧写方法中, 根据所需烧入 NANDFLASH中 的镜像在 PC端烧片程序中预置分区表, 通过终端执行 PC端发送的烧片程序检测 NANDFLASH中的坏块分布, 再根据坏块分布情况在预置的分区表中的各区 内 加上该区坏块占用的空间, 设置新的分区表, 用于指导后续各分区镜像烧入过 程和系统运行; 这种方式避免了固定分区表带来的部分终端无 法使用或 NANDF LASH空间利用率下降的问题, 既保证了生产质量, 又提高了存储空间利用率, 控制了成本。
[0022] 进一步的, 所述步骤 S1中 PC端烧片程序在 Linux操作系统下运行。
[0023] Linux是幵放源代码的操作系统, 除了 Kernel免费以外, 它的许多系统程序也是 自由软件, 可以从网上免费获得。
[0024] 进一步的, 所述步骤 S4中 PC端烧片程序将第二分区表通过加入 Uboot环境变量 分区, 生成分区镜像, 并写入终端的 NANDFLASH。
[0025] Uboot是 Universal Boot Loader的缩写, 是遵循 GPL条款的幵放源代码项目, 其 源码目录、 编译形式与 Linux内核很相似, 不少 Uboot源代码就是根据相应的 Linu X内核源程序进行简化形成的, Uboot是在操作系统运行前执行的一小段程序, 通过它初始化硬件设备, 建立适当的硬软件环境, 为最终调用操作系统内核做 好准备。
[0026] 进一步的, 所述步骤 S1中 PC端通过 USB连接终端, 发送终端烧片程序到终端的 NANDFLASH中。
[0027] USB连接方式具有可以热拔插、 携带方便、 标准统一、 可连接多个设备的特点
, 广泛用于 PC端与外设端的连接, 同样适用于 PC端与终端的连接。
[0028] 进一步的, 所述步骤 S3中 PC端烧片程序根据收到的坏块分布和预置的第 分 区表, 在所述第一分区表中的各区内加上该区内坏块 占用的区域大小, 算出每 个分区实际占用的区域大小, 从而生成第二分区表。
[0029] 根据 NANDFLASH中坏块的分布, 在预置的分区表中相应的区内加上坏块占用 的空间, 在保证各区空间利用最大化、 节约成本的同吋, 保证各分区的镜像能 够完整烧写入 NANDFLASH。
[0030] 进一步的, 所述步骤 S4中依次在终端的 NANDFLASH中烧写入每个分区的镜像 后, 启动终端, 操作系统按照第二分区表依次加载相应的镜像 运行。
[0031] 根据 NANDFLASH坏块分布情况重设的分区表, 在 NANDFLASH中烧写入镜像 后, 启动终端, 操作系统能够成功加载相应的镜像运行, 说明镜像的烧写是完 整的。
[0032] 一种用于 NANDFLASH生产阶段的烧写系统, 包括: [0033] 发送模块: 用于发送 PC端的烧片程序到终端的 NANDFLASH中;
[0034] 检测模块: 用于检测 NANDFLASH中的坏块分布, 并发送到 PC端;
[0035] 分区表生成模块: 用于根据 PC端烧片程序根据收到的坏块分布和预置的第 分 区表, 算出每个分区实际占用的区域大小, 从而生成用于这个分区的第二分区 表;
[0036] 烧写模块: 用于根据第二分区表依次在终端的 NANDFLASH中烧写入每个分区 的镜像。
[0037] 进一步的, 用于 NANDFLASH生产阶段的烧写系统还包括 PC端烧写程序运行 模块, 用于在 Linux操作系统下运行所述 PC端烧写程序。
[0038] 进一步的, 用于 NANDFLASH生产阶段的烧写系统还包括镜像生成模 块, 用于 将第二分区表通过加入 Uboot环境变量分区, 生成分区镜像。
[0039] 进一步的, 用于 NANDFLASH生产阶段的烧写系统还包括镜像运行模 块, 用于 在操作系统中按照第二分区表依次加载相应的 镜像运行。
[0040] 实施例 1
[0041] 请参照图 1, 一种用于 NANDFLASH生产阶段的烧写方法, 包括以下步骤: [0042] SI : PC端通过 USB连接终端, PC端烧片程序发送终端烧片程序到终端的 NAN
DFLASH中, 所述 PC端烧片程序在 Linux操作系统下运行;
[0043] S2: 所述终端烧片程序检测 NANDFLASH中的坏块分布, 发送所述坏块分布到
PC端烧片程序;
[0044] S3: PC端烧片程序根据收到的坏块分布和预置的第 分区表, 在所述第一分 区表中的各区内加上该区内坏块占用的区域大 小, 算出每个分区实际占用的区 域大小, 从而生成第二分区表;
[0045] S4: PC端烧片程序将第二分区表通过加入 Uboot环境变量分区, 生成分区镜像 , 并写入终端的 NANDFLASH; 依次在终端的 NANDFLASH中烧写入每个分区 的镜像后, 启动终端, 操作系统按照第二分区表依次加载相应的镜像 运行。
[0046] 请参照图 2, 一种用于 NANDFLASH生产阶段的烧写系统, 包括:
[0047] 发送模块: 用于发送 PC端的烧片程序到终端的 NANDFLASH中;
[0048] 检测模块: 用于检测 NANDFLASH中的坏块分布, 并发送到 PC端; [0049] 分区表生成模块: 用于根据 PC端烧片程序根据收到的坏块分布和预置的第 分 区表, 算出每个分区实际占用的区域大小, 从而生成用于这个分区的第二分区 表。
[0050] 综上所述, 本发明提供的一种 NANDFLASH生产阶段的烧写方法, 根据所需烧 入 NANDFLASH中的镜像在 PC端烧片程序中预置分区表, 通过终端执行 PC端发 送的烧片程序检测 NANDFLASH中的坏块分布, 再根据坏块分布情况在预置的 分区表中的各区内加上该区坏块占用的空间, 设置新的分区表, 用于指导后续 各分区镜像烧入过程和系统运行; 这种方式避免了固定分区表带来的部分终端 无法使用或 NANDFLASH空间利用率下降的问题, 既保证了生产质量, 又提高 了存储空间利用率, 控制了成本。
[0051] Linux是幵放源代码的操作系统, 除了 Kernel免费以外, 它的许多系统程序也是 自由软件, 可以从网上免费获得。
[0052] Uboot是 Universal Boot Loader的缩写, 是遵循 GPL条款的幵放源代码项目, 其 源码目录、 编译形式与 Linux内核很相似, 不少 Uboot源代码就是根据相应的 Linu X内核源程序进行简化形成的, Uboot是在操作系统运行前执行的一小段程序, 通过它初始化硬件设备, 建立适当的硬软件环境, 为最终调用操作系统内核做 好准备。
[0053] USB连接方式具有可以热拔插、 携带方便、 标准统一、 可连接多个设备的特点
, 广泛用于 PC端与外设端的连接, 同样适用于 PC端与终端的连接。
[0054] 根据 NANDFLASH中坏块的分布, 在预置的分区表中相应的区内加上坏块占用 的空间, 在保证各区空间利用最大化、 节约成本的同吋, 保证各分区的镜像能 够完整烧写入 NANDFLASH。
[0055] 根据 NANDFLASH坏块分布情况重设的分区表, 在 NANDFLASH中烧写入镜像 后, 启动终端, 操作系统能够成功加载相应的镜像运行, 说明镜像的烧写是完 整的。
[0056]