CN103257880B - 一种基于dsp的远程应用程序在线更新方法 - Google Patents
一种基于dsp的远程应用程序在线更新方法 Download PDFInfo
- Publication number
- CN103257880B CN103257880B CN201310209638.1A CN201310209638A CN103257880B CN 103257880 B CN103257880 B CN 103257880B CN 201310209638 A CN201310209638 A CN 201310209638A CN 103257880 B CN103257880 B CN 103257880B
- Authority
- CN
- China
- Prior art keywords
- application program
- flash memory
- online updating
- renewal
- boot
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于DSP的远程应用程序在线更新方法,远程DSP终端的外部FLASH存储器划分为引导区、主区和备份区,引导区用于存储引导程序,主区用于存储当前运行的应用程序,备份区用于存储更新应用程序,主要包括正常情况下应用程序在线更新的步骤和异常情况下应用程序在线更新的步骤。正常情况下应用程序在线更新步骤不进行复杂的可靠性处理,提高了正常情况下的应用程序更新速度,当出现掉电、无操作等异常情况时,当DSP重新上电后,由引导程序完成异常情况下的应用程序在线更新,保证了异常情况下应用程序更新过程的可靠性,同时具有更新方式灵活的特点。
Description
技术领域
本发明涉及一种基于DSP的远程应用程序在线更新方法,尤其涉及一种快速灵活的基于DSP的远程应用程序在线更新方法,特别适用于大规模通信网络终端软件的远程在线扩展和升级。
背景技术
近年来,以数字信号处理器DSP为核心的各种电子产品得到了越来越广泛地应用,DSP己成为电力、通信、自动控制以及消费类电子产品的关键部件。一般来说,采用高性能DSP设计的复杂设备或系统,在其产品生命周期内,有必要具备一种有效的在线更新机制,实现原功能的改进或全新的功能。这种软件更新是系统调试和功能完善的重要手段,大大增强了系统的可维护性、可扩展能力。如图1所示,目前,DSP系统一般采用FLASH存储器作为外部扩展非易失存储器,用于存储上电后的DSP运行程序。FLASH存储程序的在线更新大多采用两种方式,即由DSP应用程序或引导程序中嵌入的在线更新程序完成。由DSP应用程序实现在线更新时,为保证程序更新过程中遇到掉电、死机、误操作等异常情况时,不致因破坏原有版本程序造成系统崩溃,往往进行复杂的可靠性处理,致使程序更新时间较长。由引导程序进行更新时,虽然可靠性高,但是需要重新上电后才能完成更新过程,更新方式不灵活。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于DSP的远程应用程序在线更新方法,本发明提高了正常情况下的应用程序更新速度,保证了异常情况下应用程序更新过程的可靠性,同时具有更新方式灵活的特点。
本发明的技术解决方案是:一种基于DSP的远程应用程序在线更新方法,远程DSP终端的外部FLASH存储器划分为引导区、主区和备份区,引导区用于存储引导程序,主区用于存储当前运行的应用程序,备份区用于存储更新应用程序,包括正常情况下应用程序在线更新的步骤和异常情况下应用程序在线更新的步骤;
正常情况下应用程序在线更新的步骤:
(1)引导程序将存储在FLASH存储器主区中的应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到应用程序的起始地址开始运行,当远程DSP终端需要在线更新应用程序时,控制中心计算机通过通信链路向远程DSP终端发送程序更新命令,当前运行的应用程序中的在线更新模块接到程序更新命令后转入程序在线更新流程;
(2)控制中心计算机向远程DSP终端发送更新应用程序,当前运行应用程序中的在线更新模块接收更新应用程序,并对接收到的更新程序进行CRC校验,如果CRC校验结果正确,引导程序将更新应用程序写到FLASH存储器的备份区中,否则重新接收更新应用程序并对接收到的更新应用程序进行CRC校验直到CRC校验结果正确为止;
(3)当前运行应用程序中的在线更新模块回读写在FLASH存储器备份区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对FLASH存储器主区首地址指示标志置0,否则引导程序重新将更新应用程序写到FLASH存储器的备份区中,在线更新模块回读写在FLASH存储器备份区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(4)引导程序将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对FLASH存储器主区首地址指示标志置1,否则引导程序重新将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(5)前运行应用程序中的在线更新模块将写在FLASH存储器主区中的更新应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到更新应用程序的起始地址运行;
异常情况下应用程序在线更新的步骤:
(1)当远程DSP终端未完成应用程序在线更新时,远程DSP终端重新上电后,存储在FLASH存储器引导区中的引导程序自动加载到远程DSP终端片内或片外RAM中,并跳转到引导程序的首地址开始运行;
(2)引导程序首先判断FLASH存储器主区首地址指示标志是否为1,如果是,则拷贝FLASH存储器主区中的更新应用程序到远程DSP终端片内或片外RAM,并跳转到更新应用程序的起始地址进行运行;否则,引导程序将FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中;
(3)当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对主区首地址指示标志置1,否则引导程序重新将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(4)前运行应用程序中的在线更新模块将写在FLASH存储器主区中的更新应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到更新应用程序的起始地址进行运行。
本发明与现有技术相比具有如下优点:本发明正常情况下应用程序在线更新步骤不进行复杂的可靠性处理,提高了正常情况下的应用程序更新速度,当出现掉电、无操作等异常情况时,当DSP重新上电后,由引导程序完成异常情况下的应用程序在线更新,保证了异常情况下应用程序更新过程的可靠性,同时具有更新方式灵活的特点。
附图说明
图1为远程DSP终端的工作原理图;
图2为正常情况下应用程序在线更新的流程图;
图3为异常情况下应用程序在线更新的流程图。
具体实施方式
一种基于DSP的远程应用程序在线更新方法,远程DSP终端的外部FLASH存储器划分为引导区、主区和备份区,引导区用于存储引导程序,主区用于存储当前运行的应用程序,在主区首地址指示标志表示主区存储的应用程序是否为最新版本的应用程序(1表示更新应用程序,0表示不是更新应用程序),备份区用于存储更新应用程序,包括:正常情况下应用程序在线更新的步骤和异常情况下应用程序在线更新的步骤;
如图2所示,正常情况下应用程序在线更新的步骤:
正常情况下应用程序在线更新的步骤:
(1)引导程序将存储在FLASH存储器主区中的应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到应用程序的起始地址开始运行,当远程DSP终端需要在线更新应用程序时,控制中心计算机通过通信链路向远程DSP终端发送程序更新命令,当前运行的应用程序中的在线更新模块接到程序更新命令后转入程序在线更新流程;
(2)控制中心计算机向远程DSP终端发送更新应用程序,当前运行应用程序中的在线更新模块接收更新应用程序,并对接收到的更新程序进行CRC校验,如果CRC校验结果正确,引导程序将更新应用程序写到FLASH存储器的备份区中,否则重新接收更新应用程序并对接收到的更新应用程序进行CRC校验直到CRC校验结果正确为止;
(3)当前运行应用程序中的在线更新模块回读写在FLASH存储器备份区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对FLASH存储器主区首地址指示标志置0,否则引导程序重新将更新应用程序写到FLASH存储器的备份区中,在线更新模块回读写在FLASH存储器备份区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(4)引导程序将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对FLASH存储器主区首地址指示标志置1,否则引导程序重新将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(5)前运行应用程序中的在线更新模块将写在FLASH存储器主区中的更新应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到更新应用程序的起始地址运行;
如图3所示,当DSP在运行过程中应用程序在线更新遇到掉电等异常情况而没有完成在线更新时,DSP重新上电后通过运行引导程序完成应用程序的在线更新,异常情况下应用程序在线更新的步骤:
(1)当远程DSP终端未完成应用程序在线更新时,远程DSP终端重新上电后,存储在FLASH存储器引导区中的引导程序自动加载到远程DSP终端片内或片外RAM中,并跳转到引导程序的首地址开始运行;
(2)引导程序首先判断FLASH存储器主区首地址指示标志是否为1,如果是,则拷贝FLASH存储器主区中的更新应用程序到远程DSP终端片内或片外RAM,并跳转到更新应用程序的起始地址进行运行;否则,引导程序将FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中;
(3)当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对主区首地址指示标志置1,否则引导程序重新将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(4)前运行应用程序中的在线更新模块将写在FLASH存储器主区中的更新应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到更新应用程序的起始地址进行运行。
本发明未详细描述内容为本领域技术人员公知技术。
Claims (1)
1.一种基于DSP的远程应用程序在线更新方法,远程DSP终端的外部FLASH存储器划分为引导区、主区和备份区,引导区用于存储引导程序,主区用于存储当前运行的应用程序,备份区用于存储更新应用程序,其特征在于包括:正常情况下应用程序在线更新的步骤和异常情况下应用程序在线更新的步骤;
正常情况下应用程序在线更新的步骤:
(1)引导程序将存储在FLASH存储器主区中的应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到应用程序的起始地址开始运行,当远程DSP终端需要在线更新应用程序时,控制中心计算机通过通信链路向远程DSP终端发送程序更新命令,当前运行的应用程序中的在线更新模块接到程序更新命令后转入程序在线更新流程;
(2)控制中心计算机向远程DSP终端发送更新应用程序,当前运行应用程序中的在线更新模块接收更新应用程序,并对接收到的更新程序进行CRC校验,如果CRC校验结果正确,引导程序将更新应用程序写到FLASH存储器的备份区中,否则重新接收更新应用程序并对接收到的更新应用程序进行CRC校验直到CRC校验结果正确为止;
(3)当前运行应用程序中的在线更新模块回读写在FLASH存储器备份区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对FLASH存储器主区首地址指示标志置0,否则引导程序重新将更新应用程序写到FLASH存储器的备份区中,在线更新模块回读写在FLASH存储器备份区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(4)引导程序将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对FLASH存储器主区首地址指示标志置1,否则引导程序重新将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(5)当前运行应用程序中的在线更新模块将写在FLASH存储器主区中的更新应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到更新应用程序的起始地址运行;
异常情况下应用程序在线更新的步骤:
(1)当远程DSP终端未完成应用程序在线更新时,远程DSP终端重新上电后,存储在FLASH存储器引导区中的引导程序自动加载到远程DSP终端片内或片外RAM中,并跳转到引导程序的首地址开始运行;
(2)引导程序首先判断FLASH存储器主区首地址指示标志是否为1,如果是,则拷贝FLASH存储器主区中的更新应用程序到远程DSP终端片内或片外RAM,并跳转到更新应用程序的起始地址进行运行;否则,引导程序将FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中;
(3)当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,如果CRC校验结果正确则对主区首地址指示标志置1,否则引导程序重新将写在FLASH存储器备份区中的更新应用程序写到FLASH存储器主区中,当前运行应用程序中的在线更新模块回读写在FLASH存储器主区中的更新应用程序,并对回读的更新应用程序进行CRC校验,直到CRC校验结果正确为止;
(4)当前运行应用程序中的在线更新模块将写在FLASH存储器主区中的更新应用程序拷贝到远程DSP终端片内或片外RAM中,然后跳转到更新应用程序的起始地址进行运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310209638.1A CN103257880B (zh) | 2013-05-30 | 2013-05-30 | 一种基于dsp的远程应用程序在线更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310209638.1A CN103257880B (zh) | 2013-05-30 | 2013-05-30 | 一种基于dsp的远程应用程序在线更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103257880A CN103257880A (zh) | 2013-08-21 |
CN103257880B true CN103257880B (zh) | 2016-03-30 |
Family
ID=48961815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310209638.1A Active CN103257880B (zh) | 2013-05-30 | 2013-05-30 | 一种基于dsp的远程应用程序在线更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103257880B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530146B (zh) * | 2013-09-16 | 2016-09-07 | 成都交大光芒科技股份有限公司 | 低功耗嵌入式设备远程无线升级方法 |
CN103514018A (zh) * | 2013-10-08 | 2014-01-15 | 上海电力学院 | 基于stm32f4控制器的程序远程下载的实现方法 |
CN103823698A (zh) * | 2014-02-27 | 2014-05-28 | 四川九洲电器集团有限责任公司 | Fpga和dsp目标程序的烧写和启动的方法及设备 |
CN105930730A (zh) * | 2015-09-22 | 2016-09-07 | 中国银联股份有限公司 | 在可信执行环境下终端系统安全更新方法及装置 |
CN106598668A (zh) * | 2016-12-13 | 2017-04-26 | 西安航天精密机电研究所 | 基于调度系统对agv物流运输系统进行远程升级的方法 |
CN106648807B (zh) * | 2017-01-10 | 2020-12-01 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN106843959A (zh) * | 2017-01-18 | 2017-06-13 | 株洲变流技术国家工程研究中心有限公司 | 一种fpga远程更新装置及方法 |
CN108829427A (zh) * | 2017-05-05 | 2018-11-16 | 中国航空无线电电子研究所 | 一种航电设备应用程序固化方法 |
CN108132853A (zh) * | 2017-11-24 | 2018-06-08 | 北京动力机械研究所 | 用于发动机控制器软件的上电校验双冗余引导加载方法 |
CN109634623A (zh) * | 2018-12-12 | 2019-04-16 | 山东管理学院 | 基于dsp的程序上注运行方法 |
CN110262349A (zh) * | 2019-06-28 | 2019-09-20 | 中国航空工业集团公司雷华电子技术研究所 | 一种c8051f系列单片机的远程在线编程方法及系统 |
CN111562932B (zh) * | 2020-05-08 | 2023-09-26 | 北京计算机技术及应用研究所 | 一种高可靠嵌入式软件升级方法及系统 |
CN112181725B (zh) * | 2020-09-25 | 2023-07-25 | 江苏恒宝智能系统技术有限公司 | 一种嵌入式系统的片内外数据掉电防拔备份方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101126920A (zh) * | 2007-09-30 | 2008-02-20 | 浙江中控技术有限公司 | 实现固化程序在线升级的方法和装置 |
CN102023876A (zh) * | 2009-09-14 | 2011-04-20 | 漳州科能电器有限公司 | 一种可软件在线升级的嵌入式系统及在线升级方法 |
CN102567059A (zh) * | 2011-12-29 | 2012-07-11 | 中国电力科学研究院 | 一种远程更新设备软件的方法 |
CN102693139A (zh) * | 2011-03-25 | 2012-09-26 | 比亚迪股份有限公司 | 一种无线升级手机软件的方法及系统 |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
-
2013
- 2013-05-30 CN CN201310209638.1A patent/CN103257880B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101126920A (zh) * | 2007-09-30 | 2008-02-20 | 浙江中控技术有限公司 | 实现固化程序在线升级的方法和装置 |
CN102023876A (zh) * | 2009-09-14 | 2011-04-20 | 漳州科能电器有限公司 | 一种可软件在线升级的嵌入式系统及在线升级方法 |
CN102693139A (zh) * | 2011-03-25 | 2012-09-26 | 比亚迪股份有限公司 | 一种无线升级手机软件的方法及系统 |
CN102567059A (zh) * | 2011-12-29 | 2012-07-11 | 中国电力科学研究院 | 一种远程更新设备软件的方法 |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103257880A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103257880B (zh) | 一种基于dsp的远程应用程序在线更新方法 | |
CN103207797B (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
CN104102518B (zh) | 一种双cpu系统及其程序升级方法 | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN105893090B (zh) | 一种嵌入式系统bootrom和应用程序升级方法 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
US20110320794A1 (en) | Flash System And Method For Updating The Flash System | |
CN103412561A (zh) | 一种汽车控制器的刷新方法及装置 | |
CN110333891A (zh) | 基于物联网的增强型ota升级的方法 | |
CN103761112A (zh) | 一种车载多媒体装置及其控制方法 | |
CN101815988A (zh) | 固件映像更新和管理 | |
CN103092647A (zh) | 嵌入式系统的在线升级方法 | |
CN105094876B (zh) | Cpld的升级处理方法、装置和系统 | |
CN102360304A (zh) | 嵌入式微处理器系统及其固件更新方法 | |
CN101169729A (zh) | 嵌入式系统及其更新应用程序的方法 | |
CN110673867A (zh) | Cpld在线升级方法、装置及系统 | |
WO2022188690A1 (zh) | 升级电子设备的方法及装置 | |
CN104199707A (zh) | 对fpga进行升级的系统和方法 | |
CN112540780A (zh) | 一种编队无人机批量固件升级实现系统、方法 | |
CN105278976B (zh) | 一种fpga重构装置、系统及方法 | |
CN102446101A (zh) | 固件强制升级的系统及其固件的强制升级方法 | |
CN107844312A (zh) | 一种软件更新监控方法和系统 | |
JP2008198060A (ja) | 情報処理装置、パッチコード実装システム、電子機器及びパッチコードの実装方法 |
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 |