CN101482823A - 一种单板应用版本的实现方法及*** - Google Patents
一种单板应用版本的实现方法及*** Download PDFInfo
- Publication number
- CN101482823A CN101482823A CN 200910003096 CN200910003096A CN101482823A CN 101482823 A CN101482823 A CN 101482823A CN 200910003096 CN200910003096 CN 200910003096 CN 200910003096 A CN200910003096 A CN 200910003096A CN 101482823 A CN101482823 A CN 101482823A
- Authority
- CN
- China
- Prior art keywords
- application version
- version
- new application
- single board
- server
- 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.)
- Pending
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/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种单板应用版本的实现方法及***,所述方法包括:单板启动后,检查程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。采用本发明方法及***,使得嵌入式设备、通信设备在存储器上的软件版本出现异常或故障的情况下,无须打开设备,可直接下载软件版本到内存中,通过运行内存中的软件版本,并更新故障设备存储器中的软件版本,使设备恢复正常运行。
Description
技术领域
本发明涉及计算机与嵌入式设备技术领域,尤其涉及一种单板应用版本的实现方法及***。
背景技术
目前各种嵌入式设备、通信设备的应用版本,如启动软件或升级软件版本等,通常保存在非易失性存储器(Non-Volatile Memory)如flash(闪存)中,一旦flash中的软件版本被破坏或者出现软件故障,将导致无法继续访问flash,从而造成整个设备将无法正常运行或者无法升级。
为了解决这个问题,现有技术中通常对设备单板的应用版本采用双版本相互备份的方法;或者采用大小版本的方法,小版本用于紧急恢复,大版本用于正常运行。两种方法的工作原理基本相同:单板首先从BootRom(启动芯片)启动,然后检查flash存储器中的第一个软件版本,如果该第一个软件版本可用,则正常启动;如果第一个软件版本不可用,则检查第二个版本是否可用,如果第二个版本可用则正常启动,不可用则只能停止运行,等待人工干预对设备进行修复。
如图1所示,采用双版本方法的运行流程可分为如下步骤:
步骤101,单板从BootRom启动;
步骤102,检查flash存储器中的第一个软件版本是否可用,如果可用,则执行步骤105,否则进入步骤103;
步骤103,检查flash存储器中的第二个软件版本是否可用,如果可用则执行步骤105,否则进入步骤104;
步骤104,如果所有的版本都不可用,则停止在BootRom状态,等待人工修复;
步骤105,从该可用版本正常启动。
从以上流程可以看出,采用双版本方法的软件版本在两个软件版本都被破坏时,只能依赖于人工打开设备,经过复杂的操作重新下载软件版本到flash中,维护效率低;此外,保存双版本需要占用较大的存储空间,对flash的存储容量要求较高,导致成本增加;同时,还使得flash存储器的读写访问速度都比较慢。
发明内容
本发明要解决的技术问题是提供一种单板应用版本的实现方法及***,当单板应用软件出现异常时对软件版本进行恢复,能够降低产品成本和维护费用,提高维护效率。
为了解决上述问题,本发明提供了一种单板应用版本的实现方法,包括:
单板启动后,检查程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
进一步地,所述检查程序存储器中有无可用的应用版本包括:从所述程序存储器中定位应用版本的位置,以及校验所述应用版本的合法性和完整性。
进一步地,所述方法还包括:将所述新的应用版本文件下载到所述单板内存中后,校验所述新的应用版本的合法性和完整性。
进一步地,所述校验应用版本的合法性和完整性包括:使用循环冗余算法检查所述应用版本的完整性,以及使用RSA算法检查所述应用版本的合法性。
进一步地,所述通过启动网络协议下载新的应用版本包括:通过动态主机分配协议DHCP协议请求IP地址和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传输协议请求下载新的应用版本文件。
进一步地,若对所述新的应用版本解析不成功,则重新请求下载,其中,对所述新的应用版本进行解析包括:在所述新的应用版本中找到启动内核和文件***的位置。
进一步地,所述方法还包括:加载运行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
本发明还提供了一种单板应用版本的实现***,包括具有程序存储器的单板,还包括存储有应用版本的服务器,所述单板内存与所述服务器相连,
所述单板在启动后,检查所述程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
进一步地,所述单板还用于:
将所述新的应用版本文件下载到所述单板内存中后,校验所述新的应用版本的合法性和完整性;以及,
在加载运行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
进一步地,所述服务器包括应用版本服务器和DHCP服务器,所述单板内存分别与所述应用版本服务器及所述DHCP服务器相连,其中,
所述应用版本服务器,用于存储所述应用版本;
所述DHCP服务器,用于IP地址的分发及应用版本文件名称的下发;
所述单板内存,用于通过DHCP协议向所述DHCP服务器请求IP地址和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传输协议从所述应用版本服务器上下载新的应用版本文件。
采用本发明方法及***,使得嵌入式设备、通信设备在存储器上的软件版本出现异常或故障的情况下,无须打开设备,可直接下载软件版本到内存中,通过运行内存中的软件版本,并更新故障设备存储器中的软件版本,使设备恢复正常运行。
本发明可以用于软件版本的紧急恢复,与传统的双版本或大小版本相比,降低了产品成本,提高了维护效率;并且,当传统的方法中两个版本同时失效时,也可以利用本发明的方法进行恢复;同时,本发明也可以用于实现单板无盘启动,无须在flash存储器上读写软件版本,提高了效率。
附图说明
图1为现有技术中采用双版本备份的软件版本的运行流程图;
图2为本发明实施例的基于内存的安全软件版本***的示意图;
图3为本发明实施例的基于内存的安全软件版本的方法流程图。
具体实施方式
针对目前基于flash存储软件的设备,一旦设备软件出现异常则设备将无法启动或升级的问题,本发明提出了一种基于内存的单板应用版本,其核心是:将设备单板通过网络连接到软件版本服务器,这样,当单板软件版本出现异常或故障的情况时,通过启动网络协议从软件版本服务器下载软件版本到内存中,通过运行内存中的软件版本,并更新故障设备存储器中的软件版本,使设备恢复正常运行。
具体地,本发明的单板应用版本的实现方法主要采用以下技术方案:
步骤一,单板上电,从BootRom启动;
步骤二,BootRom内程序检测程序存储器,如flash存储器中有无可用的应用版本(软件版本),若有,则加载flash中的可用版本,正常启动,本方法结束;否则BootRom启动网络协议向软件版本服务器请求下载软件版本,并执行下一步;
步骤三,下载新的软件版本到内存中,并检查所下载的软件版本文件的完整性和合法性;
步骤四,解析内存中的该软件版本,从该版本直接启动。
在完成上述步骤之后,可以通过定义的软件接口更新flash中的软件版本,从而完成设备修复。更新flash中的软件版本包括:内存软件版本启动完成后,通过网络协议下载新的软件版本,并将版本写入到flash存储器中。
其中,上述步骤二中,检查flash存储器有无软件版本可用包括:从flash中定位软件版本的位置,使用循环冗余算法校验软件版本以确认其完整性,使用RSA(一种非对称加密算法)算法校验软件版本签名以确认其合法性;
上述步骤二中,启动网络协议向软件版本服务器请求版本软件包括:首先通过DHCP(Dynamic Host Configuration Protocol,动态主机分配协议)协议向DHCP服务器请求IP地址和软件版本文件名称,再根据获取的IP地址和软件版本文件名称通过文件传输协议从软件版本服务器上请求下载软件版本文件。
上述步骤三中,检查软件版本文件的完整性和合法性包括:使用循环冗余算法完成软件版本校验和确认其完整性,以及使用RSA算法校验软件版本签名确认其合法性。
上述步骤四中,解析内存中的软件版本包括:在内存软件版本中找到启动内核和文件***的位置。
下面结合附图和具体实施例对本发明作进一步详细描述。
如图2所示,本发明实施例的单板应用版本的实现***主要包括:设备单板、软件版本服务器和DHCP服务器。设备单板通过网络连接与软件版本服务器及DHCP服务器相连,软件版本服务器负责存储设备软件版本,DHCP服务器负责IP地址的分发和软件版本文件名称的下发。在本发明的其它实施例中,软件版本服务器和DHCP服务器也可以合并为一个物理设备。
如图3所示,本发明实施例的单板应用版本的实现方法的具体实施步骤如下:
步骤201,单板上电,完成设备初始化:设备硬件初始化,包括flash存储器、内存、网络设备等;软件初始化,包括网络协议栈初始化;
步骤202,设备初始化完成后,BootRom内程序开始从flash中搜索已有的软件版本,找到软件版本后使用循环冗余算法检查版本的完整性,使用RSA算法检查版本的合法性,如果软件版本可用,则进入步骤207,否则执行步骤203;
步骤203,BootRom内程序启动网络协议栈,通过DHCP协议向DHCP服务器请求IP地址和软件版本文件名称,DHCP服务器从地址池中取一个IP地址并下发给设备单板,同时利用BootFile字段将软件版本名称发给设备单板;
步骤204,设备单板根据收到的上述IP地址和软件版本文件名称,通过文件传输协议将软件版本下载到设备单板内存中;
步骤205,BootRom内程序检查内存中的软件版本文件的完整性和合法性,包括:使用循环冗余算法检查版本的完整性,使用RSA算法检查版本的合法性,并进行下一步;
步骤206,判断内存软件版本是否可用,如果可用,则进入步骤207;否则进入步骤204,尝试重新下载软件版本到内存中;
步骤207,在软件版本中通过一定的方法找到内核和文件***的位置,加载内核,启动设备软件。
可选地,步骤207中,设备启动完成后,可以使用预先定义的软件接口,更新flash中的软件版本;如果设备软件启动失败,可以更新服务器中的软件版本,并从步骤201重新开始。
通过上述流程可以看出,采用本发明的技术方案不需要在flash中保存多个软件版本,减少了设备成本;更新设备软件版本过程全部自动化完成,不需要人工干预。与传统的双版本或大小版本相比,提高了维护效率,减小了维护成本。
Claims (10)
1、一种单板应用版本的实现方法,其特征在于,包括:
单板启动后,检查程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
2、如权利要求1所述的方法,其特征在于,所述检查程序存储器中有无可用的应用版本包括:从所述程序存储器中定位应用版本的位置,以及校验所述应用版本的合法性和完整性。
3、如权利要求1所述的方法,其特征在于,所述方法还包括:将所述新的应用版本文件下载到所述单板内存中后,校验所述新的应用版本的合法性和完整性。
4、如权利要求2或3所述的方法,其特征在于,所述校验应用版本的合法性和完整性包括:使用循环冗余算法检查所述应用版本的完整性,以及使用RSA算法检查所述应用版本的合法性。
5、如权利要求1所述的方法,其特征在于,所述通过启动网络协议下载新的应用版本包括:通过动态主机分配协议DHCP协议请求IP地址和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传输协议请求下载新的应用版本文件。
6、如权利要求1所述的方法,其特征在于,若对所述新的应用版本解析不成功,则重新请求下载,其中,对所述新的应用版本进行解析包括:在所述新的应用版本中找到启动内核和文件***的位置。
7、如权利要求1所述的方法,其特征在于,所述方法还包括:加载运行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
8、一种单板应用版本的实现***,包括具有程序存储器的单板,其特征在于,还包括存储有应用版本的服务器,所述单板内存与所述服务器相连,
所述单板在启动后,检查所述程序存储器中有无可用的应用版本,若有,则加载运行所述程序存储器中的该可用应用版本;否则通过启动网络协议请求下载新的应用版本,将所述新的应用版本文件下载到单板内存中,并对所述新的应用版本进行解析,解析成功后加载运行。
9、如权利要求8所述的***,其特征在于,所述单板还用于:
将所述新的应用版本文件下载到所述单板内存中后,校验所述新的应用版本的合法性和完整性;以及,
在加载运行所述新的应用版本完毕后,通过网络协议下载新的应用版本,并将新的应用版本写入所述程序存储器中,以对所述程序存储器中的应用版本进行更新。
10、如权利要求8或9所述的***,其特征在于,所述服务器包括应用版本服务器和DHCP服务器,所述单板内存分别与所述应用版本服务器及所述DHCP服务器相连,其中,
所述应用版本服务器,用于存储所述应用版本;
所述DHCP服务器,用于IP地址的分发及应用版本文件名称的下发;
所述单板内存,用于通过DHCP协议向所述DHCP服务器请求IP地址和应用版本文件名称,并根据获取的所述IP地址和应用版本文件名称通过文件传输协议从所述应用版本服务器上下载新的应用版本文件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910003096 CN101482823A (zh) | 2009-01-19 | 2009-01-19 | 一种单板应用版本的实现方法及*** |
PCT/CN2009/073430 WO2010081323A1 (zh) | 2009-01-19 | 2009-08-21 | 一种单板应用版本的实现方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910003096 CN101482823A (zh) | 2009-01-19 | 2009-01-19 | 一种单板应用版本的实现方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101482823A true CN101482823A (zh) | 2009-07-15 |
Family
ID=40879949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910003096 Pending CN101482823A (zh) | 2009-01-19 | 2009-01-19 | 一种单板应用版本的实现方法及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101482823A (zh) |
WO (1) | WO2010081323A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010081323A1 (zh) * | 2009-01-19 | 2010-07-22 | 中兴通讯股份有限公司 | 一种单板应用版本的实现方法及*** |
CN102436402A (zh) * | 2011-03-29 | 2012-05-02 | 奇智软件(北京)有限公司 | 一种软件中的模块修复方法及该软件设备 |
CN101615128B (zh) * | 2009-07-31 | 2012-05-23 | 北京华环电子股份有限公司 | 一种单片机在线升级的方法及装置 |
CN104503811A (zh) * | 2015-01-09 | 2015-04-08 | 烽火通信科技股份有限公司 | 基于单存储区的通信设备升级方法及*** |
CN105204900A (zh) * | 2015-09-23 | 2015-12-30 | 小米科技有限责任公司 | 嵌入式芯片的运行方法、装置、嵌入式芯片及终端设备 |
CN106055341A (zh) * | 2016-06-14 | 2016-10-26 | 北京奇虎科技有限公司 | 应用程序安装包的校验方法及装置 |
CN107967160A (zh) * | 2017-12-22 | 2018-04-27 | 杭州迪普科技股份有限公司 | 一种通过Boot Loader更新操作***文件的方法及装置 |
CN111475220A (zh) * | 2019-01-23 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 冷启动方法、装置、电子设备及计算机存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536738A (zh) * | 2014-12-16 | 2015-04-22 | 北京锐安科技有限公司 | Atca平台主控卡自动配置业务卡的方法和装置 |
CN109960523B (zh) * | 2017-12-22 | 2023-07-21 | 浙江宇视科技有限公司 | 一种嵌入式设备的固件升级方法及装置 |
CN111813427A (zh) * | 2019-04-12 | 2020-10-23 | 杭州海康威视数字技术股份有限公司 | 设备修复方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100343816C (zh) * | 2004-09-24 | 2007-10-17 | 华为技术有限公司 | 恢复单板软件版本的方法 |
CN100501675C (zh) * | 2006-04-14 | 2009-06-17 | 北京瑞星国际软件有限公司 | 一种用于软件升级的方法及装置 |
CN101163055A (zh) * | 2007-11-21 | 2008-04-16 | 浪潮电子信息产业股份有限公司 | 一种自动探测服务器硬件信息的方法 |
CN101482823A (zh) * | 2009-01-19 | 2009-07-15 | 中兴通讯股份有限公司 | 一种单板应用版本的实现方法及*** |
-
2009
- 2009-01-19 CN CN 200910003096 patent/CN101482823A/zh active Pending
- 2009-08-21 WO PCT/CN2009/073430 patent/WO2010081323A1/zh active Application Filing
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010081323A1 (zh) * | 2009-01-19 | 2010-07-22 | 中兴通讯股份有限公司 | 一种单板应用版本的实现方法及*** |
CN101615128B (zh) * | 2009-07-31 | 2012-05-23 | 北京华环电子股份有限公司 | 一种单片机在线升级的方法及装置 |
CN102436402A (zh) * | 2011-03-29 | 2012-05-02 | 奇智软件(北京)有限公司 | 一种软件中的模块修复方法及该软件设备 |
WO2012130009A1 (zh) * | 2011-03-29 | 2012-10-04 | 北京奇虎科技有限公司 | 一种软件中的模块修复方法及装置 |
CN102436402B (zh) * | 2011-03-29 | 2014-12-10 | 奇智软件(北京)有限公司 | 一种软件中的模块修复方法及该软件设备 |
CN104503811B (zh) * | 2015-01-09 | 2018-04-20 | 烽火通信科技股份有限公司 | 基于单存储区的通信设备升级方法及*** |
CN104503811A (zh) * | 2015-01-09 | 2015-04-08 | 烽火通信科技股份有限公司 | 基于单存储区的通信设备升级方法及*** |
CN105204900A (zh) * | 2015-09-23 | 2015-12-30 | 小米科技有限责任公司 | 嵌入式芯片的运行方法、装置、嵌入式芯片及终端设备 |
CN106055341A (zh) * | 2016-06-14 | 2016-10-26 | 北京奇虎科技有限公司 | 应用程序安装包的校验方法及装置 |
CN107967160A (zh) * | 2017-12-22 | 2018-04-27 | 杭州迪普科技股份有限公司 | 一种通过Boot Loader更新操作***文件的方法及装置 |
CN107967160B (zh) * | 2017-12-22 | 2021-04-27 | 杭州迪普科技股份有限公司 | 一种通过Boot Loader更新操作***文件的方法及装置 |
CN111475220A (zh) * | 2019-01-23 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 冷启动方法、装置、电子设备及计算机存储介质 |
CN111475220B (zh) * | 2019-01-23 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 冷启动方法、装置、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2010081323A1 (zh) | 2010-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101482823A (zh) | 一种单板应用版本的实现方法及*** | |
US10303459B2 (en) | Electronic system with update control mechanism and method of operation thereof | |
US7991988B2 (en) | Communication device and firmware update method thereof | |
US9507604B2 (en) | Boot method and boot system | |
CN113282434B (zh) | 一种基于封装后修复技术的内存修复方法及相关组件 | |
US8468226B2 (en) | Management server, boot server, network boot system, and network boot method | |
CN101546270A (zh) | 一种Linux操作***的自动安装方法、装置及*** | |
US20090217079A1 (en) | Method and apparatus for repairing multi-controller system | |
CN104834575A (zh) | 一种固件恢复方法及装置 | |
CN105094927A (zh) | 一种设备固件升级方法和装置 | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
US11886886B2 (en) | System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system | |
US9665379B2 (en) | System and method for booting a computer system using preboot data | |
WO2023109880A1 (zh) | 一种业务恢复方法、数据处理单元及相关设备 | |
CN106547645B (zh) | 自动修复映像档的方法及服务器*** | |
CN107566169A (zh) | 一种基于openwrt的固件升级方法及路由器 | |
KR102210408B1 (ko) | 가상화 서버의 이중화를 위한 제어 방법 및 이를 위한 가상화 제어 장치 | |
US11182252B2 (en) | High availability state machine and recovery | |
CN111124749A (zh) | 紧耦合高性能计算机***bmc***自动修复方法及修复*** | |
CN109375953B (zh) | 一种操作***启动方法及装置 | |
JP6599725B2 (ja) | 情報処理装置およびログ管理方法、並びにコンピュータ・プログラム | |
US20220334825A1 (en) | Modular firmware update | |
CN110688130A (zh) | 物理机部署方法、装置、可读存储介质及电子设备 | |
WO2021012170A1 (zh) | 固件启动方法、设备及计算机可读存储介质 | |
US20110173428A1 (en) | Computer system, method for booting a computer system, and method for replacing a component |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090715 |