CN101477471A - 一种嵌入式系统固件在线升级方法 - Google Patents

一种嵌入式系统固件在线升级方法 Download PDF

Info

Publication number
CN101477471A
CN101477471A CNA2009103000924A CN200910300092A CN101477471A CN 101477471 A CN101477471 A CN 101477471A CN A2009103000924 A CNA2009103000924 A CN A2009103000924A CN 200910300092 A CN200910300092 A CN 200910300092A CN 101477471 A CN101477471 A CN 101477471A
Authority
CN
China
Prior art keywords
subregion
upgrade
upgrading
code
software
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.)
Granted
Application number
CNA2009103000924A
Other languages
English (en)
Other versions
CN101477471B (zh
Inventor
赵先林
孙彬
栾焕志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN200910300092.4A priority Critical patent/CN101477471B/zh
Publication of CN101477471A publication Critical patent/CN101477471A/zh
Application granted granted Critical
Publication of CN101477471B publication Critical patent/CN101477471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式系统固件在线升级方法,将非失性存储器分为两个分区,将bootloader和tiny_os所在的分区保护起来,在tiny_os下运行升级脚本实现升级,而相应的下载命令由开源的busybox提供,文件系统以及tcp/ip协议栈等的支持由tiny_os提供,而相应的下载命令采用动态链接技术并与系统软件共享,通过bootloader向内核传递不同的参数来区分是升级操作还是正常操作,整个升级系统只需增加大约400K的存储空间就可支持多种下载协议和文件系统。另外还提供了一种备用的升级方法,当系统软件分区遭到意外的破坏时,仍然可以对系统进行升级,保证升级的可靠性和安全性。

Description

一种嵌入式系统固件在线升级方法
技术领域
本发明涉及嵌入式软件技术领域,更确切的说是一种嵌入式系统固件在线升级方法。
背景技术
嵌入式设备的功能主要通过软件来实现和扩展,随着嵌入式设备功能的不断完善,应用的不断增加以及bug的不断修正,需要对原有系统中的软件进行不断地升级。升级就是将新的软件写入嵌入式设备的非易失存储器,替代以前有缺陷或者功能不完善的软件。另外,当软件系统遭意外的破坏而无法正常运行,也需要对其进行升级。因此,嵌入式设备中的升级程序一定要安全可靠。
嵌入式设备通常是由生产设备的厂商在生产时通过JTAG调试器或者专用的flash烧写器将bootloader烧写至flash。bootloader在传统的嵌入式系统中在初始化硬件,加载操作系统的同时,也完成相应的升级任务,但是由于bootloader提供的升级功能较弱不支持tcp/ip以及主流的flash文件系统的写功能,因此无法使升级程序支持丰富的下载协议以及文件系统,因此为了支持更多的下载协议通常都采用裁剪后的操作系统为升级软件提供tcp/ip协议栈以及文件系统访问的支持,但是采用操作系统后相应的升级软件也变的更加复杂,并且必须依靠相应的库函数的支持,这样的话必然会导致升级软件占用的非易失性存储器的尺寸增大,增加系统成本,增加开发难度,并且当需要增加对新的协议的支持时必须更新相应的升级软件,从而增加了升级软件被破坏的几率。
中国专利文献CN 1928820A公开了一种嵌入式系统升级方法,在不扩充bootloader的情况下,让系统可以通过Http、tftp协议下载软件实现系统升级,通过在FLASH增加一个经操作系统裁减后的软件升级模块,来下载升级软件,不需要在bootloader中再写驱动程序和网络协议,即直接利用裁减后的操作系统中已有的驱动程序和网络协议来下载升级软件,而且在主文件系统损坏时还可提供系统恢复功能。
其不足之处:虽然支持了更多的下载协议,但是没有想到下载的升级文件和系统文件的格式不同后怎么处理,没有对系统文件实施有效的保护方法,也没有很好的提出文件系统意外破坏后的升级方案,文件系统意外破坏后的升级和修复一直以来是本领域技术人员难以攻破的难题,而该发明虽然提到能修复系统继续升级,但对于具体的方案没有充分的公开,能与不能还存在着疑问。
发明内容
本发明的目的在不增加系统成本的情况下,提供一种占用存储空间少,开发难度低,开发周期短,安全可靠,并且支持丰富的下载协议和文件系统,还能在系统遭到意外破外后启用备份升级的一种嵌入式系统固件在线升级方法。
为了解决上述技术问题,本发明是通过以下技术方案实现:一种嵌入式系统固件在线升级方法,其特征在于,包括以下步骤:
(1)嵌入式系统固件包含一非易失性存储器;
(2)非易失性存储器分为分区A和分区B两个分区;
(3)分区A用于存放bootloader和简化操作系统tiny_os软件程序;
a、所述bootloader包括初始化加载模块和升级模块;
b、所述简化操作系统tiny_os提供tcp/ip协议栈以及文件系统的读写等支持;
(4)分区B用于存放根文件系统和系统软件,其中
a、根文件系统包括动态链接库、升级脚本,升级脚本至少包括正常启动代码和升级代码B;
b、系统软件包括嵌入式操作系统和应用软件;
(5)初始化设置:
a、分区A设置为保护分区,对该分区置于硬件保护和软件保护;
b、分区B设置为只读分区,该分区中的嵌入式操作系统设置为只读文件;
(6)实现在线升级:
a、嵌入式系统上电,运行分区A中的bootloader,完成硬件的初始化;
b、检测是否有升级请求,若有,则进入步骤c,如无升级请求进入步骤f;
c、检测根文件系统代码是否正确,若正常则进入步骤d,否则进入步骤e;
d、运行分区A中bootloader的构造内核参数代码来构造升级的内核参数并加载tiny_os;运行分区B中的根文件系统的升级脚本,并根据内核参数运行软件升级代码B,接受用户输入的升级参数,与升级服务器进行通信,并通过指定协议下载升级文件到flash,升级完毕回到步骤a;
e、启用备用的升级方法:运行分区A中的软件升级代码A,接受用户输入的升级参数,与升级服务器进行通信并通过指定的下载协议下载升级文件,运行分区A中的文件系统格式转化代码将升级文件转换为系统软件所需的文件系统格式后写入flash;升级完毕后返回到步骤a;
f、启动系统软件的嵌入式操作系统,进行正常工作模式。
将bootloader和经简化后的操作系统(下称tiny_os)编译链接在一起存放到flash上的一个分区,tiny_os为升级软件提供了tcp/ip协议栈以及文件系统的读写等支持。升级程序采用script脚本进行编写,在脚本中直接调用busybox提供的各种下载协议的程序从服务器下载所需升级的文件,这样可以大大地降低升级程序的编写难度,也大大缩短了开发周期。同时将busybox等采用动态链接技术,升级程序所需的根文件系统以及动态链接库,busybox等与系统软件共用,存放在系统软件的分区中,这样采用该技术后系统只需额外提供几百KB(大约400Kbytes)的存储空间即可支持多种下载协议和多种文件系统。同时由于将升级脚本和下载程序与bootloader和tiny_os分开存放,可以保证当需要修改升级脚本或者增加新的下载协议时无需修改bootloader和tiny_os所在分区内容,因此可以将该分区设置为硬件保护,在系统的操作系统中也将该分区设置为只读属性,这样就保证了该分区不会被破坏。另外,为了防止系统软件所在分区的文件系统意外地遭到破坏,在bootloader中同时提供备用的升级方案,保证做到可靠的升级。
作为优选,所述分区A中的bootloader的初始化加载模块进一步包括:
a、系统初始化代码;
b、升级检测代码;
c、构造内核参数代码;
分区A中的bootloader的升级模块进一步包括:
a、软件升级代码A;
b、文件系统格式转化代码。
系统引导程序bootloader是嵌入式系统上电启动运行的第一段软件代码,是操作系统内核或用户应用程序运行之前,运行的一段子程序。通过这段程序,初始化硬件设备、建立内存空间的映射图,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。即在嵌入式系统中系统引导模块和操作系统相连,引导操作系统运行。
作为优选,所述的升级检测代码用于:检测设备终端是否有升级请求的代码和检测分区B中根文件系统是否是正确的代码,并且支持分区B所采用的文件系统的读操作。
升级请求检测由分区A中的升级检测代码完成,判断设备终端是否有升级请求输入。如果无升级请求,则系统正常启动;如果有升级请求,则进入升级模式。
作为优选,所述文件系统格式转化代码是将下载的升级文件的格式转换成分区B所支持的文件系统格式。
bootloader一般不支持文件系统的写操作,所以通过在bootloader下增加文件系统格式转化代码以支持某种格式文件系统的写操作。
作为优选,所述构造内核参数代码根据是否有升级请求构造不同的内核参数,并加载tiny_os,以便根文件系统的升级脚本能够根据所需选择运行相应的软件升级代码。
通过bootloader向内核传递不同的参数来区分是升级操作还是正常操作。
作为优选,所述根文件系统为tiny_os和系统软件所共用:
a、根文件系统中升级脚本的软件升级代码B,为使用tiny_os进行升级所需的程序;
b、根文件系统中的动态链接库,为tiny_os和系统软件所需的程序;
c、根文件系统中的升级脚本的启动代码,为系统软件所需的程序。
作为优选,所述的软件升级代码B为采用脚本编写的程序,当需要采用新的网络传输协议进行升级时,只需修改该软件升级代码B的部分内容和增加相应的下载命令,即可实现升级。
升级程序采用script脚本进行编写,在脚本中直接调用busybox提供的各种下载协议的程序从服务器下载所需升级的文件,这样可以大大地降低升级程序的编写难度,也大大缩短了开发周期。同时将busybox等采用动态链接技术,升级程序所需的根文件系统以及动态链接库,busybox等与系统软件共用,存放在系统软件的分区中,这样采用该技术后系统只需额外提供几百KB(大约400Kbytes)的存储空间即可支持多种下载协议和多种文件系统。
作为优选,所述的分区A和分区B的文件格式为:
分区A的文件采用二进制格式,按地址进行访问;
分区B采用嵌入式操作系统支持的文件系统格式。
分区A中的代码是固定代码,不在软件升级的范围之内,软件升级所指为对分区B的软件升级。
作为优选,所述分区A和分区B的设置是通过以下方法实现:
分区A设置为保护分区,是在bootloader的初始化代码部分将该分区设置为硬件保护和软件保护的分区;
分区B设置为只读分区,是在系统软件的嵌入式操作系统中将该分区设置为只读分区。
为防止系统软件所在分区的文件系统意外地遭到破坏,在bootloader中同时提供备用的升级方案,保证做到可靠的升级,所以对分区A进行保护是必要的。
4作为优选,所述的备用的升级方法的启用是按照下述判断而确定:
如果分区A中的升级检测代码检测到分区B中的根文件系统正确,则启动tiny_os,选择升级脚本中的升级代码B进行升级,否则启用备用的升级方法,选择分区A中的软件升级代码A进行升级。
升级方式分为tiny_os下升级和bootloader下升级两种。分区B的升级代码B负责tiny_os下的升级;分区A的升级代码A负责bootloader下的升级。分区B中的根文件系统完好无损是实现在tiny_os下升级的前提,因此先执行分区B的代码检测,如果分区B中的根文件系统完好,则执行tiny_os下升级完成升级,否则执行bootloader下升级完成升级。tiny_os下的升级,采用tiny_os支持的一种数据传输协议和文件系统格式,升级软件以文件名的形式写入flash存储器,flash对用户来说是透明的,用户无需关注对flash的写操作;bootloader下的升级,升级代码A在bootloader下运行,数据传输必须采用bootloader支持的一种传输协议,bootloader一般不支持文件系统的写操作,所以通过在bootloader下增加文件系统格式转化代码以支持某种格式文件系统的写操作,最后升级代码A将转换后的文件写入flash的分区B。
本发明有益的效果是:将非失性存储器分为两个分区,将bootloader和tiny_os所在的分区保护起来,保证升级失败后的安全性;在tiny_os下运行升级脚本实现软件升级,而相应的下载命令由开源的busybox提供,文件系统以及tcp/ip协议栈等的支持由tiny_os提供支持,因此只需编写相应的升级脚本即可完成,开发难度和开发周期大大降低。而相应的下载命令采用动态链接技术并与系统软件共享,通过bootloader向内核传递不同的参数来区分是升级操作还是正常操作,所以整个升级系统只需增加大约400K的存储空间就可支持多种下载协议和文件系统。另外还提供了一种备用的升级方法,当系统软件分区遭到意外的破坏时,仍然可以对系统进行升级,保证升级的可靠性和安全性。
附图说明
图1为本发明非易失性存储器nor flash的空间分区图;
图2为本发明整个系统的软件升级模块图;
图3为本发明软件升级的流程图。
具体实施方式
下面以ARM9开发板的软件升级为例,结合附图对本发明作进一步说明。
如图1所示,Flash的分区图:开发板的软件系统存储在nor flash芯片上,根据存储的内容不同,将flash空间分为两个分区,分区A 11为只读分区,存储不需更新的程序,包括bootloader和tiny_os,此分区的代码采用二进制的文件格式,按地址进行访问。分区B 12存储简化后的系统软件,包括嵌入式操作系统,根文件系统以及应用程序等,在tiny_os下升级程序所需的升级脚本以及相应的下载命令程序都在根文件系统内,此分区采用linux支持的、nor flash上应用较多的jffs2文件格式。
如图2所示,整个升级模块之间的关系,其中两个大的实框模块为分区A11、分区B12,三个虚线框内的模块为bootloader模块13,根文件系统模块15以及tiny_os模块14。嵌入式OS16,根文件系统15以及tiny_os 14都是由bootloader的初始化加载模块21加载到内存的,初始化加载模块21包括系统初始化代码、升级检测代码27、构造内核参数代码28,如果无需升级则启动系统软件的嵌入式OS16,进行正常工作模式。当使用tiny_os 14进行升级时,加载模块将根文件系统15和tiny_os14加载到内存并运行tiny_os14,tiny_os 14执行根文件系统15中的升级脚本22的软件升级代码B26,软件升级代码B26通过tiny_os 14的tcp/ip协议栈18和网络驱动24将软件升级包19下载下来,然后通过tiny_os 14提供的文件系统29将升级文件通过flash驱动25写入flash 20。当使用备用的bootloader的升级模块23进行升级时,升级模块23包括升级代码A30和文件系统格式转换模块17,升级模块23用软件升级代码A30调用bootloader提供的网络驱动24下载软件升级包19,然后通过文件系统格式转换模块17将升级包19转换为系统软件所在分区的格式后通过bootloader中提供的flash驱动25将文件写入flash 20。详细过程如下所示:
首先,开发板上面移植了用于硬件初始化的u-boot,由于u-boot本身支持多种开发板及多种硬件接口,因此稍微修改u-boot,使其支持板载串口、nor flash和网络接口驱动。由于u-boot本身支持TFTP网络协议,因此u-boot下可通过TFTP下载升级包并写入flash进行升级。为了在u-boot中能够支持对jffs2的写操作,需在u-boot中增加jffs2文件系统转换代码将从服务器上下载的文件转换成jffs2格式后写入flash。
tiny_os和嵌入式操作系统采用都是linux,针对此开发板移植了linux,系统正常的linux内核要支持板载的网卡,串口,支持TCP/IP协议以及jffs2等文件系统外还需根据需要选择系统所需的所有其它功能模块。而对于tiny_os只需将该linux内核中与网络和jffs2,串口以及flash驱动等无关的代码裁剪掉即可。
根文件系统采用busybox和uclibc进行编译,并且在busybox中选择所需的下载协议对应的命令,如tftp,ftpget等,修改编译生成根文件系统的启动脚本,增加检查u-boot是否传递了升级请求参数的代码,如果有升级请求则调用升级脚本进行软件升级,否则运行正常工作的启动脚本。
如图3所示,嵌入式系统固件在线升级方法步骤如下:
步骤201:嵌入式系统上电。
步骤202:运行分区A中的bootloader中的初始化代码,完成硬件的初始化。
步骤203:运行bootloader中的升级检测代码检测是否有升级请求,若有,则进入步骤205,如无升级请求进入步骤204。
步骤204:启动系统软件的嵌入式操作系统,进行正常工作模式。
步骤205:运行bootloader中的升级检测代码检测根文件系统是否正确,若正常则进入步骤207,否则进入步骤206。
步骤206:运行分区A中的升级代码A,接受用户输入的升级参数,与升级服务器进行通信并通过指定的下载协议下载升级文件,运行分区A中的文件系统格式转化代码将升级文件转换为系统软件所需的文件系统格式后写入flash,升级完毕后回到步骤202。
步骤207:运行分区A中bootloader的的构造内核参数代码来构造升级的内核参数。
步骤208:加载tiny_os,运行分区B中的根文件系统的升级脚本,并根据内核参数运行软件升级代码B,接受用户输入的升级参数,与升级服务器进行通信,并通过指定协议下载升级文件到flash,升级完毕回到步骤202。
步骤中分区A是受保护分区,在bootloader的初始化代码部分将该分区设置为硬件保护和软件保护,在系统软件的嵌入式操作系统中也将该分区设置为只读分区。分区A文件采用二进制格式,所述的分区B采用嵌入式操作系统支持的文件系统格式。分区B中的软件升级代码B,采用脚本编写,当需要新的网络传输协议进行升级时,只需修改该部分内容和增加相应的下载命令即可实现。
实例中开发板升级的流程如下:升级前,将主机与开发板建立网络连接,在主机上建立tftp或ftp服务器,并将升级程序包放在服务器目录下。将主机与开发板通过串口连接查看打印信息。板子上电复位后,首先运行u-boot,完成硬件的初始化并加载相关的硬件驱动程序。当u-boot初始化结束后,通过串口终端检测是否有键盘上的升级请求的按键按下,若有,则进入软件升级流程,首先检测jffs2分区中的文件是否完好,如果是,则构造升级的内核参数并启动tiny_os,tiny_os加载后运行根文件系统中的升级脚本,升级脚本检查到升级的内核参数后运行软件升级代码B,在升级代码B中通过调用busybox提供的tftp或者ftpget命令通过文件系统将升级文件从服务器下载至flash,完成升级。如果jffs2分区内容遭到意外的破坏,则继续在分区A运行u-boot中提供的的备用升级代码,使用tftp协议将升级包下载至内存,并通过文件系统转换代码转换成jffs2格式,再写入flash,完成升级。如果未检测到升级按键按下,则启动分区B中linux和应用程序,系统正常运行。
以上所述的仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明核心技术特征的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

  1. 【权利要求1】1.一种嵌入式系统固件在线升级方法,其特征在于,包括以下步骤:
    (1)嵌入式系统固件包含一非易失性存储器;
    (2)非易失性存储器分为分区A和分区B两个分区;
    (3)分区A用于存放bootloader和简化操作系统tiny_os软件程序;
    a、所述bootloader包括初始化加载模块和升级模块;
    b、所述简化操作系统tiny_os提供tcp/ip协议栈以及文件系统的读写等支持;
    (4)分区B用于存放根文件系统和系统软件,其中
    a、根文件系统包括动态链接库、升级脚本,升级脚本至少包括正常启动代码和升级代码B;
    b、系统软件包括嵌入式操作系统和应用软件;
    (5)初始化设置:
    a、分区A设置为保护分区,对该分区置于硬件保护和软件保护;
    b、分区B设置为只读分区,该分区中的嵌入式操作系统设置为只读文件;
    (6)实现在线升级:
    a、嵌入式系统上电,运行分区A中的bootloader,完成硬件的初始化;
    b、检测是否有升级请求,若有,则进入步骤c,如无升级请求进入步骤f;
    c、检测根文件系统代码是否正确,若正常则进入步骤d,否则进入步骤e;
    d、运行分区A中bootloader的构造内核参数代码来构造升级的内核参数并加载tiny_os;运行分区B中的根文件系统的升级脚本,并根据内核参数运行软件升级代码B,接受用户输入的升级参数,与升级服务器进行通信,并通过指定协议下载升级文件到flash,升级完毕回到步骤a;
    e、启用备用的升级方法:运行分区A中的软件升级代码A,接受用户输入的升级参数,与升级服务器进行通信并通过指定的下载协议下载升级文件,运行分区A中的文件系统格式转化代码将升级文件转换为系统软件所需的文件系统格式后写入flash;升级完毕后返回到步骤a;
    f、启动系统软件的嵌入式操作系统,进行正常工作模式。
    【权利要求2】2.根据权利要求1所述的一种嵌入式系统固件在线升级方法,其特征在于,所述分区A中的bootloader的初始化加载模块进一步包括:
    a、系统初始化代码;
    b、升级检测代码;
    c、构造内核参数代码;
    分区A中的bootloader的升级模块进一步包括:
    a、软件升级代码A;
    b、文件系统格式转化代码。
  2. 【权利要求3】3.根据权利要求1或2所述的一种嵌入式系统固件在线升级方法,其特征在于,所述的升级检测代码用于:检测设备终端是否有升级请求的代码和检测分区B中根文件系统是否是正确的代码,并且支持分区B所采用的文件系统的读操作。
  3. 【权利要求4】4.根据权利要求1或2所述的一种嵌入式系统固件在线升级方法,其特征在于,所述文件系统格式转化代码是将下载的升级文件的格式转换成分区B所支持的文件系统格式。
  4. 【权利要求5】5.根据权利要求1或2所述的一种嵌入式系统固件在线升级方法,其特征在于,所述构造内核参数代码根据是否有升级请求构造不同的内核参数,并加载tiny_os,以便根文件系统的升级脚本能够根据所需选择运行相应的软件升级代码。
  5. 【权利要求6】6.根据权利要求1所述的一种嵌入式系统固件在线升级方法,其特征在于,
    所述根文件系统为tiny_os和系统软件所共用:
    a、根文件系统中升级脚本的软件升级代码B,为使用tiny_os进行升级所需的程序;
    b、根文件系统中的动态链接库,为tiny_os和系统软件所需的程序;
    c、根文件系统中的升级脚本的启动代码,为系统软件所需的程序。
  6. 【权利要求7】7.根据权利要求1或6所述的一种嵌入式系统固件在线升级方法,其特征在于,所述的软件升级代码B为采用脚本编写的程序,当需要采用新的网络传输协议进行升级时,只需修改该软件升级代码B的部分内容和增加相应的下载命令,即可实现升级。
  7. 【权利要求8】8.根据权利要求1所述的一种嵌入式系统固件在线升级方法,其特征在于,所述的分区A和分区B的文件格式为:
    分区A的文件采用二进制格式,按地址进行访问;
    分区B采用嵌入式操作系统支持的文件系统格式。
  8. 【权利要求9】9.根据权利要求1或2所述的一种嵌入式系统固件在线升级方法,其特征在于,所述分区A和分区B的设置是通过以下方法实现:
    分区A设置为保护分区,是在bootloader的初始化代码部分将该分区设置为硬件保护和软件保护的分区;
    分区B设置为只读分区,是在系统软件的嵌入式操作系统中将该分区设置为只读分区。
  9. 【权利要求10】10.根据权利要求1所述的一种嵌入式系统固件在线升级方法,其特征在于,所述的备用的升级方法的启用是按照下述判断而确定:
    如果分区A中的升级检测代码检测到分区B中的根文件系统正确,则启动tiny_os,选择升级脚本中的升级代码B进行升级,否则启用备用的升级方法,选择分区A中的软件升级代码A进行升级。
CN200910300092.4A 2009-01-07 2009-01-07 一种嵌入式系统固件在线升级方法 Active CN101477471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910300092.4A CN101477471B (zh) 2009-01-07 2009-01-07 一种嵌入式系统固件在线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910300092.4A CN101477471B (zh) 2009-01-07 2009-01-07 一种嵌入式系统固件在线升级方法

Publications (2)

Publication Number Publication Date
CN101477471A true CN101477471A (zh) 2009-07-08
CN101477471B CN101477471B (zh) 2014-04-30

Family

ID=40838193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910300092.4A Active CN101477471B (zh) 2009-01-07 2009-01-07 一种嵌入式系统固件在线升级方法

Country Status (1)

Country Link
CN (1) CN101477471B (zh)

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770383A (zh) * 2010-01-22 2010-07-07 中兴通讯股份有限公司 一种跨平台版本在线升级的方法及装置
CN101894069A (zh) * 2010-06-10 2010-11-24 中兴通讯股份有限公司 Linux中的早期串口打印调试方法及装置
CN102075564A (zh) * 2010-12-23 2011-05-25 李华嵩 一种远程软件升级技术方法
CN102073522A (zh) * 2011-01-13 2011-05-25 深圳市科陆电子科技股份有限公司 面向嵌入式系统的应用程序在线自我更新方法
CN102122258A (zh) * 2011-03-22 2011-07-13 四川长虹电器股份有限公司 嵌入式设备文件系统受损的修复方法
CN102446101A (zh) * 2010-09-30 2012-05-09 珠海全志科技股份有限公司 固件强制升级的系统及其固件的强制升级方法
CN102486840A (zh) * 2010-12-03 2012-06-06 上海华虹集成电路有限责任公司 采用非rom方式引导程序的智能卡及其程序引导方法
CN102622280A (zh) * 2011-01-06 2012-08-01 苏州科达科技有限公司 一种基于双文件系统的软件版本升级的控制方法及装置
CN102629206A (zh) * 2012-02-29 2012-08-08 深圳市赛格导航科技股份有限公司 一种嵌入式系统软件升级方法及系统
CN102799452A (zh) * 2012-06-29 2012-11-28 深圳市安普尔科技有限公司 系统软件升级方法和装置
CN101763279B (zh) * 2010-01-15 2012-12-12 上海维宏电子科技股份有限公司 一种BootLoader架构设计方法
CN102890638A (zh) * 2012-09-29 2013-01-23 深圳市九洲电器有限公司 一种机顶盒升级方法
CN103095497A (zh) * 2013-01-11 2013-05-08 厦门亿联网络技术股份有限公司 一种voip话机的恢复模式升级方法
CN103135941A (zh) * 2013-01-11 2013-06-05 深圳市江波龙电子有限公司 嵌入式存储器的管理方法、嵌入式存储器及电子设备
CN103176421A (zh) * 2013-04-16 2013-06-26 镇江恒驰科技有限公司 一种控制器内map数据在线标定方法
CN101650662B (zh) * 2009-08-26 2013-09-11 中兴通讯股份有限公司 一种嵌入式系统的存储器件的固件启动及升级方法
CN103490927A (zh) * 2013-09-10 2014-01-01 中兴通讯股份有限公司 一种固件升级方法、设备及通信系统
CN103559059A (zh) * 2013-11-05 2014-02-05 广东新支点技术服务有限公司 一种快速的免介质Linux系统升级方法
CN103677884A (zh) * 2012-09-21 2014-03-26 华为技术有限公司 flash分区表文件生成及其数据升级方法、装置
CN103677947A (zh) * 2014-01-03 2014-03-26 深圳英飞拓科技股份有限公司 基于linux的设备双系统保护及升级方法
CN103713927A (zh) * 2013-12-27 2014-04-09 珠海全志科技股份有限公司 一种刷机工具及通过刷机工具刷机的方法
CN104035757A (zh) * 2013-03-07 2014-09-10 深圳国人通信有限公司 基于MIPS处理器的u-boot移植的实现方法
CN104298532A (zh) * 2014-11-04 2015-01-21 上海斐讯数据通信技术有限公司 一种软件升级方法及系统
CN104503804A (zh) * 2014-12-31 2015-04-08 天津市通卡公用网络系统有限公司 一种在线更新单片机程序的方法
CN104615385A (zh) * 2015-02-13 2015-05-13 福州瑞芯微电子有限公司 一种数据交互方法
CN104866334A (zh) * 2014-12-12 2015-08-26 北汽福田汽车股份有限公司 一种控制器软件代码分区方法及其运行方法
CN105183527A (zh) * 2015-10-23 2015-12-23 上海斐讯数据通信技术有限公司 一种设备版本升级方法及系统
CN105573797A (zh) * 2015-12-18 2016-05-11 广州市中海达测绘仪器有限公司 嵌入式系统的可逆离线升级方法及装置
CN106210877A (zh) * 2016-08-17 2016-12-07 青岛海信电器股份有限公司 智能电视的系统升级方法及装置
WO2017202128A1 (zh) * 2016-05-26 2017-11-30 深圳创维数字技术有限公司 非linux系统软件boot参数传递方法及系统
CN107526593A (zh) * 2017-08-28 2017-12-29 大唐高鸿信安(浙江)信息科技有限公司 基于动态链接库的bmc功能定制方法
CN107634870A (zh) * 2016-07-18 2018-01-26 珠海格力电器股份有限公司 一种实现ip验证的方法及装置
CN108304209A (zh) * 2018-02-28 2018-07-20 联想(北京)有限公司 固件升级方法及固件升级系统
CN108595982A (zh) * 2018-03-19 2018-09-28 中国电子科技集团公司第三十研究所 一种基于多容器分离处理的安全计算架构方法及装置
CN105279002B (zh) * 2015-11-23 2018-10-26 上海网测通信技术有限公司 嵌入式系统中基于系统引导文件的自动升级方法
CN109218832A (zh) * 2018-07-26 2019-01-15 烽火通信科技股份有限公司 机顶盒在recovery模式下的设备升级方法和系统、应用
CN109491648A (zh) * 2018-11-19 2019-03-19 上海新时达电气股份有限公司 嵌入式软件中库函数独立分区的实现方法和系统以及设备
CN109861868A (zh) * 2019-03-05 2019-06-07 网经科技(苏州)有限公司 基于Linux的两级三系统架构的网关系统加强方法
CN109933353A (zh) * 2019-03-22 2019-06-25 陕西建工安装集团(河南)有限公司 一种基于嵌入式Web的控制器固件升级方法
CN110780902A (zh) * 2019-10-25 2020-02-11 上海信耀电子有限公司 一种嵌入式设备网络批量升级的方法
CN110895477A (zh) * 2018-09-13 2020-03-20 杭州海康威视数字技术股份有限公司 一种设备启动方法、装置及设备
CN111190627A (zh) * 2019-12-30 2020-05-22 四川虹美智能科技有限公司 系统升级方法及装置
CN111367540A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC固件升级方法和装置
CN112527366A (zh) * 2020-11-25 2021-03-19 江苏华创微系统有限公司 Bootrom在线更新和调试系统
CN113821235A (zh) * 2021-06-15 2021-12-21 荣耀终端有限公司 操作系统数据更新方法、设备、存储介质及程序产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL129947A (en) * 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
CN100561433C (zh) * 2006-09-30 2009-11-18 四川长虹电器股份有限公司 嵌入式系统及其升级方法

Cited By (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650662B (zh) * 2009-08-26 2013-09-11 中兴通讯股份有限公司 一种嵌入式系统的存储器件的固件启动及升级方法
CN101763279B (zh) * 2010-01-15 2012-12-12 上海维宏电子科技股份有限公司 一种BootLoader架构设计方法
CN101770383A (zh) * 2010-01-22 2010-07-07 中兴通讯股份有限公司 一种跨平台版本在线升级的方法及装置
WO2011088701A1 (zh) * 2010-01-22 2011-07-28 中兴通讯股份有限公司 一种跨平台版本在线升级的方法及装置
CN101770383B (zh) * 2010-01-22 2014-04-09 中兴通讯股份有限公司 一种跨平台版本在线升级的方法及装置
CN101894069A (zh) * 2010-06-10 2010-11-24 中兴通讯股份有限公司 Linux中的早期串口打印调试方法及装置
CN102446101A (zh) * 2010-09-30 2012-05-09 珠海全志科技股份有限公司 固件强制升级的系统及其固件的强制升级方法
CN102486840A (zh) * 2010-12-03 2012-06-06 上海华虹集成电路有限责任公司 采用非rom方式引导程序的智能卡及其程序引导方法
CN102075564A (zh) * 2010-12-23 2011-05-25 李华嵩 一种远程软件升级技术方法
CN102622280B (zh) * 2011-01-06 2014-10-15 苏州科达科技股份有限公司 一种基于双文件系统的软件版本升级的控制方法及装置
CN102622280A (zh) * 2011-01-06 2012-08-01 苏州科达科技有限公司 一种基于双文件系统的软件版本升级的控制方法及装置
CN102073522A (zh) * 2011-01-13 2011-05-25 深圳市科陆电子科技股份有限公司 面向嵌入式系统的应用程序在线自我更新方法
CN102122258A (zh) * 2011-03-22 2011-07-13 四川长虹电器股份有限公司 嵌入式设备文件系统受损的修复方法
CN102629206B (zh) * 2012-02-29 2018-02-06 深圳市赛格导航科技股份有限公司 一种嵌入式系统软件升级方法及系统
CN102629206A (zh) * 2012-02-29 2012-08-08 深圳市赛格导航科技股份有限公司 一种嵌入式系统软件升级方法及系统
CN102799452A (zh) * 2012-06-29 2012-11-28 深圳市安普尔科技有限公司 系统软件升级方法和装置
CN102799452B (zh) * 2012-06-29 2015-10-07 深圳市安普尔科技有限公司 系统软件升级方法和装置
CN103677884A (zh) * 2012-09-21 2014-03-26 华为技术有限公司 flash分区表文件生成及其数据升级方法、装置
CN102890638A (zh) * 2012-09-29 2013-01-23 深圳市九洲电器有限公司 一种机顶盒升级方法
CN102890638B (zh) * 2012-09-29 2015-07-15 深圳市九洲电器有限公司 一种机顶盒升级方法
CN103135941B (zh) * 2013-01-11 2016-08-17 深圳市江波龙电子有限公司 嵌入式存储器的管理方法、嵌入式存储器及电子设备
CN103135941A (zh) * 2013-01-11 2013-06-05 深圳市江波龙电子有限公司 嵌入式存储器的管理方法、嵌入式存储器及电子设备
WO2014107940A1 (zh) * 2013-01-11 2014-07-17 深圳市江波龙电子有限公司 嵌入式存储器的管理方法、嵌入式存储器及电子设备
CN103095497A (zh) * 2013-01-11 2013-05-08 厦门亿联网络技术股份有限公司 一种voip话机的恢复模式升级方法
CN104035757A (zh) * 2013-03-07 2014-09-10 深圳国人通信有限公司 基于MIPS处理器的u-boot移植的实现方法
CN103176421B (zh) * 2013-04-16 2016-01-20 镇江恒驰科技有限公司 一种控制器内map数据在线标定方法
CN103176421A (zh) * 2013-04-16 2013-06-26 镇江恒驰科技有限公司 一种控制器内map数据在线标定方法
CN103490927A (zh) * 2013-09-10 2014-01-01 中兴通讯股份有限公司 一种固件升级方法、设备及通信系统
CN103559059A (zh) * 2013-11-05 2014-02-05 广东新支点技术服务有限公司 一种快速的免介质Linux系统升级方法
CN103713927A (zh) * 2013-12-27 2014-04-09 珠海全志科技股份有限公司 一种刷机工具及通过刷机工具刷机的方法
CN103677947A (zh) * 2014-01-03 2014-03-26 深圳英飞拓科技股份有限公司 基于linux的设备双系统保护及升级方法
CN103677947B (zh) * 2014-01-03 2016-11-02 深圳英飞拓科技股份有限公司 基于linux的设备双系统保护及升级方法
CN104298532A (zh) * 2014-11-04 2015-01-21 上海斐讯数据通信技术有限公司 一种软件升级方法及系统
CN104298532B (zh) * 2014-11-04 2018-05-01 上海斐讯数据通信技术有限公司 一种软件升级方法及系统
CN104866334A (zh) * 2014-12-12 2015-08-26 北汽福田汽车股份有限公司 一种控制器软件代码分区方法及其运行方法
CN104503804B (zh) * 2014-12-31 2017-08-08 天津通卡智能网络科技股份有限公司 一种在线更新单片机程序的方法
CN104503804A (zh) * 2014-12-31 2015-04-08 天津市通卡公用网络系统有限公司 一种在线更新单片机程序的方法
CN104615385A (zh) * 2015-02-13 2015-05-13 福州瑞芯微电子有限公司 一种数据交互方法
CN104615385B (zh) * 2015-02-13 2017-12-19 福州瑞芯微电子股份有限公司 一种数据交互方法
CN105183527A (zh) * 2015-10-23 2015-12-23 上海斐讯数据通信技术有限公司 一种设备版本升级方法及系统
CN105279002B (zh) * 2015-11-23 2018-10-26 上海网测通信技术有限公司 嵌入式系统中基于系统引导文件的自动升级方法
CN105573797A (zh) * 2015-12-18 2016-05-11 广州市中海达测绘仪器有限公司 嵌入式系统的可逆离线升级方法及装置
CN105573797B (zh) * 2015-12-18 2019-10-18 广州市中海达测绘仪器有限公司 嵌入式系统的可逆离线升级方法及装置
WO2017202128A1 (zh) * 2016-05-26 2017-11-30 深圳创维数字技术有限公司 非linux系统软件boot参数传递方法及系统
CN107634870A (zh) * 2016-07-18 2018-01-26 珠海格力电器股份有限公司 一种实现ip验证的方法及装置
CN107634870B (zh) * 2016-07-18 2019-11-12 珠海格力电器股份有限公司 一种实现ip验证的方法及装置
CN106210877A (zh) * 2016-08-17 2016-12-07 青岛海信电器股份有限公司 智能电视的系统升级方法及装置
CN107526593A (zh) * 2017-08-28 2017-12-29 大唐高鸿信安(浙江)信息科技有限公司 基于动态链接库的bmc功能定制方法
CN107526593B (zh) * 2017-08-28 2020-04-10 大唐高鸿信安(浙江)信息科技有限公司 基于动态链接库的bmc功能定制方法
CN108304209A (zh) * 2018-02-28 2018-07-20 联想(北京)有限公司 固件升级方法及固件升级系统
CN108304209B (zh) * 2018-02-28 2021-01-15 联想(北京)有限公司 固件升级方法及固件升级系统
CN108595982A (zh) * 2018-03-19 2018-09-28 中国电子科技集团公司第三十研究所 一种基于多容器分离处理的安全计算架构方法及装置
CN108595982B (zh) * 2018-03-19 2021-09-10 中国电子科技集团公司第三十研究所 一种基于多容器分离处理的安全计算架构方法及装置
CN109218832A (zh) * 2018-07-26 2019-01-15 烽火通信科技股份有限公司 机顶盒在recovery模式下的设备升级方法和系统、应用
CN109218832B (zh) * 2018-07-26 2022-01-04 烽火通信科技股份有限公司 机顶盒在recovery模式下的设备升级方法和系统
CN110895477A (zh) * 2018-09-13 2020-03-20 杭州海康威视数字技术股份有限公司 一种设备启动方法、装置及设备
CN109491648A (zh) * 2018-11-19 2019-03-19 上海新时达电气股份有限公司 嵌入式软件中库函数独立分区的实现方法和系统以及设备
CN109491648B (zh) * 2018-11-19 2022-05-17 上海新时达电气股份有限公司 嵌入式软件中库函数独立分区的实现方法和系统以及设备
CN111367540A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC固件升级方法和装置
CN111367540B (zh) * 2018-12-25 2023-08-29 兆易创新科技集团股份有限公司 一种eMMC固件升级方法和装置
CN109861868A (zh) * 2019-03-05 2019-06-07 网经科技(苏州)有限公司 基于Linux的两级三系统架构的网关系统加强方法
CN109861868B (zh) * 2019-03-05 2022-02-22 网经科技(苏州)有限公司 基于Linux的两级三系统架构的网关系统加强方法
CN109933353B (zh) * 2019-03-22 2022-04-12 陕西建工安装集团(河南)有限公司 一种基于嵌入式Web的控制器固件升级方法
CN109933353A (zh) * 2019-03-22 2019-06-25 陕西建工安装集团(河南)有限公司 一种基于嵌入式Web的控制器固件升级方法
CN110780902A (zh) * 2019-10-25 2020-02-11 上海信耀电子有限公司 一种嵌入式设备网络批量升级的方法
CN111190627A (zh) * 2019-12-30 2020-05-22 四川虹美智能科技有限公司 系统升级方法及装置
CN112527366A (zh) * 2020-11-25 2021-03-19 江苏华创微系统有限公司 Bootrom在线更新和调试系统
CN112527366B (zh) * 2020-11-25 2024-03-19 江苏华创微系统有限公司 嵌入式处理器引导程序的更新回卷容错设计技术
CN113821235A (zh) * 2021-06-15 2021-12-21 荣耀终端有限公司 操作系统数据更新方法、设备、存储介质及程序产品
CN113821235B (zh) * 2021-06-15 2023-10-20 荣耀终端有限公司 操作系统数据更新方法、设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN101477471B (zh) 2014-04-30

Similar Documents

Publication Publication Date Title
CN101477471B (zh) 一种嵌入式系统固件在线升级方法
US7428663B2 (en) Electronic device diagnostic methods and systems
US7313682B2 (en) Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
CN102388366B (zh) 实现不同处理器兼容的方法及装置
US20060041738A1 (en) Recovery method for master boot record of hard disk drive
US20100058314A1 (en) Computer System and Related Method of Logging BIOS Update Operation
CN101615128B (zh) 一种单片机在线升级的方法及装置
CN102141940B (zh) 一种固件刷机恢复设备、固件刷机恢复方法及系统
CN103299276A (zh) 嵌入式装置的软件更新过程
CN102289397A (zh) 一种机顶盒的嵌入式系统自动恢复方法及装置
CN102567049A (zh) 嵌入式操作系统的升级方法
CN103377063A (zh) 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
CN105988843A (zh) 移动终端固件升级方法及固件升级装置
KR20040048242A (ko) 플래시 메모리, 플래시 메모리 보호 장치 및 방법
CN102184111B (zh) 操作系统在线升级方法及带操作系统的设备
CN105760191A (zh) 嵌入式系统设备程序烧写量产方法
CN101872306B (zh) 一种实现软件更新和软件备份的嵌入式系统及其实现方法
CN108920168B (zh) 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法
CN101482823A (zh) 一种单板应用版本的实现方法及系统
CN103092659A (zh) 脱离仿真器支持环境的dsp软件升级系统及其升级方法
CN104991805B (zh) 智能设备及其系统灾备控制方法
CN110096882B (zh) 一种设备运行过程中的安全度量方法
CN102033767A (zh) 一种单板及单板在线升级的方法
US6795915B2 (en) Computer system and method for setting up information on an operating system thereof
CN103106086B (zh) 操作系统处理方法以及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant