CN102073519B - 一种软件更新方法 - Google Patents
一种软件更新方法 Download PDFInfo
- Publication number
- CN102073519B CN102073519B CN201010622847.5A CN201010622847A CN102073519B CN 102073519 B CN102073519 B CN 102073519B CN 201010622847 A CN201010622847 A CN 201010622847A CN 102073519 B CN102073519 B CN 102073519B
- Authority
- CN
- China
- Prior art keywords
- software
- product
- file
- updated
- webserver
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件更新方法,所述方法包括下述步骤:在待更新软件的产品的BOOT程序运行过程中触发软件更新;启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。本发明通过在系统BOOT程序下、采用网络更新方式进行软件的网络自动更新,提高了更新效率,简化了更新过程,降低了更新成本。
Description
技术领域
本发明涉及嵌入式产品,具体地说,是涉及嵌入式产品的软件更新方法。
背景技术
对于电视机顶盒等嵌入式电子产品来说,其系统程序分为三部分:BOOT程序、LOADER程序和APP程序。BOOT程序主要负责系统的初始化和引导,是系统启动后首先执行的程序。LOADER程序主要用来负责系统的升级,在BOOT程序运行过程中若发现APP异常或存在升级需求,将进入该程序对系统进行升级。APP程序为系统的主要功能程序,系统的各使用功能均在APP中实现。
在对嵌入式产品进行升级更新时,可以采用三种接口更新方式,分别为串口更新、USB更新及网络更新。串口更新由于更新速度较慢、使用不便,即将退出使用。USB更新方便快捷,但无法实现一对多的升级,不适用于多设备同时进行升级操作。因此,目前应用较多的方式是采用网络接口、在LOADER程序下进行系统软件的更新。
但是,采用网络接口、在LOADER程序下执行软件的更新存在下述缺点:一方面,在LOADER程序下需要将更新数据文件打包成为mpeg-2格式的码流,并使用码流播放器播放出来,然后再通过QAM调制器完成调制,并上变频到指定频点。这个更新过程复杂,需要较多的专用昂贵设备,成本较高。另一方面,需要在系统启动并进入正常使用过程之后,才能检测网络中是否存在软件更新信息,并在存在软件更新信息时再进行更新。但在产品批量生产或维修的生产线,要等到产品正常启动之后再进行软件更新的检测和更新操作,势必延长了软件更新时间,严重降低生产效率,增加了生产线的成本。
发明内容
本发明的目的在于针对现有嵌入式产品软件更新存在的上述缺点和不足,提供一种新的软件更新方法,通过在系统BOOT程序下、采用网络更新方式进行软件的网络自动更新,提高了更新效率,简化了更新过程,降低了更新成本。
为实现上述发明目的,本发明采用下述技术方案予以实现:
一种软件更新方法,所述方法包括下述步骤:
a、在待更新软件的产品的BOOT程序运行过程中触发软件更新;
b、启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;
c、将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。
如上所述的软件更新方法,为实现一键更新,所述步骤a具体包括下述分步骤:
a1、在待更新软件的产品的BOOT程序中移植产品的操作按键程序;
a2、在BOOT程序运行过程中通过操作按键触发软件更新。
如上所述的软件更新方法,为实现多设备同时方便地进行软件更新,所述步骤b具体包括下述分步骤:
b1、启动BOOT程序中的网络协议,从网络服务器获取待更新软件的产品的IP地址和网络服务器的IP地址;
b2、根据所获取的IP地址从网络服务器中获取软件更新文件的索引文件;
b3、根据索引文件从网络服务器获取软件更新文件。
如上所述的软件更新方法,所述索引文件包括有软件更新文件的文件名称和文件长度,在所述步骤b3中,待更新软件的产品根据文件名称和文件长度从网络服务器中获取软件更新文件。
如上所述的软件更新方法,所述索引文件还包括有软件更新文件的文件写入地址,在所述步骤c中,待更新软件的产品根据文件写入地址将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。
如上所述的软件更新方法,为保证获取到正确的软件更新文件,所述索引文件包括有软件更新文件的CRC检验值,在所述步骤步骤b与所述步骤c之间还包括步骤c0:待更新软件的产品从网络服务器获取软更新文件后,对获取的文件数据进行CRC检验,并将检验值与索引文件中的软件更新文件的CRC校验值相比较,在两个CRC校验值相等时,校验成功,执行步骤c。
如上所述的软件更新方法,在待更新软件的产品完成软件更新后,网络服务器收回分配给该待更新软件的产品的IP地址,以避免IP地址资源的浪费。
如上所述的软件更新方法,为实时了解软件更新进程,在待更新软件的产品的BOOT程序中移植有产品的显示面板驱动程序,在BOOT程序的软件更新过程中,通过显示面板驱动程序驱动显示面板,用来显示软件更新的状态。
如上所述的软件更新方法,所述显示面板驱动程序优选为LED驱动程序。
如上所述的软件更新方法,为实现不同型号的产品设备的软件更新,所述网络服务器采用目录管理,不同目录下存放不同型号的待更新软件的产品的软件更新文件;在待更新软件的产品的BOOT程序中移植有选择产品型号的操作按键程序,在BOOT程序运行过程中触发产品型号对应的操作按键,并从网络服务器的对应目录下获取与产品型号相对应的软件更新文件。
与现有技术相比,本发明的优点和积极效果是:
1、本发明采用C/S架构,在产品的BOOT程序运行过程触发软件更新,并通过网络协议从网络服务器获取软件更新文件,不必在产品完成BOOT程序、进入正常运行的LOADER程序后再进行软件更新,一方面可以缩短软件更新时间,提高更新速度提高生产效率,另一方面省掉了LOADER程序下更新时的专用昂贵设备,降低了产品更新成本,简化了更新过程。
2、本发明通过在BOOT程序中移植操作按键程序,便于产品通过一键操作实现更新软件的自动获取、更新及校验,简化了更新操作,提高了生产效率。
3、本发明采用C/S架构,只需配置一台电脑作为网络服务器,通过网络服务器的DHCP服务,可以供多台产品同时进行更新操作,提高了生产线的更新效率,便于生产线上产品的批量制造和维修。
4、本发明通过在BOOT程序中移植产品显示面板驱动程序及操作按键程序,可以利用产品自身的显示面板显示更新进度,利用产品自身的按键进行更新操作,无需再额外配置其他的显示设备和控制设备,操作简单,更新方便。
结合附图阅读本发明的具体实施方式后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1是本发明软件更新方法一个实施例的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步详细的说明。
本发明从解决生产线上对机顶盒等嵌入式产品的系统软件更新角度出发,考虑到现有这些嵌入式产品基本是从系统的BOOT程序启动系统、且在BOOT程序中集成有网络传输功能的特点,提出从系统的BOOT程序中进行软件更新。
具体来说,采用下述下述过程实现产品的软件更新:
a、在待更新软件的产品的BOOT程序运行过程中触发软件更新;
b、启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;
c、将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。
采用上述软件更新方法,既能发挥网络更新的优点,又可以缩短更新时间,提高更新效率,简化更新过程,尤其适合于在生产线上实现产品的大批量生产和返修。
图1所示为本发明软件更新方法一个实施例的流程图。
首先,简要说明对网络服务器的配置要求及文件设置。
该实施例采用C/S架构,一个网络服务器可以对应多台作为客户端的产品,实现多台产品同时进行软件更新。在产品进行软件更新时,需要其主动连接网络服务器。若网络中存在多台产品同时存在软件更新请求,就要求不同客户端产品的IP设置不能重复;同时,为了操作方便,要求客户端产品能够获取到网络服务器的地址,因此,要求网络服务器设置有DHCP服务软件来动态为客户端设备分配IP地址,且DHCP服务所能支持的客户端数目越多,可以同时升级的客户端产品就越多。而且,为节省资源,在某个客户端产品的软件更新请求结束之后,网络服务器将收回所分配的IP地址,以供其他客户端使用。
此外,要从网络服务器获取软件更新文件,要求网络服务器在客户端产品软件更新之前,预先将软件更新文件及对软件更新文件进行信息描述的索引文件放置在共享目录下,以便于客户端产品能够获取。
该实施例以机顶盒作为待更新软件的嵌入式产品为例,机顶盒实现软件更新的具体流程如下:
S101:机顶盒启动,进入BOOT程序。
S102:判断是否存在软件更新按键操作。若存在更新按键操作,执行步骤S103;否则,转至步骤S111。
该实施例为简化机顶盒软件更新操作,实现一键更新,预先在机顶盒的BOOT程序中移植了机顶盒的操作按键程序,用户可以在BOOT程序运行过程中通过操作相应的操作按键触发软件更新。例如,可以设置长按机顶盒面板上的“音量+”或“音量-”按键作为软件更新的触发信号。在机顶盒运行BOOT程序时,将自动检测是否存在长按“音量+”或“音量-”的按键操作,进而判断是否需要执行软件更新。
S103:在存在更新按键操作时,启动BOOT中的网络协议,从网络服务器获取机顶盒的IP地址和网络服务器的IP地址。其中,机顶盒的IP地址是网络服务器的分配给该机顶盒的一个特定IP地址。
S104:根据IP地址及型号选择按键从网络服务器的相应目录下获取索引文件。
型号不同的机顶盒在进行软件更新时会对应有不同的软件更新文件,该实施例为扩大软件更新的产品范围、实现一台网络服务器对不同型号的机顶盒的软件更新,网络服务器采用目录管理,在根目录下设置不同的子目录,不同子目录以机顶盒的型号命令,且在不同子目录下存放对应不同型号的待更新软件的产品的软件更新文件。而且,在待更新软件的产品的BOOT程序中移植有选择产品型号的操作按键程序,在BOOT程序运行过程中触发产品型号对应的操作按键,即可网络服务器的对应目录下获取与产品型号相对应的软件更新文件。
为便于软件更新文件的获取和管理,该实施例每个软件更新文件均对应设置有相应的索引文件,且索引文件按照一定的语法结构组装,用来描述软件更新文件的具体信息。例如,在该实施例中,索引文件包括有下述字段:
文件名称,用于描述软件更新文件的文件名称;
文件长度,用于描述软件更新文件的大小;
文件写入地址,用于描述软件更新文件写入到机顶盒中的位置;
CRC校验值,用于描述软件更新文件的CRC校验结果。
若存在有多个软件更新文件,在索引文件中依次描述每个软件更新文件的上述字段信息。索引文件可以采用.txt文件或XML文件来描述。
S105:根据索引文件从网络服务器获取软件更新文件到机顶盒内存。
具体来说,根据索引文件中的文件名称和文件长度从网络服务器获取软件更新文件,并将该文件通过网络文件传输协议传输至机顶盒的内存中。
S106:判断机顶盒是否成功获取软件更新文件。若获取成功,执行步骤S107;否则,转至步骤S111。
S107:在成功获取软件更新文件后,根据索引文件对软件更新文件进行CRC校验。
该步骤的目的是保证机顶盒获取到正确的软件更新文件。具体来说,是机顶盒先对获取的软件更新文件的数据进行CRC检验,然后将检验值与索引文件中的软件更新文件的CRC校验值相比较,在两个CRC校验值相等时,表示校验成功。若两个CRC校验值不相等,则判定校验失败。当然,也可以在索引文件中设置其他形式的校验值,在机顶盒端采用相应的校验形式来校验数据的准确性。
S108:判断软件更新文件是否校验成功。若校验成功,执行步骤S109;否则,转至步骤S111。、
S109:根据索引文件将软件更新文件烧录到指定的位置。
具体来说,是根据索引文件中的文件写入地址将文件烧录到机顶盒flash中的相应位置。
S110:判断索引文件中是否还有软件更新文件。若有,转至步骤S105,继续根据索引文件的描述从网络服务器获取;若没有,则完成软件更新。然后执行步骤S111。
S111:校验APP程序。
在机顶盒运行BOOT程序过程中,若不存在软件更新按键操作、或软件更新文件获取失败、或软件更新文件校验失败,均跳过软件更新过程,进入校验APP程序的过程。
S112:判断APP校验是否正常。若校验正常,执行步骤S114;若校验异常,则执行步骤S113。
S113:在APP校验异常时,启动机顶盒系统的LOADER程序,进行相应处理。
S114:在APP校验正常时,启动系统的APP程序,进行相应功能程序的运行。
另外,在该实施例的机顶盒软件更新过程中,为实时了解软件更新进程,还可以在机顶盒的BOOT程序中移植机顶盒显示面板驱动程序。这样一来,在BOOT程序的软件更新过程中,就可通过显示面板驱动程序驱动显示面板,用来显示软件更新的状态。例如,显示面板驱动程序为机顶盒面板上的4个LED的LED驱动程序,分别用4个LED显示内容的不同来表示软件更新状态。若LED显示内容为“BOOT”,表示机顶盒已经进入BOOT程序,等待触发软件更新操作按键;若显示内容为“U---”,表示接收到长按“音量-”的按键信号;若显示内容为“U+++”,表示接收到长按“音量-”的按键信号;若显示内容为“---d”,表示开始DHCP服务,获取I P地址;若显示内容为“---n”,表示开始接收第n个软件更新文件;若显示内容为“---E”,表示软件更新过程出现错误;若显示内容为“---o”,表示软件更新成功;若显示内容为“APP-”,表示进入APP应用程序等。通过在BOOT程序中移植机顶盒显示面板的驱动程序、通过机顶盒显示面板直接显示软件更新状态,无需在额外连接显示屏来查看状态,操作简单,更新方便。
本发明通过在网络服务器端批量设置需要烧录的软件更新文件,将待更新软件的产品作为客户端,在客户端的BOOT引导程序环境中执行一条操作按键指令,即能完成产品所有软件更新数据的传输、下载、校验及烧录的软件更新操作,使用方便,适合于生产线上产品的大批量生产及返修时使用。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,对于本领域的普通技术人员来说,依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明所要求保护的技术方案的精神和范围。
Claims (8)
1.一种软件更新方法,其特征在于,所述方法包括下述步骤:
a、在待更新软件的产品的BOOT程序运行过程中触发软件更新;
b、启动BOOT程序中的网络协议,从网络服务器获取软件更新文件;
c、将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新;
其中,所述步骤a具体包括下述分步骤:
a1、在待更新软件的产品的BOOT程序中移植产品的操作按键程序;
a2、在BOOT程序运行过程中通过操作按键触发软件更新;
所述步骤b具体包括下述分步骤:
b1、启动BOOT程序中的网络协议,从网络服务器获取待更新软件的产品的IP地址和网络服务器的IP地址;
b2、根据所获取的IP地址从网络服务器中获取软件更新文件的索引文件;
b3、根据索引文件从网络服务器获取软件更新文件。
2.根据权利要求1所述的软件更新方法,其特征在于,所述索引文件包括有软件更新文件的文件名称和文件长度,在所述步骤b3中,待更新软件的产品根据文件名称和文件长度从网络服务器中获取软件更新文件。
3.根据权利要求2所述的软件更新方法,其特征在于,所述索引文件包括有软件更新文件的文件写入地址,在所述步骤c中,待更新软件的产品根据文件写入地址将软件更新文件烧录至指定的位置,完成待更新软件的产品的软件更新。
4.根据权利要求3所述的软件更新方法,其特征在于,所述索引文件包括有软件更新文件的CRC检验值,在所述步骤b与所述步骤c之间还包括步骤c0:待更新软件的产品从网络服务器获取软更新文件后,对获取的文件数据进行CRC检验,并将检验值与索引文件中的软件更新文件的CRC校验值相比较,在两个CRC校验值相等时,校验成功,执行步骤c。
5.根据权利要求1所述的软件更新方法,其特征在于,在待更新软件的产品完成软件更新后,网络服务器收回分配给该待更新软件的产品的IP地址。
6.根据权利要求1所述的软件更新方法,其特征在于,在待更新软件的产品的BOOT程序中移植有产品的显示面板驱动程序,在BOOT程序的软件更新过程中,通过显示面板驱动程序驱动显示面板,用来显示软件更新的状态。
7.根据权利要求6所述的软件更新方法,其特征在于,所述显示面板驱动程序为LED驱动程序。
8.根据权利要求1至7中任一项所述的软件更新方法,其特征在于,所述网络服务器采用目录管理,不同目录下存放不同型号的待更新软件的产品的软件更新文件;在待更新软件的产品的BOOT程序中移植有选择产品型号的操作按键程序,在BOOT程序运行过程中触发产品型号对应的操作按键,并从网络服务器的对应目录下获取与产品型号相对应的软件更新文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010622847.5A CN102073519B (zh) | 2010-12-31 | 2010-12-31 | 一种软件更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010622847.5A CN102073519B (zh) | 2010-12-31 | 2010-12-31 | 一种软件更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102073519A CN102073519A (zh) | 2011-05-25 |
CN102073519B true CN102073519B (zh) | 2014-03-19 |
Family
ID=44032065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010622847.5A Active CN102073519B (zh) | 2010-12-31 | 2010-12-31 | 一种软件更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073519B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799458A (zh) * | 2012-08-09 | 2012-11-28 | 昆山宏凌电子有限公司 | 一种自动更新软件 |
CN103336697A (zh) * | 2013-05-30 | 2013-10-02 | 杭州士兰控股有限公司 | 烧录系统及烧录方法 |
CN104516744A (zh) * | 2013-09-27 | 2015-04-15 | 无锡华润微电子有限公司 | 软件更新方法及系统 |
CN103514020A (zh) * | 2013-10-16 | 2014-01-15 | 深圳市共进电子股份有限公司 | 一种嵌入式设备批量升级的方法及系统 |
CN105279013B (zh) * | 2014-06-20 | 2019-11-19 | 深圳力维智联技术有限公司 | 基于批量生产的程序发布方法及其装置 |
CN106487550A (zh) * | 2015-08-26 | 2017-03-08 | 中兴通讯股份有限公司 | 一种用于设备软件版本升级的方法和装置 |
CN105938432A (zh) * | 2015-12-08 | 2016-09-14 | 杭州迪普科技有限公司 | 系统更新的方法及装置 |
CN107341026B (zh) * | 2016-05-03 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 驱动程序的控制方法及装置 |
CN107613286A (zh) * | 2017-08-30 | 2018-01-19 | 深圳市芯智科技有限公司 | 一种用于避免重复测试机顶盒的文件监测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1150207A2 (en) * | 2000-04-26 | 2001-10-31 | Nifty Corporation | Client-server system, computer readable medium and computer-executable program product for updating software |
CN101426077A (zh) * | 2008-12-05 | 2009-05-06 | 深圳创维-Rgb电子有限公司 | 通过Internet在线升级电视机软件的方法 |
CN101576828A (zh) * | 2009-06-01 | 2009-11-11 | 中兴通讯股份有限公司 | 软件版本升级方法及装置、服务器 |
CN101719072A (zh) * | 2009-11-23 | 2010-06-02 | 青岛海信宽带多媒体技术有限公司 | 嵌入式终端设备软件升级方法及升级装置 |
-
2010
- 2010-12-31 CN CN201010622847.5A patent/CN102073519B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1150207A2 (en) * | 2000-04-26 | 2001-10-31 | Nifty Corporation | Client-server system, computer readable medium and computer-executable program product for updating software |
CN101426077A (zh) * | 2008-12-05 | 2009-05-06 | 深圳创维-Rgb电子有限公司 | 通过Internet在线升级电视机软件的方法 |
CN101576828A (zh) * | 2009-06-01 | 2009-11-11 | 中兴通讯股份有限公司 | 软件版本升级方法及装置、服务器 |
CN101719072A (zh) * | 2009-11-23 | 2010-06-02 | 青岛海信宽带多媒体技术有限公司 | 嵌入式终端设备软件升级方法及升级装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102073519A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073519B (zh) | 一种软件更新方法 | |
US10713034B2 (en) | Updating web resources | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
EP2786248B1 (en) | Automatic updating of an application or a driver on a client device using a deployment configuration file | |
CN103795759B (zh) | 一种虚拟机镜像文件的调度方法和系统 | |
CN103873934B (zh) | 一种用于追剧的实时提醒方法及系统 | |
EP2605131A1 (en) | Packing method and device for version upgrade software package | |
CN103559065B (zh) | 一种ota升级的方法和系统 | |
WO2013081680A2 (en) | Deployment of a driver or an application on a client device having a write-filter | |
TWI492156B (zh) | 用以有效下載資料包的方法與系統 | |
EP2786246A1 (en) | Deployment and updating of applications and drivers on a client device using and extensible markup language (xml) configuration file | |
CN103365682B (zh) | 信息处理设备和信息处理方法 | |
CA3056859C (en) | Window parameter configuration method and system, computer-readable media | |
CN105512044A (zh) | 用于关键字驱动测试的对象库的更新方法及系统 | |
CN104391713A (zh) | 一种Windows系统自动安装方法 | |
CN105554552A (zh) | 一种基于机顶盒的ui动态布局系统及方法 | |
US9367302B2 (en) | Generating client qualification to execute package update manager | |
CN103019795A (zh) | 一种软件基础数据升级方法及系统 | |
US11841731B2 (en) | Cloud plugin for legacy on-premise application | |
CN102622254A (zh) | 电视机宕机处理方法和系统 | |
CN110609710A (zh) | 一种安卓系统开机速度控制方法、智能设备及存储介质 | |
CN113835723A (zh) | 一种用于车辆电子控制单元的片上系统、升级系统及方法 | |
JP5380895B2 (ja) | 管理プログラム、管理方法及び管理装置 | |
CN105867946A (zh) | 一种快速布置OpenStack虚拟桌面的方法及装置 | |
CN105740006A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |