CN104750531A - 一种嵌入式***在线刷新程序的方法 - Google Patents

一种嵌入式***在线刷新程序的方法 Download PDF

Info

Publication number
CN104750531A
CN104750531A CN201510178517.4A CN201510178517A CN104750531A CN 104750531 A CN104750531 A CN 104750531A CN 201510178517 A CN201510178517 A CN 201510178517A CN 104750531 A CN104750531 A CN 104750531A
Authority
CN
China
Prior art keywords
embedded system
application program
program
routine
effective
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
Application number
CN201510178517.4A
Other languages
English (en)
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.)
Anhui Normal University
Original Assignee
Anhui Normal University
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 Anhui Normal University filed Critical Anhui Normal University
Priority to CN201510178517.4A priority Critical patent/CN104750531A/zh
Publication of CN104750531A publication Critical patent/CN104750531A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式***在线刷新程序的方法,将启动程序、应用程序和有效标志放入嵌入式***的非易失性内存中;在嵌入式***复位后首先执行启动程序,启动程序读取有效标志的值,判断当前应用程序是否有效,如果有效则进入应用程序并持续运行,如果判断无效则进入刷新状态与外部设备建立通信,从外部设备下载刷新子程序;将下载的刷新子程序存放到非易失性内存中,下载完成后再从外部设备下载需刷新的应用程序,循环调用刷新子程序,将下载的每块需刷新的应用程序数据刷入指定的非易失性内存地址。由于采用上述的方法,本发明可以通过在线刷新的方式完成嵌入式***的软件更新,在软甲程序上进行改进无需增加过的生产成本。

Description

一种嵌入式***在线刷新程序的方法
技术领域
本发明涉及嵌入式***的程序更新,特别涉及一种嵌入式***在线刷新程序的方法。
背景技术
目前的嵌入式***特别是一些功能比较复杂的嵌入式控制***,在产品开发完毕推向市场后,由于***的复杂性,常常会发现原来的程序有缺陷,或者增加新功能的时候,需要厂家对现有程序进行升级。
对于已经流入市场的嵌入式产品进行召回或更换处理,又或者由厂家派出专业的工程师用专业的刷新工具去对已售出的产品进行刷新,这种做法费时、费力、费钱。
针对上述问题,提供一种新型的方法,方便厂家对已出厂的嵌入式***进行软件更新升级是现有技术需要解决的问题。
发明内容
本发明所要解决的技术问题是,提供一种嵌入式***在线刷新程序的方法,便于厂家对已出厂的嵌入式***进行软件更新升级。
为达到上述目的,本发明的技术方案是,一种嵌入式***在线刷新程序的方法,其特征在于:所述的方法是将启动程序、应用程序和有效标志放入嵌入式***的非易失性内存中;在嵌入式***复位后首先执行启动程序,启动程序读取有效标志的值,判断当前应用程序是否有效,如果有效则进入应用程序并持续运行,如果判断无效则进入刷新状态与外部设备建立通信,从外部设备下载刷新子程序;将下载的刷新子程序存放到易失性内存中,下载完成后再从外部设备下载需刷新的应用程序,循环调用刷新子程序,将下载的每块需刷新的应用程序数据刷入指定的非易失性内存地址。
所述的启动程序、应用程序和有效标志在非易失性内存中的存放地址空间是确定且相互独立的。
所述的启动程序包含通信功能和判断应用程序是否有效的功能。
所述的应用程序包括嵌入式***需要实现的各种业务逻辑功能的程序。
所述的有效标志由一个或数个字节组成,指定某个确定值作为判断应用程序是否有效的标志。
所述的应用程序在运行时如果接到在线刷新的指令后清除有效标志并重启***,重启后由启动程序重新判断当前应用程序的有效标志是否有效,无效则进入刷新状态。
所述的方法在数据下载完成后向有效标志位写入有效值,并复位嵌入式***。
一种嵌入式***在线刷新程序的方法,由于采用上述的方法,本发明可以通过在线刷新的方式完成嵌入式***的软件更新,在软件程序上进行改进无需增加生产成本并大大降低售后服务成本。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明;
图1为本发明一种嵌入式***在线刷新程序的方法中程序存放划分示意图;
图2为本发明一种嵌入式***在线刷新程序的方法软件流程图。
具体实施方式
现有的嵌入式***一般都会带有通信功能模块,如CAN总线通信、LIN总线通信、K线通信等,即使该产品的应用场合不需要通信功能,也可以自带有备用的通信模块。本发明正是利用这些通信模块,实现一种对嵌入式***的在线刷新程序的方法。
通过安徽高等学校省级自然科学研究项目:KJ20112140以及安徽师范大学创新基金项目:2013cxjj05的研究完成本发明,本发明的具体技术方案如下:
(1)将存放在嵌入式***的非易失性内存的程序分为启动程序、应用程序、有效标志3个部分。
(2)启动程序、应用程序、、有效标志这3个部分都存放在嵌入式***的非易失性内存中,且存放的地址空间是确定且互相独立的。
(3)启动程序仅实现通信功能和判断应用程序是否有效的功能。
(3)应用程序实现嵌入式***需要实现的各种业务逻辑功能。
(4)有效标志由一个或数个字节组成,指定某个确定值作为判断应用程序是否有效的标志。
(5)嵌入式***复位后,首先执行启动程序,启动程序读取有效标志的值,判断应用程序是否有效。
(6)如果第(5)步判断为应用程序有效,启动程序跳转到应用程序入口,执行应用程序,嵌入式***开始正常运行。
(7)如果第(5)步判断为应用程序无效,启动程序停留在自己程序内,等待与外部设备通信进行应用程序刷新。
(8)当执行第(6)步嵌入式***开始进行正常运行后,如果应用程序接收到在线刷新指令,则应用程序将有效标志位的有效值清除,并触发复位信号,使嵌入式***复位,进入第(5)步。
(9)当执行第(7)步进入等待应用程序刷新状态后,启动程序本身没有刷新功能,需要和外部设备进行通信,并从外部设备下载刷新子程序。
(10)将第(9)步中下载的刷新子程序,存放于易失性内存中,刷新子程序下载完毕后,开始从外部设备分块下载需刷新的应用程序数据。
(11)逐块下载需刷新的应用程序数据,并循环调用刷新子程序,将下载的每块需刷新的应用程序数据刷入指定的非易失性内存地址。
(12)当所有需刷新的应用程序数据均已刷入相应的非易失性内存且校验无误后,向有效标志位写入有效值,并复位嵌入式***。
本发明将存放在嵌入式***的非易失性内存的程序分为启动程序、应用程序、有效标志3个部分,其中启动程序在出厂时即刷入嵌入式***中,这部分程序不能通过在线来刷新,但由于启动程序仅包括通信和判断有效标志是否有效,功能非常简单,且这个功能一旦确定后期就不再需要升级,程序占用空间也很小,因此可以通过充分测试来保证启动程序这部分内容的可靠性。而涉及到嵌入式***应用场景的业务逻辑一般比较复杂,产品推出市场后往往会发现控制逻辑存在缺陷或某些功能需要增加或修改,因此这部分的内容放在应用程序中实现,可以通过在线刷新。
本发明设计利用有效标志来判断应用程序是否存在且有效。当***在应用程序中运行的时候,如果需要进行在线刷新,应用程序首先清除有效标志并复位***,这样复位后进入启动程序时就会检测到有效标志无效,从而进入刷新状态。在刷新状态进行应用程序刷新的时候,要求在确认所有应用程序的更新数据成功刷入后,即在刷新完成前的最后一步才能将有效标志位设为有效。这种机制保证了在刷新过程中,如果发生掉电或死机等意外,导致刷新未能正常完成的时候,由于此时有效标志位仍保持在被清除后的无效状态,且启动程序是不能被在线刷新的,仍然存在于***中,因此只需要用重启***,即可再次通过启动程序判断并发现有效标志无效,从而重新进入刷新状态,不会出现嵌入式***被刷死的情况。
本发明用于实现应用程序刷新的刷新子程序是通过启动程序与外部设备进行通信后下载得到,且存放在易失性内存中,一旦刷新完成,重启***后这个刷新子程序就不再存在于***中了。这使得启动程序本身的代码量更少更简单,节省了整个***的存储空间,且由于***在正常运行的时候,并不带有刷新子程序,对***本身也更加安全,即使程序跑飞的情况下也不可能出现误调用刷新子程序导致非易失性内容发生意外改变的情况。如果刷新子程序本身的算法有更新,则只需要修改外部通信设备即可,也不需要对嵌入式***本身的启动程序做任何修改,使用更加灵活。
如图1-2所示,对本发明的具体方法举例进行说明,为本例所述的嵌入式***其非易失性内存大小为1MB,所占据的地址空间为从0x0000 0000到0x000FFFFF,易失性内存大小为1KB,所占据的地址空间为从0x0010 0000到0x001003FF如附图1所示。其中地址从0x0000 0000到0x0000 03FF划分为启动程序所占据的非易失性内存空间,地址从0x0000 0400到0x000F FFFE划分为应用程序所占据的非易失性内存空间,地址0x000F FFFF代表的一个字节的非易失性内存空间划分为有效标志存放的空间。地址从0x0010 0000到0x0010 03FF为易失性内存空间,可用于刷新时存放刷新子程序。有效标志代表应用程序有效的值设为0xAA。
当嵌入式***复位后,首先调用启动程序,启动程序读入地址位于0x000FFFFF的有效标志的值,判断该值是否等于0xAA。
如果等于0xAA,则说明应用程序存在且有效,启动程序调用应用程序,进入应用程序的运行。应用程序在运行过程中周期性地检查是否收到有效的在线刷新指令,如果收到有效的在线刷新指令,则通过把有效标志的值设为0x00的方法,清除有效标志,然后复位***。
如果不等于0xAA,则说明应用程序无效,这是启动程序将进入刷新状态,等待与外部设备的通信。如果此时有对应的外部设备与嵌入式***建立通信,则启动程序可以从外部设备下载刷新子程序,并放入易失性内存中。然后通过外部设备的通信,逐块下载待刷新的应用程序数据,并调用存放在易失性内存中的刷新子程序将每块下载的数据刷入相应的非易失性内存地址中。如果所有的应用程序数据均已刷入,结束刷新的最后一步,设置有效标志位为0xAA,然后复位***。
上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明技术方案进行的各种改进,或未经改进直接应用于其它场合的,均在本发明的保护范围之内。

Claims (7)

1.一种嵌入式***在线刷新程序的方法,其特征在于:所述的方法是将启动程序、应用程序和有效标志放入嵌入式***的非易失性内存中;在嵌入式***复位后首先执行启动程序,启动程序读取有效标志的值,判断当前应用程序是否有效,如果有效则进入应用程序并持续运行,如果判断无效则进入刷新状态与外部设备建立通信,从外部设备下载刷新子程序;将下载的刷新子程序存放到易失性内存中,下载完成后再从外部设备下载需刷新的应用程序,循环调用刷新子程序,将下载的每块需刷新的应用程序数据刷入指定的非易失性内存地址。
2.根据权利要求1所述的一种嵌入式***在线刷新程序的方法,其特征在于:所述的启动程序、应用程序和有效标志在非易失性内存中的存放地址空间是确定且相互独立的。
3.根据权利要求1所述的一种嵌入式***在线刷新程序的方法,其特征在于:所述的启动程序包含通信功能和判断应用程序是否有效的功能。
4.根据权利要求1所述的一种嵌入式***在线刷新程序的方法,其特征在于:所述的应用程序包括嵌入式***需要实现的各种业务逻辑功能的程序。
5.根据权利要求1所述的一种嵌入式***在线刷新程序的方法,其特征在于:所述的有效标志由一个或数个字节组成,指定某个确定值作为判断应用程序是否有效的标志。
6.根据权利要求1所述的一种嵌入式***在线刷新程序的方法,其特征在于:所述的应用程序在运行时如果接到在线刷新的指令后清除有效标志并重启***,重启后由启动程序重新判断当前应用程序的有效标志是否有效,无效则进入刷新状态。
7.根据权利要求1所述的一种嵌入式***在线刷新程序的方法,其特征在于:所述的方法在数据下载完成后向有效标志位写入有效值,并复位嵌入式***。
CN201510178517.4A 2015-04-15 2015-04-15 一种嵌入式***在线刷新程序的方法 Pending CN104750531A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510178517.4A CN104750531A (zh) 2015-04-15 2015-04-15 一种嵌入式***在线刷新程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510178517.4A CN104750531A (zh) 2015-04-15 2015-04-15 一种嵌入式***在线刷新程序的方法

Publications (1)

Publication Number Publication Date
CN104750531A true CN104750531A (zh) 2015-07-01

Family

ID=53590279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510178517.4A Pending CN104750531A (zh) 2015-04-15 2015-04-15 一种嵌入式***在线刷新程序的方法

Country Status (1)

Country Link
CN (1) CN104750531A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511912A (zh) * 2015-11-28 2016-04-20 惠州市蓝微新源技术有限公司 一种基于can总线的程序下载方法
CN105511976A (zh) * 2015-12-01 2016-04-20 长城信息产业股份有限公司 一种嵌入式***中的应用程序自恢复运行方法及装置
CN106444730A (zh) * 2016-12-19 2017-02-22 普华基础软件股份有限公司 一种防软件僵死的电子控制单元的诊断方法
CN112015456A (zh) * 2019-05-31 2020-12-01 河南森源电动汽车有限公司 一种BootLoader程序更新方法
CN112130922A (zh) * 2020-09-30 2020-12-25 天津津航计算技术研究所 一种基于非易失性内存的***快速启动设备及方法
CN114880008A (zh) * 2022-05-17 2022-08-09 联陆智能交通科技(上海)有限公司 软件升级方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114852A1 (en) * 2000-11-17 2005-05-26 Shao-Chun Chen Tri-phase boot process in electronic devices
CN101271396A (zh) * 2008-04-15 2008-09-24 威盛电子股份有限公司 电子装置及其在线更新固件的方法
CN101882087A (zh) * 2010-06-30 2010-11-10 中兴通讯股份有限公司 一种多媒体终端设备及其维护方法
CN101950253A (zh) * 2010-08-12 2011-01-19 深圳市共进电子有限公司 借助web网页接口升级光网络单元中光模块固件的方法
CN102043680A (zh) * 2010-12-28 2011-05-04 重庆恩菲斯软件有限公司 一种ecu嵌入式软件刷新和下载编程的方法及***
CN103761122A (zh) * 2013-12-31 2014-04-30 青岛歌尔声学科技有限公司 一种芯片固件的升级方法和***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114852A1 (en) * 2000-11-17 2005-05-26 Shao-Chun Chen Tri-phase boot process in electronic devices
CN101271396A (zh) * 2008-04-15 2008-09-24 威盛电子股份有限公司 电子装置及其在线更新固件的方法
CN101882087A (zh) * 2010-06-30 2010-11-10 中兴通讯股份有限公司 一种多媒体终端设备及其维护方法
CN101950253A (zh) * 2010-08-12 2011-01-19 深圳市共进电子有限公司 借助web网页接口升级光网络单元中光模块固件的方法
CN102043680A (zh) * 2010-12-28 2011-05-04 重庆恩菲斯软件有限公司 一种ecu嵌入式软件刷新和下载编程的方法及***
CN103761122A (zh) * 2013-12-31 2014-04-30 青岛歌尔声学科技有限公司 一种芯片固件的升级方法和***

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511912A (zh) * 2015-11-28 2016-04-20 惠州市蓝微新源技术有限公司 一种基于can总线的程序下载方法
CN105511912B (zh) * 2015-11-28 2017-09-12 惠州市蓝微新源技术有限公司 一种基于can总线的程序下载方法
CN105511976A (zh) * 2015-12-01 2016-04-20 长城信息产业股份有限公司 一种嵌入式***中的应用程序自恢复运行方法及装置
CN106444730A (zh) * 2016-12-19 2017-02-22 普华基础软件股份有限公司 一种防软件僵死的电子控制单元的诊断方法
CN106444730B (zh) * 2016-12-19 2022-06-21 普华基础软件股份有限公司 一种防软件僵死的电子控制单元的诊断方法
CN112015456A (zh) * 2019-05-31 2020-12-01 河南森源电动汽车有限公司 一种BootLoader程序更新方法
CN112130922A (zh) * 2020-09-30 2020-12-25 天津津航计算技术研究所 一种基于非易失性内存的***快速启动设备及方法
CN114880008A (zh) * 2022-05-17 2022-08-09 联陆智能交通科技(上海)有限公司 软件升级方法及***

Similar Documents

Publication Publication Date Title
CN104750531A (zh) 一种嵌入式***在线刷新程序的方法
CN104572206A (zh) 应用程序自更新和备份恢复的方法
US9063819B2 (en) Extensible patch management
CN103226484A (zh) 一种星载综合电子***程序的在轨更新方法
CN111897570A (zh) 一种基于Maven插件的多依赖项文件提取方法及装置
CN104391717A (zh) 一种调试时代码动态更新方法
CN107992322B (zh) 一种雷达信号处理机dsp代码自更新方法
CN106201608A (zh) 计算机uefi固件更新方法
CN108255735A (zh) 关联环境测试方法、电子装置及计算机可读存储介质
CN112068881A (zh) 一种基于数据链式的数据库升级方法
CN110308920B (zh) 一种不影响正常运行的在轨修改星上产品软件的方法
CN105183657A (zh) 一种web界面的测试***及方法
CN114942933A (zh) 一种自动更新数据库的方法及相关装置
CN113434180A (zh) 应用的数据处理方法、装置、服务器和存储介质
CN109766207A (zh) 固件远程升级的恢复方法、装置、监控设备和存储介质
CN103026339A (zh) 对微控制器中的软件参数重新配置的方法以及微控制器和控制设备
CN106126211A (zh) 一种支持调试接口的mcu在线编程***
CN103677907A (zh) 环境预测类应用组件的安装方法和装置
CN116028084A (zh) 一种基于OpenStack云平台跨版本热升级的方法、***及终端
CN100492293C (zh) 一种客制化基本输入输出***的更新方法
CN110908690A (zh) 一种基于can总线的多个bmu应用程序在线升级方法
EP1265136A2 (en) Linking of applications into devices having overlays and shadow memories
CN115373707A (zh) 航天器实时***内存受限条件下任务在线更新***及方法
CN111831314B (zh) 一种针对不可写分区打补丁的方法与装置
CN113127043A (zh) 一种单片机APP在线升级BootLoader的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150701

RJ01 Rejection of invention patent application after publication