首页 / 专利库 / 软件 / 软件 / 一种嵌入式系统软件升级方法及系统

一种嵌入式系统软件升级方法及系统

阅读:818发布:2021-06-08

专利汇可以提供一种嵌入式系统软件升级方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 嵌入式系统 软件 升级方法,包括以下步骤:编程器将第一加载引导程序、第一Linux 内核 、第一文件系统三个文件依次烧写到空白的Flash闪存中,同时编程器进行坏 块 检测;自动重启目标板并进入Linux系统,连接计算机与移动存储设备;第一加载引导程序、第一Linux内核、及第一文件系统自动复制至内存,擦除Flash闪存内的内容;挂载移动存储设备,然后将第二载引导程序、第二Linux内核、第二文件系统依次烧写入所述Flash闪存,同时进行坏块检测,直到完成烧写。本发明还公开了一种用于实施该方法的嵌入式 系统软件 升级系统。本发明的嵌入式系统软件升级方法及系统能够在Linux文件系统支持下实现坏块管理,烧写各种常见类型文件系统如Cramfs/Yaffsx/Jffsx等,所有步骤可自动完成。,下面是一种嵌入式系统软件升级方法及系统专利的具体信息内容。

1.一种嵌入式系统软件升级方法,其特征在于,包括以下步骤:
S1、将存储单元(100)内的第一加载引导程序、第一Linux内核、第一文件系统三个文件依次烧写到插装在目标板(4)上的空白的Flash闪存(3)中,烧写的同时进行坏检测,直到完成烧写;
S2、自动重启目标板(4),计算机(1)进入Linux系统,连接目标板(4)与移动存储设备(2);
S3、所述第一加载引导程序、第一Linux内核、及第一文件系统自动复制至内存,所述Linux系统调用内存中的所述第一文件系统内的升级脚本,擦除所述Flash闪存(3)内的第一加载引导程序、第一Linux内核及第一文件系统;
S4、挂载移动存储设备(2);所述升级脚本控制将实际需要烧写的存储在所述移动存储设备(2)中的第二加载引导程序、第二Linux内核、第二文件系统依次烧写入所述Flash闪存(3),烧写的同时在Linux系统的支持下,自动进行坏块检测,直到完成烧写;
其中,所述步骤S4包括以下分步骤:
S41、挂载移动存储设备(2);
S42、所述升级脚本,调用目标板(4)上的升级单元(401)将存储在移动存储设备(2)中的所述第二加载引导程序烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二加载引导程序,否则继续烧写;
S43、所述升级脚本,调用所述升级单元(401)将存储在移动存储设备(2)中的所述第二Linux内核烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二Linux内核,否则继续烧写;
S44、所述升级脚本,利用所述升级单元(401)将存储在移动存储设备(2)中的所述第二文件系统烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二文件系统,否则继续烧写,直到完成烧写。
2.根据权利要求1所述的嵌入式系统软件升级方法,其特征在于,所述步骤S1包括以下分步骤:
S11、在计算机(1)上运行编程器;
S12、所述编程器(101)向所述Flash闪存(3)中烧写所述第一加载引导程序,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一加载引导程序,否则继续烧写;
S13、编程器向所述Flash闪存(3)中烧写所述第一Linux内核,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一Linux内核,否则继续烧写;
S14、编程器向所述Flash闪存(3)中烧写所述第一文件系统,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一文件系统,否则继续烧写,直到完成烧写。
3.根据权利要求2所述的嵌入式系统软件升级方法,其特征在于,所述步骤S1中,所述编程器在Win dows系统下运行。
4.根据权利要求2所述的嵌入式系统软件升级方法,其特征在于,所述步骤S3中所述升级脚本调用所述编程器(101)擦除所述Flash闪存(3)内的第一加载引导程序、第一Linux内核及第一文件系统。
5.一种基于权利要求1所述的方法的嵌入式系统软件升级系统,其特征在于,包括Flash闪存(3)、目标板(4)、移动存储设备(2)、计算机(1)及设置在所述计算机(1)内的存储单元(100)与编程器(101);所述目标板(4)上设置有升级单元(401);
所述存储单元(100)用于存储第一加载引导程序、第一Linux内核、第一文件系统;所述第一文件系统设置有升级脚本;所述目标板(4)连接计算机(1),所述Flash闪存(3)插装在所述目标板(4)上;所述Flash闪存(3)最初为空白Flash;
所述编程器(101)用于将存储在所述存储单元(100)内的第一加载引导程序、第一Linux内核、第一文件系统烧写进空白的所述Flash闪存(3),还用于受所述升级脚本控制并擦除所述Flash闪存(3)内的第一加载引导程序、第一Linux内核、第一文件系统;所述目标板(4)在所述第一加载引导程序、第一Linux内核、第一文件系统内后自动重启,同时所述计算机(1)进入Linux系统;所述第一加载引导程序、第一Linux内核、第一文件系统在所述计算机(1)进入Linux系统后自动复制到所述计算机(1)的内存中;
所述移动存储设备(2)用于存储实际需要烧写的第二加载引导程序、第二Linux内核、第二文件系统;移动存储设备(2)连接目标板(4);
所述升级脚本用于控制所述升级单元(12)后向所述Flash闪存(3)内烧写所述第二加载引导程序、第二Linux内核、第二文件系统,并在烧写的同时进行坏块检测。
6.根据权利要求5所述的嵌入式系统软件升级系统,其特征在于,所述移动存储设备(2)为SD卡或U盘。
7.根据权利要求5所述的嵌入式系统软件升级系统,其特征在于,所述编程器(101)在所述计算机(1)Windows系统下运行。

说明书全文

一种嵌入式系统软件升级方法及系统

技术领域

[0001] 本发明涉及嵌入式技术,更具体地说,涉及一种嵌入式系统软件升级方法及系统。

背景技术

[0002] 目前的嵌入式系统中,绝大部分系统是基于arm-linux平台,系统中的软件通常存储在Flash中,包括NAND flash和NOR flash。基于成本的考虑,很多方案里选择NAND flash作为存储介质,但是NAND flash有个特性就是,在使用过程中可能出现位翻转现象导致出现坏,而且新出厂的flash,厂家也不保证没有坏块但是保证坏块数占得比例控制在某个范围内。由于坏块问题,所以用户在烧写数据时通常需要考虑坏块处理方式,还有一点就是NAND flash里面的软件更新方式,对于一块新的flash,里面的内容是空白的,通常的做法是,将flash焊接电路板上,使用JTAG调试器烧写加载引导程序(又称bootloader),然后上电启动进入bootloader后通过串口或网络下载Linux内核(又称kernel)以及文件系统(一般为ramdisk)到内存,最后烧写到flash中。
[0003] 这种操作方式对于烧写数量小的情况是适用的,但是坏块处理问题依赖于JTAG调试器和bootloader是否支持坏块检测,对于某些文件系统如Jffs、Yaffs等,不支持坏块检测的话将关键数据写入坏块里面可能导致系统无法启动,需要人工操作进行调节,效率低。

发明内容

[0004] 本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种能够烧写不支持坏块检测的文件系统且无需手动调节的嵌入式系统软件升级方法及系统。
[0005] 本发明解决其技术问题所采用的技术方案是:提供一种嵌入式系统软件升级方法,其特征在于,包括以下步骤:
[0006] S1、将存储单元内的第一加载引导程序、第一Linux内核、第一文件系统三个文件依次烧写到插装在目标板上的空白的Flash闪存中,烧写的同时进行坏块检测,直到完成烧写;
[0007] S2、自动重启目标板,计算机进入Linux系统,连接目标板与移动存储设备;
[0008] S3、所述第一加载引导程序、第一Linux内核、及第一文件系统自动复制至内存,所述Linux系统调用内存中的所述第一文件系统内的升级脚本,擦除所述Flash闪存内的第一加载引导程序、第一Linux内核及第一文件系统;
[0009] S4、挂载移动存储设备;所述升级脚本控制将实际需要烧写的存储在所述移动存储设备中的第二加载引导程序、第二Linux内核、第二文件系统依次烧写入所述Flash闪存,烧写的同时在Linux系统的支持下,自动进行坏块检测,直到完成烧写。
[0010] 在本发明所述的嵌入式系统软件升级方法中,所述步骤S1包括以下分步骤:
[0011] S11、在计算机上运行编程器;
[0012] S12、所述编程器向所述Flash闪存中烧写所述第一加载引导程序,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一加载引导程序,否则继续烧写;
[0013] S13、编程器向所述Flash闪存中烧写所述第一Linux内核,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一Linux内核,否则继续烧写;
[0014] S14、编程器向所述Flash闪存中烧写所述第一文件系统,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一文件系统,否则继续烧写,直到完成烧写。
[0015] 在本发明所述的嵌入式系统软件升级方法中,所述步骤S1中,所述编程器在Widows系统下运行。
[0016] 在本发明所述的嵌入式系统软件升级方法中,所述步骤S3中所述升级脚本调用所述编程器擦除所述Flash闪存内的第一加载引导程序、第一Linux内核及第一文件系统。
[0017] 在本发明所述的嵌入式系统软件升级方法中,所述步骤S4包括以下分步骤:
[0018] S41、挂载移动存储设备;
[0019] S42、所述升级脚本,调用所述目标板上的升级单元将存储在移动存储设备中的所述第二加载引导程序烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二加载引导程序,否则继续烧写;
[0020] S43、所述升级脚本,调用所述升级单元将存储在移动存储设备中的所述第二Linux内核烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二Linux内核,否则继续烧写;
[0021] S44、所述升级脚本,利用所述升级单元将存储在移动存储设备中的所述第二文件系统烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二文件系统,否则继续烧写,直到完成烧写。
[0022] 本发明还提供了一种嵌入式系统软件升级系统,包括Flash闪存、目标板、移动存储设备、计算机及设置在所述计算机内的存储单元与编程器;所述目标板上设置有升级单元;
[0023] 所述存储单元用于存储第一加载引导程序、第一Linux内核、第一文件系统;所述第一文件系统设置有升级脚本;所述目标板连接计算机,所述Flash闪存插装在所述目标板上;所述Flash闪存最初为空白Flash;
[0024] 所述编程器用于将存储在所述存储单元内的第一加载引导程序、第一Linux内核、第一文件系统烧写进空白的所述Flash闪存,还用于受所述升级脚本控制并擦除所述Flash闪存内的第一加载引导程序、第一Linux内核、第一文件系统;所述目标板在所述第一加载引导程序、第一Linux内核、第一文件系统内后自动重启,同时所述计算机进入Linux系统;所述第一加载引导程序、第一Linux内核、第一文件系统在所述计算机进入Linux系统后自动复制到所述计算机的内存中;
[0025] 所述移动存储设备用于存储实际需要烧写的第二加载引导程序、第二Linux内核、第二文件系统;移动存储设备连接目标板;
[0026] 所述升级脚本用于控制所述升级单元后向所述Flash闪存内烧写所述第二加载引导程序、第二Linux内核、第二文件系统,并在烧写的同时进行坏块检测。
[0027] 在本发明所述的嵌入式系统软件升级系统中,所述移动存储设备为SD卡或U盘。
[0028] 在本发明所述的嵌入式系统软件升级系统中,所述编程器在所述计算机Windows系统下运行。
[0029] 本发明的嵌入式系统软件升级方法及系统具有以下有益效果:本发明的嵌入式系统软件升级方法及系统通过编程器将支持坏块处理的第一文件系统烧写到Flash闪存中,目标板自动重启,计算机进入Linux系统,在Linux系统下第一文件系统及相应的第一加载引导程序、第一Linux内核自动复制到内存,由于第一文件系统中设置有升级脚本,升级脚本在Linux系统的支持下控制将实际需要烧写的文件即第二加载引导程序、第二Linux内核及一般烧写过程中不支持坏块处理的第二文件系统,烧写到Flash闪存中,整个过程无需手动控制调节,能够实现坏块检测,升级快速高效。附图说明
[0030] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0031] 图1是根据本发明的嵌入式系统软件升级系统一个实施例的原理框图
[0032] 图2是根据本发明的嵌入式系统软件升级方法一个实施例的方法流程图
[0033] 图3是根据本发明的嵌入式系统软件升级方法步骤S1的分步骤的方法流程图;
[0034] 图4是根据本发明的嵌入式系统软件升级方法步骤S4的分步骤的方法流程图。

具体实施方式

[0035] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0036] 如图1所示的是一种嵌入式系统软件升级系统,包括Flash闪存3、目标板4、移动存储设备2、计算机1及设置在计算机1内的存储单元100、编程器101;移动存储设备2分别与计算机1连接;目标板4连接计算机1,Flash闪存3插装在所述目标板4上;目标板4上设置有升级单元401。
[0037] 存储单元100用于存储第一加载引导程序、第一Linux内核、第一文件系统;所述第一文件系统设置有升级脚本;
[0038] 编程器101用于将存储在存储单元100内的第一加载引导程序、第一Linux内核、第一文件系统烧写进空白的Flash闪存3,还用于受所述升级脚本的控制并擦除Flash闪存3内的第一加载引导程序、第一Linux内核、第一文件系统;目标板4在第一加载引导程序、第一Linux内核、第一文件系统被烧写后自动重启,同时计算机1进入Linux系统;第一加载引导程序、第一Linux内核、第一文件系统在计算机1进入Linux系统后自动复制到计算机1的内存中;编程器101在Windows系统下运行;
[0039] 移动存储设备2用于存储实际需要烧写的第二加载引导程序、第二Linux内核、第二文件系统;移动存储设备2连接目标板4;移动存储设备2一般为SD卡或U盘。
[0040] 所述升级脚本还用于在Linux系统中移动存储设备2挂载后控制升级单元401后向Flash闪存3内烧写第二加载引导程序、第二Linux内核、第二文件系统,并在烧写的同时进行坏块检测。
[0041] 本发明中的第一文件系统一般为ramdisk文件系统,是用于系统启动时辅助正式文件系统成功挂载而在内存中设置的一个特殊的文件系统;在内存中而第二文件系统一般为Cramfs、Yaffsx、Jffsx等直接烧写时不支持坏块检测的文件系统,其中,Cramfs文件系统是专针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3;Jffs即闪存设备日志型文件系统,是一种用于保护嵌入式系统免受宕机和断电危害的文件系统;Yaffs是指Yet Another Flash File System,是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备,它基于日志的文件系统,提供磨损平衡和掉电恢复的健壮性。它还为大容量的Flash芯片做了很好的调整,针对启动时间和RAM的使用做了优化。CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3。而第一加载引导程序与第二加载引导程序可以是同一加载引导程序,同理第一Linux内核与第二Linux内核可以是同一Linux内核。
[0042] 如图2所示的是一种用于实施上述嵌入式系统软件升级系统的嵌入式系统软件升级方法,该方法包括以下步骤:
[0043] S1、将存储单元100内的第一加载引导程序、第一Linux内核、第一文件系统三个文件依次烧写到空白的Flash闪存3中,烧写的同时进行坏块检测,直到完成烧写;
[0044] S2、目标板4自动重启,计算机1进入Linux系统,连接目标板4与移动存储设备2;
[0045] S3、第一加载引导程序、第一Linux内核、及第一文件系统自动复制至内存,存储在第一文件系统内的升级脚本调用升级单元401 擦除Flash闪存3内的第一加载引导程序、第一Linux内核及第一文件系统;
[0046] S4、挂载移动存储设备2;升级脚本在Linux系统的支持下,调用升级单元401 将存储在移动存储设备2中的第二加载引导程序、第二Linux内核、第二文件系统依次烧写入所述Flash闪存3,烧写的同时所述升级单元401 进行坏块检测,直到完成烧写。
[0047] 其中,如图3所示,步骤S1包括以下分步骤:
[0048] S11、在计算机1上运行编程器101,编程器101在Windows系统下运行的编辑工具;
[0049] S12、编程器101向空白的Flash闪存3中烧写第一加载引导程序,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一加载引导程序,否则继续烧写;
[0050] S13、编程器101向Flash闪存3中烧写第一Linux内核,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一Linux内核,否则继续烧写;
[0051] S14、编程器101向Flash闪存3中烧写所述第一文件系统,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一文件系统,否则继续烧写,直到完成烧写。第一加载引导程序、第一Linux内核和第一文件系统存储在计算机1内的存储单元100中,第一文件系统一般是支持坏块检测的ramdisk文件系统。S12、S13、S14三个分步骤均分别进行坏块检测,完成烧写后Flash闪存3中会自动生成用于存储上述三个文件的三个分区,相反地,如果该Flash闪存3中坏块过多以至于第一加载引导程序、第一Linux内核和第一文件系统无法全部烧写到Flash闪存3中,则无法完成烧写,该Flash闪存3废弃,更换一个新的Flash闪存3重新烧写。本发明中采用的Flash闪存3为NAND Flash。
[0052] 烧写到Flash闪存3中的第一文件系统中包括一个升级脚本,步骤S2中根据该升级脚本控制目标板4自动重启;此外计算机进入Linux系统,此时连接移动存储设备2与目标板4,如前面所说的,移动存储设备2一般为SD卡或U盘。
[0053] 相应地,步骤S3计算机1调用升级脚本,控制编程器101将Flash闪存3中的第一加载引导程序、第一Linux内核和第一文件系统复制到计算机1的内存中,然后将Flash闪存3内的第一加载引导程序、第一Linux内核和第一文件系统全部擦除。可以理解的是,此时升级脚本已经被复制到内存中。
[0054] 如图4所示,步骤S4包括以下分步骤:
[0055] S41、挂载移动存储设备2;
[0056] S42、升级脚本在Linux系统的支持下,调用目标板4上升级单元401将存储在移动存储设备2中的第二加载引导程序烧写到Flash闪存3中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二加载引导程序,否则继续烧写;
[0057] S43、升级脚本在Linux系统的支持下,调用升级单元401将存储在移动存储设备2中的第二Linux内核烧写到Flash闪存3中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二Linux内核,否则继续烧写;
[0058] S44、升级脚本在Linux系统的支持下,调用升级单元401将存储在移动存储设备2中的所述第二文件系统烧写到Flash闪存3中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二文件系统,否则继续烧写。
[0059] 一般来说,需要根据第二文件系统的类型挂载根分区,本发明的第二文件系统一般是直接烧写不支持坏块检测的Jffs、Yaffs、Cramfs等文件系统,Jffs、Yaffs、Cramfs等文件系统适用于NAND Flash,且均具有自己的NFTL(即NAND Flash Translation Layer,又称为NAND Flash转换层)实现而且可以自己管理坏块。本发明的升级单元401还可以调用MTD分区读写工具进行烧写第二加载引导程序、第二Linux内核、第二文件系统,MTD分区读写工具在Jffs、Yaffs、Cramfs等文件系统烧写时进行坏块检测。MTD的全称为memory technology device即内存技术设备,是用于访问memory设备(ROM、Flash)的Linux子系统。MTD分区读写工具受NFTL管理向Flash闪存3中存取数据。
[0060] 虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈