CN104750531A - 一种嵌入式系统在线刷新程序的方法 - Google Patents
一种嵌入式系统在线刷新程序的方法 Download PDFInfo
- 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
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所述的一种嵌入式系统在线刷新程序的方法,其特征在于:所述的方法在数据下载完成后向有效标志位写入有效值,并复位嵌入式系统。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511976A (zh) * | 2015-12-01 | 2016-04-20 | 长城信息产业股份有限公司 | 一种嵌入式系统中的应用程序自恢复运行方法及装置 |
CN105511912A (zh) * | 2015-11-28 | 2016-04-20 | 惠州市蓝微新源技术有限公司 | 一种基于can总线的程序下载方法 |
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)
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 | 青岛歌尔声学科技有限公司 | 一种芯片固件的升级方法和系统 |
-
2015
- 2015-04-15 CN CN201510178517.4A patent/CN104750531A/zh active Pending
Patent Citations (6)
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)
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) | 一种嵌入式系统在线刷新程序的方法 | |
CN103207797B (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
CN109933348A (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
US9063819B2 (en) | Extensible patch management | |
CN103226484A (zh) | 一种星载综合电子系统程序的在轨更新方法 | |
CN105204913A (zh) | 一种在Android操作系统上运行Linux应用程序的方法及系统 | |
CN107992322B (zh) | 一种雷达信号处理机dsp代码自更新方法 | |
CN103577201A (zh) | 嵌入式双系统的更新方法及系统 | |
CN110308920B (zh) | 一种不影响正常运行的在轨修改星上产品软件的方法 | |
CN109822549B (zh) | 一种机器人编程方法、装置及控制器 | |
CN103077056B (zh) | 使用少量ROM资源的Bootlorder实现方法 | |
CN100430894C (zh) | 具有断电保护的电视系统软件更新方法 | |
CN113434180A (zh) | 应用的数据处理方法、装置、服务器和存储介质 | |
CN108255735A (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
CN112068881A (zh) | 一种基于数据链式的数据库升级方法 | |
CN114942933A (zh) | 一种自动更新数据库的方法及相关装置 | |
CN109766207A (zh) | 固件远程升级的恢复方法、装置、监控设备和存储介质 | |
CN103026339A (zh) | 对微控制器中的软件参数重新配置的方法以及微控制器和控制设备 | |
CN106126211A (zh) | 一种支持调试接口的mcu在线编程系统 | |
CN103677907A (zh) | 环境预测类应用组件的安装方法和装置 | |
CN103793231A (zh) | 一种移动终端参数处理方法及系统 | |
CN116028084A (zh) | 一种基于OpenStack云平台跨版本热升级的方法、系统及终端 | |
CN100492293C (zh) | 一种客制化基本输入输出系统的更新方法 | |
CN115373707A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150701 |
|
RJ01 | Rejection of invention patent application after publication |