CN111966369B - 一种nand存储器离线烧录镜像制作及验证方法 - Google Patents
一种nand存储器离线烧录镜像制作及验证方法 Download PDFInfo
- Publication number
- CN111966369B CN111966369B CN202011126335.XA CN202011126335A CN111966369B CN 111966369 B CN111966369 B CN 111966369B CN 202011126335 A CN202011126335 A CN 202011126335A CN 111966369 B CN111966369 B CN 111966369B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- partition
- nandflash
- data
- file system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种NAND存储器离线烧录镜像制作及验证方法,涉及车载存储设备技术领域,通过对最终生成镜像的不同分区分别做相应的软件处理,可以实现离线镜像的一键生成,只要将原始镜像输入,软件会根据Nandflash的实际分区配置自动生成离线镜像文件,这样镜像生成完全不依赖Nandflash控制器和Nandflash对应文件系统的运行,无须机器上电就可以实现对Nandflash的镜像烧写,极大提高了产线烧录效率,通过软件模拟硬件算法以及对现有文件系统离线镜像制作工具的改进,实现离线镜像制作的全自动化,并通过烧录器一次性离线烧写,增加镜像校验机制,通过回读离线镜像和源数据比较的方法,检验离线镜像的正确性。
Description
技术领域
本发明涉及车载存储设备技术领域,特别涉及一种NAND存储器离线烧录镜像制作及验证方法。
背景技术
目前现有技术通常只能实现在线镜像烧写,需要输入编译生成镜像,对数据校验部分则只能通过上电后打开对应Nandflash控制器的硬件使能去烧写,对于有文件系统部分,也需要挂载文件系统并通过在线拷贝的方式实现,且针对在线烧写的错误定位困难,特别是坏块较多的情况贴片以后才能发现,更换困难以及无法校验。
发明内容
为了解决上述技术问题,克服现有技术中存在的完全依赖Nandflash控制器和在线文件系统拷贝生成镜像的方法,通过软件模拟硬件算法以及对现有文件系统离线镜像制作工具的改进,实现离线镜像制作的全自动化,并通过烧录器一次性离线烧写,增加镜像校验机制,通过回读离线镜像和源数据比较的方法,检验离线镜像的正确性,本发明提供一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,所述方法包括以下步骤:
1)对最终生成镜像的Nandflash的不同分区分别做相应的软件处理:Uboot分区加入系统配置信息和坏块表,Ubifs分区加入文件系统头部信息和校验码;
2)针对不带文件系统的分区,需要将对应的数据区域用软件校验码算法计算出其对应的校验码,然后根据目前Nandflash的数据布局将数据组织起来;
3)针对带文件系统的数据,先根据文件系统离线镜像制作工具制作离线镜像,再将对应的文件系统信息添加到对应数据区,最后将对应的数据区域用软件校验算法计算出其对应的数据校验位,最后根据目前Nandflash的数据布局将数据组织起来;
4)写入flash的镜像根据Nandflash的实际布局跳坏块,若版本大小加上坏块大小大于分区个数,实际写入数据超出了分区大小则烧录失败;
作为本发明的一种改进,针对带文件系统的数据,先根据文件系统离线镜像制作工具制作离线镜像,再将对应的数据区域用软件校验码算法计算出其对应的校验码并按照数据布局打包数据,首先通过Uboot分区数据打包,Uboot分区中的配置信息打包校验位,再通过Kernel分区数据打包、Ubifs分区数据打包以及标识分区数据打包,最后除配置信息外所有数据计算校验位并打包。
作为本发明的一种改进, Ubifs分区数据打包中Ubiformat在烧录的时候填写文件系统数据并计算校验位,离线镜像通过软件方式模拟文件系统行为,将对应文件系统信息填充好。
作为本发明的一种改进,各分区格式如下:
分区名称 | 分区位置 | 分区格式 |
Uboot分区 | 0~0x3FFFFF | 裸数据 |
Kernel分区 | 0x400000~0xFFFFFF | 裸数据 |
根文件系统分区 | 0x1000000~0x19FFFFFF | Ubifs |
配置数据1分区 | 0x1A000000~0x1AFFFFFF | Ubifs |
配置数据2分区 | 0x1B000000~0x1BFFFFFF | Ubifs |
用户数据分区 | 0x1E800000~0x1FFFFFFF | Ubifs |
保留分区 | 0x1E800000~0x1FFFFFFF | 裸数据 |
作为本发明的一种改进,Uboot分区包括系统配置、坏块表以及Uboot文件,所述的系统配置为固件配置信息,记录Nandflash的时序以及大小的参数,制作离线镜像根据固件控制块格式要求将对应参数填写正确,坏块表部分为Uboot分区的坏块表,CPU在启动Uboot时直接根据读到的参数来读取Nandflash数据,Uboot区域的坏块表在写入的时候生成,CPU在读取Uboot时参照坏块表跳过坏块。
作为本发明的一种改进,所述Kernel分区中的固定位置放置两份Kernel编译生成文件,Ubifs分区数据打包通过Ubifs提供的开源工具生成文件系统镜像。
作为本发明的一种改进,NAND控制器使用的是BCH算法,通过软件方式实现该算法,将对应校验码生成并填充到对应位置。
作为本发明的一种改进,每个Nandflash的坏块位置不同,生成离线镜像的时候先用0xff填充,首次写入时根据该分区实际坏块数填充,后面跟随1KB的填充区,再加上Uboot的编译生成文件。
相对于现有技术,本发明的有益效果是:
1、 本发明通过对最终生成镜像的不同分区分别做相应的软件处理,可以实现离线镜像的一键生成,只要将原始镜像输入,软件会根据Nandflash的实际分区配置自动生成离线镜像文件,这样镜像生成完全不依赖Nandflash控制器和Nandflash对应文件系统的运行,无须机器上电就可以实现对Nandflash的镜像烧写,可以实现先烧录后贴片,极大提高了产线烧录效率。
2、 本发明能够做到硬件校验位的软件模拟,实现了文件系统的离线烧录,ROM中代码直接读取Uboot,Uboot实现离线烧录坏块表,通过软件模拟硬件算法以及对现有文件系统离线镜像制作工具的改进,实现离线镜像制作的全自动化,并通过烧录器一次性离线烧写,增加镜像校验机制,通过回读离线镜像和源数据比较的方法,检验离线镜像的正确性。
附图说明
图1为本发明所述的Uboot分区格式框图。
图2为本发明所述的Nandflash布局框图。
图3为本发明所述的Nandflash离线镜像框图。
图4为本发明所述的整体实现流程图。
具体实施方式
以下将结合附图1至附图4对本发明做进一步地说明,但不应以此来限制本发明的保护范围。为了方便说明并且理解本发明的技术方案,以下说明均以附图所展示为准,
实施例:所述方法包括以下步骤:
1)对最终生成镜像的Nandflash的不同分区分别做相应的软件处理:Uboot分区加入系统配置信息和坏块表,Ubifs分区加入文件系统头部信息和校验码;
2)针对不带文件系统的分区,需要将对应的数据区域用软件校验码算法计算出其对应的校验码,然后根据目前Nandflash的数据布局将数据组织起来;
3)针对带文件系统的数据,先根据文件系统离线镜像制作工具制作离线镜像,再将对应的文件系统信息添加到对应数据区,最后将对应的数据区域用软件校验码算法计算出其对应的校验码,最后根据目前Nandflash的数据布局将数据组织起来;
4)写入闪存的镜像根据Nandflash的实际布局跳坏块,若版本大小加上坏块大小大于分区个数,实际写入数据超出了分区大小则烧录失败;
针对带文件系统的数据,先根据文件系统离线镜像制作工具制作离线镜像,再将对应的数据区域用软件校验算法计算出其对应的校验并按照对应数据组织方式打包数据,首先通过Uboot分区数据打包,Uboot分区中的配置信息打包校验位,再通过Kernel分区数据打包、Ubifs分区数据打包以及标识分区数据打包,最后除配置信息外所有数据计算校验位并打包。
Ubifs分区数据打包中Ubiformat在烧录的时候填写文件系统数据并计算校验位,离线镜像通过软件方式模拟文件系统行为,将对应文件系统信息填充好。
所述Nandflash分区结构包括Uboot分区、Kernel分区、Ubifs分区以及标识分区,所述Uboot分区在Nandflash分区中的分区位置为0~0x3FFFFF,分区格式为裸数据,Kernel分区在Nandflash分区中的分区位置为0x400000~0xFFFFFF,分区格式为裸数据,Ubifs分区包括根文件系统分区、配置数据1分区、配置数据2分区以及用户数据分区,其中根文件系统分区在Nandflash分区中的分区位置为0x1000000~0x19FFFFFF,分区格式为Ubifs,配置数据1分区在Nandflash分区中的分区位置为0x1A000000~0x1AFFFFFF,分区格式为Ubifs,配置数据2分区在Nandflash分区中的分区位置为0x1B000000~0x1BFFFFFF,分区格式为Ubifs,用户数据分区在Nandflash分区中的分区位置为0x1E800000~0x1FFFFFFF,分区格式为Ubifs。
如图1所示,Uboot分区包括系统配置、坏块表以及Uboot文件,所述的系统配置为固件配置信息,记录Nandflash的时序以及大小的参数,制作离线镜像根据固件控制块格式要求将对应参数填写正确,坏块表部分为Uboot分区的坏块表,CPU在启动Uboot时直接根据读到的参数来读取Nandflash数据,Uboot区域的坏块表在写入的时候生成,CPU在读取Uboot时参照坏块表跳过坏块,Uboot分区包括系统配置(4个block)、坏块表(4个block)以及Uboot文件,所述的系统配置为固件配置信息,记录Nandflash的时序以及大小的参数,制作离线镜像需要根据固件控制模块格式要求将对应参数填写正确,坏块表部分为Uboot分区的坏块表,所述Kernel分区中的固定位置放置两份Kernel编译生成文件,Ubifs分区数据打包通过Ubifs提供的开源工具生成文件系统镜像。
Nand控制器使用的是BCH算法,通过软件方式实现该算法,将对应校验码生成并填充到对应位置。
根据图2所示,每个Nandflash的坏块位置不同,生成离线镜像的时候先用0xff填充,首次写入时根据该分区实际情况填充,后面跟随1KB的填充区,再加上Uboot的编译生成文件,每个Nandflash的坏块位置都不一样,所以生成离线镜像的时候先用0xff填充,首次写入时根据该分区实际坏块数填充,后面跟随1KB的填充区,再加上Uboot的编译生成文件,本发明可以实现离线镜像的一键生成,只要将原始镜像输入,软件会根据Nandflash的实际分区配置自动生成离线镜像文件,这样镜像生成完全不依赖Nandflash控制器和Nandflash对应文件系统的运行,无须机器上电就可以实现对Nandflash的镜像烧写,可以实现先烧录后贴片,极大提高了产线烧录效率。
如图3所示,Uboot分区(Uboot和 Uboot备份)系统配置预留3M,分区位置为0x100000,Kernel内核分区(Kernel和Kernel备份)系统配置预留12M,分区位置为0x400000,根文件系统分区系统配置预留400M,分区位置为0x1000000,配置数据1分区和配置数据2分区分别系统配置预留16M,分区位置分别为0x1A000000和0x1B000000,用户数据分区系统配置预留50M,分区位置为0x1C000000,保留分区系统配置预留24M,分区位置为0x1E800000。
如图4所示,首先读取分区配置信息,分区格式信息以及Nandflash配置信息,判断是否为裸数据区,若为裸数据区,继续判断是否为Uboot分区,若是,则打包固件配置信息并计算校验位打包Uboot文件信息,若不是,则按照裸数据分区格式打包数据;若不为裸数据区,继续判断是否为Ubifs文件系统区,若是,则根据Ubifs离线镜像工具制作镜像,并模拟Ubiformat行为进行格式化,然后计算除固件配置信息部分的校验码并打包,若不是,则直接计算除固件配置信息部分的校验码并打包,再根据分区配置向Nandflash写入数据并跳坏块,检验是否超过分区范围,如果超出,显示出错提示,若没有超出,则结束。
最后应说明的是:以上所述的实施例仅用于说明本发明的技术方案,而非对其限制,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换,而这些修改或替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (6)
1.一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,所述方法包括以下步骤:
1)对最终生成镜像的Nandflash的不同分区分别做相应的软件处理:Uboot分区加入系统配置信息和坏块表,Ubifs分区加入文件系统头部信息和校验码;
2)针对不带文件系统的分区,需要将对应的数据区域用软件校验码算法计算出其对应的校验码,然后根据目前Nandflash的数据布局将数据组织起来;
3)针对带文件系统的数据,先根据文件系统离线镜像制作工具制作离线镜像,再将对应的文件系统信息添加到对应数据区,最后将对应的数据区域用软件校验码算法计算出其对应的校验码,最后根据目前Nandflash的数据布局将数据组织起来;
4) 写入flash的镜像根据Nandflash的实际布局跳坏块,若版本大小加上坏块大小大于分区个数,导致实际烧录时写离线镜像超出分区大小,则烧录失败。
2.根据权利要求1所述的一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,Ubifs分区数据打包中Ubiformat在烧录的时候填写文件系统数据并计算校验位,离线镜像通过软件方式模拟文件系统行为,将对应文件系统信息填充好。
3.根据权利要求1所述的一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,Uboot分区包括系统配置、坏块表以及Uboot文件,所述的系统配置为固件配置信息,记录Nandflash的时序以及大小的参数,制作离线镜像, 根据固件控制块格式要求将对应参数填写正确,坏块表部分为Uboot分区的坏块表,CPU在启动Uboot时直接根据读到的参数来读取Nandflash数据,Uboot区域的坏块表在写入的时候生成,CPU在读取Uboot时参照坏块表跳过坏块。
4.根据权利要求1所述的一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,Kernel分区中的固定位置放置两份Kernel编译生成文件,Ubifs分区数据打包通过Ubifs提供的开源工具生成文件系统镜像。
5.根据权利要求1所述的一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,NAND控制器使用的是BCH算法,通过软件方式实现该算法,将对应校验码生成并填充到对应位置。
6.根据权利要求3所述的一种NAND存储器离线烧录镜像制作及验证方法,其特征在于,每个Nandflash的坏块位置不同,生成离线镜像的时候先用0xff填充,首次写入时根据Uboot分区实际坏块数填充,后面跟随1KB的填充区,再加上Uboot的编译生成文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126335.XA CN111966369B (zh) | 2020-10-20 | 2020-10-20 | 一种nand存储器离线烧录镜像制作及验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126335.XA CN111966369B (zh) | 2020-10-20 | 2020-10-20 | 一种nand存储器离线烧录镜像制作及验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966369A CN111966369A (zh) | 2020-11-20 |
CN111966369B true CN111966369B (zh) | 2021-02-26 |
Family
ID=73387075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011126335.XA Active CN111966369B (zh) | 2020-10-20 | 2020-10-20 | 一种nand存储器离线烧录镜像制作及验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966369B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328269B (zh) * | 2020-11-26 | 2024-03-15 | 广东小天才科技有限公司 | ubifs镜像的软件挂载方法、智能设备、电子设备及存储介质 |
CN113849194B (zh) * | 2021-08-20 | 2022-10-14 | 荣耀终端有限公司 | 烧录方法和终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923570A (zh) * | 2010-07-21 | 2010-12-22 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面NAND Flash存储系统的方法 |
US9575681B1 (en) * | 2016-04-29 | 2017-02-21 | International Business Machines Corporation | Data deduplication with reduced hash computations |
-
2020
- 2020-10-20 CN CN202011126335.XA patent/CN111966369B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923570A (zh) * | 2010-07-21 | 2010-12-22 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面NAND Flash存储系统的方法 |
US9575681B1 (en) * | 2016-04-29 | 2017-02-21 | International Business Machines Corporation | Data deduplication with reduced hash computations |
Non-Patent Citations (2)
Title |
---|
Improving the Reliability of JFFS2;Chin-Hsing Chen;《2006 International Symposium on VLSI Design, Automation and Test》;20060428;第1-4页 * |
基于嵌入式Linux的根文件系统制作与移植;甄海涛等;《自动化技术与应用》;20141231;第33卷(第12期);第21-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111966369A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966369B (zh) | 一种nand存储器离线烧录镜像制作及验证方法 | |
CN105280240B (zh) | 一种Nand Flash参数的读取方法 | |
US20090128570A1 (en) | Method And System For Automatically Analyzing GPU Test Results | |
TW201331943A (zh) | 一種針對反及閘快閃記憶體之燒錄檔的產生方法及相應的裝置 | |
CN104216791A (zh) | 一种校验Flash存储数据的方法 | |
CN110610740A (zh) | 一种测试单元、方法、系统及控制器、存储设备 | |
CN102360569A (zh) | 非易失闪存芯片烧录方法、系统及装置 | |
CN102646453A (zh) | NandFlash控制器中错误校正码模块的测试方法及系统 | |
CN115440294A (zh) | 一种NAND Flash控制器多命令混合测试方法 | |
CN111459708B (zh) | 坏块处理方法及装置 | |
JP2007316779A (ja) | 不揮発性メモリシステム | |
CN116880782A (zh) | 一种内嵌式存储器及其测试方法 | |
JP4180757B2 (ja) | シミュレーション装置 | |
CN113157512B (zh) | 实现大容量ssd在小内存机器上进行数据校验测试的方法 | |
US7181641B2 (en) | Data storage verification techniques for disk drivers | |
CN114492269B (zh) | 闪存控制器的验证系统 | |
CN107479924A (zh) | 基于Android系统的软件升级校验方法 | |
CN111459496A (zh) | 一种防篡改的程序文件的生成方法、设备的升级方法 | |
CN107247646B (zh) | 可准确定位主板vr芯片fw版本的方法及导入流程 | |
CN112463042B (zh) | 一种数据卷导入数据校验方法、装置、终端及存储介质 | |
CN111124742B (zh) | Flash数据校验方法及Flash控制器、存储介质、设备 | |
CN114218032A (zh) | 一种硬件设计验证方法、装置及电子设备和存储介质 | |
CN110032377B (zh) | 通信模块软件升级方法、系统及通信模块 | |
JP2004145964A (ja) | 半導体メモリ、半導体メモリ製造方法、メモリカードおよび半導体メモリ制御方法 | |
CN112306882A (zh) | 一种基于c算法模型的芯片算法模块验证方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |