[发明专利]一种嵌入式系统软件升级方法及系统有效
申请号: | 201210049198.3 | 申请日: | 2012-02-29 |
公开(公告)号: | CN102629206B | 公开(公告)日: | 2018-02-06 |
发明(设计)人: | 楚甲良;殷国顺;王志强 | 申请(专利权)人: | 深圳市赛格导航科技股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 深圳市顺天达专利商标代理有限公司44217 | 代理人: | 郭伟刚 |
地址: | 518019 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统软件 升级 方法 系统 | ||
技术领域
本发明涉及嵌入式技术,更具体地说,涉及一种嵌入式系统软件升级方法及系统。
背景技术
目前的嵌入式系统中,绝大部分系统是基于arm-linux平台,系统中的软件通常存储在Flash中,包括NAND flash和NOR flash。基于成本的考虑,很多方案里选择NAND flash作为存储介质,但是NAND flash有个特性就是,在使用过程中可能出现位翻转现象导致出现坏块,而且新出厂的flash,厂家也不保证没有坏块但是保证坏块数占得比例控制在某个范围内。由于坏块问题,所以用户在烧写数据时通常需要考虑坏块处理方式,还有一点就是NAND flash里面的软件更新方式,对于一块新的flash,里面的内容是空白的,通常的做法是,将flash焊接在电路板上,使用JTAG调试器烧写加载引导程序(又称bootloader),然后上电启动进入bootloader后通过串口或网络下载Linux内核(又称kernel)以及文件系统(一般为ramdisk)到内存,最后烧写到flash中。
这种操作方式对于烧写数量小的情况是适用的,但是坏块处理问题依赖于JTAG调试器和bootloader是否支持坏块检测,对于某些文件系统如Jffs、Yaffs等,不支持坏块检测的话将关键数据写入坏块里面可能导致系统无法启动,需要人工操作进行调节,效率低。
发明内容
本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种能够烧写不支持坏块检测的文件系统且无需手动调节的嵌入式系统软件升级方法及系统。
本发明解决其技术问题所采用的技术方案是:提供一种嵌入式系统软件升级方法,其特征在于,包括以下步骤:
S1、将存储单元内的第一加载引导程序、第一Linux内核、第一文件系统三个文件依次烧写到插装在目标板上的空白的Flash闪存中,烧写的同时进行坏块检测,直到完成烧写;
S2、自动重启目标板,计算机进入Linux系统,连接目标板与移动存储设备;
S3、所述第一加载引导程序、第一Linux内核、及第一文件系统自动复制至内存,所述Linux系统调用内存中的所述第一文件系统内的升级脚本,擦除所述Flash闪存内的第一加载引导程序、第一Linux内核及第一文件系统;
S4、挂载移动存储设备;所述升级脚本控制将实际需要烧写的存储在所述移动存储设备中的第二加载引导程序、第二Linux内核、第二文件系统依次烧写入所述Flash闪存,烧写的同时在Linux系统的支持下,自动进行坏块检测,直到完成烧写。
在本发明所述的嵌入式系统软件升级方法中,所述步骤S1包括以下分步骤:
S11、在计算机上运行编程器;
S12、所述编程器向所述Flash闪存中烧写所述第一加载引导程序,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一加载引导程序,否则继续烧写;
S13、编程器向所述Flash闪存中烧写所述第一Linux内核,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一Linux内核,否则继续烧写;
S14、编程器向所述Flash闪存中烧写所述第一文件系统,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第一文件系统,否则继续烧写,直到完成烧写。
在本发明所述的嵌入式系统软件升级方法中,所述步骤S1中,所述编程器在Widows系统下运行。
在本发明所述的嵌入式系统软件升级方法中,所述步骤S3中所述升级脚本调用所述编程器擦除所述Flash闪存内的第一加载引导程序、第一Linux内核及第一文件系统。
在本发明所述的嵌入式系统软件升级方法中,所述步骤S4包括以下分步骤:
S41、挂载移动存储设备;
S42、所述升级脚本,调用所述目标板上的升级单元将存储在移动存储设备中的所述第二加载引导程序烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二加载引导程序,否则继续烧写;
S43、所述升级脚本,调用所述升级单元将存储在移动存储设备中的所述第二Linux内核烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二Linux内核,否则继续烧写;
S44、所述升级脚本,利用所述升级单元将存储在移动存储设备中的所述第二文件系统烧写到所述Flash中,同时检测是否存在坏块,如果存在坏块,跳过坏块并重新烧写第二文件系统,否则继续烧写,直到完成烧写。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市赛格导航科技股份有限公司,未经深圳市赛格导航科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210049198.3/2.html,转载请声明来源钻瓜专利网。