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

一种嵌入式系统软件升级方法及系统有效专利 发明

技术领域

[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等,不支持坏块检测的话将关键数据写入坏块里面可能导致系统无法启动,需要人工操作进行调节,效率低。

具体实施方式

[0035] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0036] 如图1所示的是一种嵌入式系统软件升级系统,包括Flash闪存3、目标板4、移动存储设备2、计算机1及设置在计算机1内的存储单元100、编程器101;移动存储设备2分别与计算机1连接;目标板4连接计算机1,flash闪存3插装在所述目标板4上;目标板4上设置有升级单元402
[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内核、及第一文件系统自动复制至内存,存储在第一文件系统内的升级脚本调用升级单元12擦除Flash闪存3内的第一加载引导程序、第一Linux内核及第一文件系统;
[0046] S4、挂载移动存储设备2;升级脚本在Linux系统的支持下,调用升级单元12将存储在移动存储设备2中的第二加载引导程序、第二Linux内核、第二文件系统依次烧写入所述Flash闪存3,烧写的同时所述升级单元12进行坏块检测,直到完成烧写。
[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] 虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

当前第1页 第1页 第2页 第3页
相关技术
嵌入式相关技术
式系统相关技术
楚甲良发明人的其他相关专利技术