CN106569833B - 一种具有二级boot的dsp程序在线升级方法 - Google Patents
一种具有二级boot的dsp程序在线升级方法 Download PDFInfo
- Publication number
- CN106569833B CN106569833B CN201610998885.8A CN201610998885A CN106569833B CN 106569833 B CN106569833 B CN 106569833B CN 201610998885 A CN201610998885 A CN 201610998885A CN 106569833 B CN106569833 B CN 106569833B
- Authority
- CN
- China
- Prior art keywords
- program
- area
- upper computer
- rom
- online upgrading
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种具有二级BOOT的DSP程序在线升级方法,首先将一段二级BOOT程序由ROM区复制至RAM区并从二级BOOT程序的首地址开始执行;然后DSP将在线升级程序从ROM区引导至RAM区并运行;上位机通过通信模块下发程序的数据帧;ROM操作模块将数据帧写入ROM区后,回复确认帧至上位机至数据帧下发完成;ROM区中的功能程序区进行校验将校验结果传输至上位机。本发明提出的在线升级程序与功能程序是相对独立存在的,可以有效节约运行时RAM开销。本发明提出的二级BOOT程序段短小,可以快速启动,并引导功能区或在线升级区程序至RAM并运行,非常适合对实时性要求严格的工业场合。
Description
技术领域
本发明涉及一种DSP程序在线升级方法,具体涉及一种具有二级BOOT的DSP程序在线升级方法。
背景技术
随着IT技术的迅速发展,数字处理器(DSP)等数字芯片的使用日益广泛,由于产品的更新换代,旧产品的程序更新换代问题摆在了各厂家面前。目前主要的升级方式有3中:1、通过FLASH烧写器,直接将程序烧写入芯片的FLASH中,该方法需要专门的烧写器,且要求处理器的FLASH模块可更换,硬件要求较高;2,通过硬件切换电路,提供备用的FLASH插槽,直接更换烧写好程序的FLASH储存器,该方法虽然升级程序简单但要求的硬件电路复杂。3、通过一个专用的BOOTloader芯片,切换DSP的运行状态,使DSP可以进行在线升级,该方法虽然灵活,但是仍然要求DSP有两片存储器,并提供硬件的切换功能。
发明内容
针对上述问题,本发明提供一种升级程序与功能程序相对独立存在的、有效节约运行时RAM开销的具有二级BOOT的DSP程序在线升级方法。
本发明为适用于DSP的具有两级BOOT启动的在线升级方法,两级BOOT具体为:第一级是DSP上电后自动将一段二级BOOT程序由ROM区复制至RAM区并从二级BOOT的首地址开始执行程序,是一个硬件的启动过程;第二级是二级BOOT程序开始执行后由运行状态决定引导在线升级程序或者功能程序至RAM区中并跳转至被引导程序的入口地址开始执行。所述的ROM区包括二级BOOT区、在线升级程序区、运行标志区,功能程序区。
本发明提出的在线升级程序具有以下模块:主程序模块、通信模块、ROM操作模块、辅助模块。各个模块分工如下:
主程序模块:负责对其他模块的调度。
通信模块:负责与协处理器交互,协处理器可以是串口、并口、网络等专用处理器,也可以是HPI接口,或由FPGA制作的私有通讯接口。该模块负责接收上位机下发的命令帧、数据帧,并完成相应帧的正确性校验,将数据交给ROM操作模块并负责在ROM区写入或擦除后向上位机回复应答数据。
ROM操作模块:负责接收通信模块传来的数据帧,并将其写入ROM区中,在正确写入后通知通信模块回复上位机并负责接收通信模块传来的命令帧,按照命令擦除或者校验ROM区中的数据,在正确操作后通知通信模块回复上位机。
辅助模块:完成对DSP的外设初始化,看门狗等功能。
为解决上述问题,本发明采取的技术方案为:一种具有二级BOOT的DSP程序在线升级方法,其特征在于包括如下步骤:
步骤一、DSP上电后启动,自动将一段二级BOOT程序由ROM区复制至RAM区并从二级BOOT程序的首地址开始执行;
步骤二、二级BOOT程序开始执行后判断是否需要在线升级,若需要则转至步骤四;若不需要,则转至步骤三;
步骤三、DSP将功能程序从ROM区引导至RAM区并运行,功能程序收到上位机下发的在线升级命令,DSP置位在线升级标志,重启DSP并转至步骤一;
步骤四、DSP将在线升级程序从ROM区引导至RAM区并运行;
步骤五、上位机下发格式化功能程序区命令,ROM操作模块收到上位机下发的格式化功能程序区命令,执行格式化功能程序区命令并将格式化完成信息返回至上位机;
步骤六、上位机收到格式化完成信息后通过通信模块下发程序的数据帧;
本发明中的上位机负责将DSP的BIN程序文件分帧,以便于数据传输。数据帧包含:目的地址,数据长度,数据,校验码。目的地址代表该程序片位于ROM区中的起始地址,数据长度表示该数据帧中数据的字节数,校验码为数据帧中数据区的和校验码。上位机负责将该数据帧包装在其他底层协议中(例如以太网帧),发送给本申请所述DSP通信模块。
步骤七、若通信模块接收到上位机下发的数据帧并校验通过将数据帧发至ROM操作模块,ROM操作模块将数据帧写入ROM区后,回复确认帧至上位机;否则不回复确认帧;
本发明中通信模块负责接收到上位机下发的数据帧后根据数据长度校验数据帧中的数据正确性,并将校验通过的数据帧交给ROM操作模块,ROM操作模块接收到数据帧后从帧中目的地址开始将数据写入ROM区中,写入长度为数据长度。写入完成后通知通信模块进行回复。
通信模块的回复的确认帧包含目的地址。该目的地址即为写入ROM区中的数据的目的地址,由于每次升级过程中,每个目的地址至多操作一次,因此该确认帧具有唯一性。
步骤八、若上位机收到回复的确认帧,且确认帧与数据帧地址相同,下发下一帧数据帧,转至步骤七;否则,重发上一帧数据,转至步骤七;连续三次重发均未受收到正确的确认帧则升级失败,退出程序;否则,至数据帧下发完成转步骤九;
上位机每次接收到回复的确认帧后,判断是否与上一次发送的数据帧中的目的地址相同,相同则发送下一帧数据帧。未收到数据帧或确认帧与上一次发送的数据帧的目的地址不同,则重发数据帧。连续三次重发后均未收到正确的确认帧则通知用户,升级失败。
步骤九、上位机下发校验帧,ROM操作模块将对ROM区中的功能程序区除RCR校验码外进行校验,若校验失败,将校验结果传输至上位机进行显示;若校验成功,清除在线升级标志并将校验结果传输至上位机进行显示。
上位机下发完成BIN文件后,向DSP下发校验命令,令ROM操作模块将对ROM区中的功能程序区除RCR校验码外进行校验,校验正确则擦除运行标志区中的在线升级标志,否则不擦除。
步骤二中通过运行标志区的标识判断是否需要在线升级。本发明提出的二级BOOT是基于通用DSP的BOOT程序开发的,该二级BOOT区别于通用BOOT之处是增加了对本发明中运行标志区的判断,并由该标志决定引导哪一个程序区至RAM区运行,即该BOOT可以选择性的引导DSP的多系统启动。
本发明提出了一种基于纯软件的在线升级方案,通过灵活的二级boot,分区存储,程序分帧传输校验的方式,实现了节约内存、操作灵活、稳定可靠、无特殊硬件要求的在线升级方案。
本发明提出的在线升级程序与功能程序是相对独立存在的,二者只有一个会在RAM中运行,可以有效节约运行时RAM开销。本发明提出的二级BOOT程序段短小,可以快速启动,并引导功能区或在线升级区程序至RAM并运行,非常适合对实时性要求严格的工业场合。
附图说明
图1为存储器的分区状态图;
图2为本发明流程图。
具体实施方式
本发明为适用于DSP的具有两级BOOT启动的在线升级方法,如图1所示,两级BOOT具体为:第一级是DSP上电后自动将一段二级BOOT程序由ROM区复制至RAM区并从二级BOOT的首地址开始执行程序,是一个硬件的启动过程;第二级是二级BOOT程序开始执行后由运行状态决定引导在线升级程序或者功能程序至RAM区中并跳转至被引导程序的入口地址开始执行。所述的ROM区包括二级BOOT区、在线升级程序区、运行标志区,功能程序区。
一种具有二级BOOT的DSP程序在线升级方法,如图2所示,包括如下步骤:
一种具有二级BOOT的DSP程序在线升级方法,其特征在于包括如下步骤:步骤一、DSP上电后启动,自动将一段二级BOOT程序由ROM区复制至RAM区并从二级BOOT程序的首地址开始执行;
步骤二、二级BOOT程序开始执行后通过运行标志区的标识判断是否需要在线升级,若需要则转至步骤四;若不需要,则转至步骤三;
步骤三、DSP将功能程序从ROM区引导至RAM区并运行,功能程序收到上位机下发的在线升级命令,DSP置位在线升级标志,重启DSP并转至步骤一;
步骤四、DSP将在线升级程序从ROM区引导至RAM区并运行;
步骤五、上位机下发格式化功能程序区命令,ROM操作模块收到上位机下发的格式化功能程序区命令,执行格式化功能程序区命令并将格式化完成信息返回至上位机;
步骤六、上位机收到格式化完成信息后通过通信模块下发程序的数据帧;
步骤七、若通信模块接收到上位机下发的数据帧并校验通过将数据帧发至ROM操作模块,ROM操作模块将数据帧写入ROM区后,回复确认帧至上位机;否则不回复确认帧;
步骤八、若上位机收到回复的确认帧,且确认帧与数据帧地址相同,下发下一帧数据帧,转至步骤七;否则,重发上一帧数据,转至步骤七;连续三次重发均未受收到正确的确认帧则升级失败,退出程序;否则,至数据帧下发完成转步骤九;
步骤九、上位机下发校验帧,ROM操作模块将对ROM区中的功能程序区除RCR校验码外进行校验,若校验失败,将校验结果传输至上位机进行显示;若校验成功,清除在线升级标志并将校验结果传输至上位机进行显示。
Claims (3)
1.一种具有二级BOOT的DSP程序在线升级方法,其特征在于包括如下步骤:步骤一、DSP上电后启动,自动将一段二级BOOT程序由ROM区复制至RAM区并从二级BOOT程序的首地址开始执行;
步骤二、二级BOOT程序开始执行后判断是否需要在线升级,若需要则转至步骤四;若不需要,则转至步骤三;
步骤三、DSP将功能程序从ROM区引导至RAM区并运行,功能程序收到上位机下发的在线升级命令,DSP置位在线升级标志,重启DSP并转至步骤一;
步骤四、DSP将在线升级程序从ROM区引导至RAM区并运行;
步骤五、上位机下发格式化功能程序区命令,ROM操作模块收到上位机下发的格式化功能程序区命令,执行格式化功能程序区命令并将格式化完成信息返回至上位机;
步骤六、上位机收到格式化完成信息后通过通信模块下发程序的数据帧;
步骤七、若通信模块接收到上位机下发的数据帧并校验通过将数据帧发至ROM操作模块,ROM操作模块将数据帧写入ROM区后,回复确认帧至上位机;否则不回复确认帧;
步骤八、若上位机收到回复的确认帧,且确认帧与数据帧地址相同,下发下一帧数据帧,转至步骤七;否则,重发上一帧数据,转至步骤七;连续三次重发均未受收到正确的确认帧则升级失败,退出程序;否则,至数据帧下发完成转步骤九;
步骤九、上位机下发校验帧,ROM操作模块将对ROM区中的功能程序区除RCR校验码外进行校验,若校验失败,将校验结果传输至上位机进行显示;若校验成功,清除在线升级标志并将校验结果传输至上位机进行显示。
2.根据权利要求1所述的具有二级BOOT的DSP程序在线升级方法,其特征在于:所述的ROM区包括二级BOOT区、在线升级程序区、运行标志区,功能程序区。
3.根据权利要求2所述的具有二级BOOT的DSP程序在线升级方法,其特征在于:步骤二中通过运行标志区的标识判断是否需要在线升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610998885.8A CN106569833B (zh) | 2016-11-14 | 2016-11-14 | 一种具有二级boot的dsp程序在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610998885.8A CN106569833B (zh) | 2016-11-14 | 2016-11-14 | 一种具有二级boot的dsp程序在线升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569833A CN106569833A (zh) | 2017-04-19 |
CN106569833B true CN106569833B (zh) | 2020-04-10 |
Family
ID=58541996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610998885.8A Active CN106569833B (zh) | 2016-11-14 | 2016-11-14 | 一种具有二级boot的dsp程序在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569833B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255511B (zh) * | 2017-12-20 | 2021-11-16 | 北京华航无线电测量研究所 | 一种光电吊舱系统Zynq芯片分级打包快速升级方法 |
CN108804228A (zh) * | 2018-05-30 | 2018-11-13 | 绵阳市维博电子有限责任公司 | 一种dsp程序空间扩展的实现方法 |
CN109710291B (zh) * | 2018-12-27 | 2021-02-12 | 中国科学院长春光学精密机械与物理研究所 | 一种航空光电载荷软件配置项远程升级方法 |
CN109800007A (zh) * | 2018-12-28 | 2019-05-24 | 航天信息股份有限公司 | Dsp芯片在线升级方法以及装置 |
CN110333900A (zh) * | 2019-06-29 | 2019-10-15 | 沃太能源南通有限公司 | 一种升级单片机存储器内boot的方法 |
CN112099877B (zh) * | 2020-10-27 | 2022-10-18 | 上海无线电设备研究所 | 一种远程烧写加载fpga和dsp的方法 |
CN112527366B (zh) * | 2020-11-25 | 2024-03-19 | 江苏华创微系统有限公司 | 嵌入式处理器引导程序的更新回卷容错设计技术 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622253A (zh) * | 2012-03-09 | 2012-08-01 | 瑞斯康达科技发展股份有限公司 | 一种单片机及其在线升级的方法 |
CN103197943A (zh) * | 2013-04-11 | 2013-07-10 | 航天科工深圳(集团)有限公司 | 一种单片机在线升级方法和系统 |
CN103777976A (zh) * | 2012-10-25 | 2014-05-07 | 海尔集团公司 | 单片机及其在线升级方法和在线升级装置 |
CN103809995A (zh) * | 2012-11-15 | 2014-05-21 | 海尔集团公司 | 单片机及其在线升级方法和在线升级装置 |
CN105573794A (zh) * | 2015-12-18 | 2016-05-11 | 中国电子科技集团公司第三研究所 | 一种嵌入式系统软件远程更新方法及系统 |
-
2016
- 2016-11-14 CN CN201610998885.8A patent/CN106569833B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622253A (zh) * | 2012-03-09 | 2012-08-01 | 瑞斯康达科技发展股份有限公司 | 一种单片机及其在线升级的方法 |
CN103777976A (zh) * | 2012-10-25 | 2014-05-07 | 海尔集团公司 | 单片机及其在线升级方法和在线升级装置 |
CN103809995A (zh) * | 2012-11-15 | 2014-05-21 | 海尔集团公司 | 单片机及其在线升级方法和在线升级装置 |
CN103197943A (zh) * | 2013-04-11 | 2013-07-10 | 航天科工深圳(集团)有限公司 | 一种单片机在线升级方法和系统 |
CN105573794A (zh) * | 2015-12-18 | 2016-05-11 | 中国电子科技集团公司第三研究所 | 一种嵌入式系统软件远程更新方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106569833A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569833B (zh) | 一种具有二级boot的dsp程序在线升级方法 | |
CN104579719B (zh) | 一种固件的升级方法和系统、上位机和光模块 | |
CN104102518B (zh) | 一种双cpu系统及其程序升级方法 | |
CN106598632B (zh) | 一种光模块的固件升级方法及装置 | |
CN109358887B (zh) | 一种单片机程序的在线升级方法、装置及系统 | |
CN102945173A (zh) | 用户程序在线升级系统和升级方法 | |
US11726770B2 (en) | Method, device, and apparatus for updating application program, and storage medium | |
CN100570558C (zh) | 一种芯片固件升级方法 | |
CN114281394A (zh) | 一种快速在线升级程序的方法、系统、设备及介质 | |
CN114860279B (zh) | 一种快速空片升级方法 | |
WO2015154538A1 (zh) | 存储器的启动方法及装置 | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
CN111142911A (zh) | 具有异常恢复功能的嵌入式系统及其升级方法 | |
US9473273B2 (en) | Memory system capable of increasing data transfer efficiency | |
MX2012010827A (es) | Unidad de control electronico de un vehiculo y metodo de escritura de datos. | |
CN113760332A (zh) | 软件升级方法和电子设备 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
US7890666B2 (en) | Embedded protocol selection technique, related interface and computer program product | |
CN111414182B (zh) | 一种基于spi的fpga远程升级方法 | |
CN110515664A (zh) | 系统的启动方法及装置 | |
CN111142919B (zh) | 一种适用于多组mcu单元程序同时升级的方法 | |
JP2023084083A (ja) | シリアル・ペリフェラル・インターフェース集積回路およびその動作方法 | |
CN114115957A (zh) | 一种带备份的fpga在线更新方法及其系统 | |
CN107480007B (zh) | 一种程序冗余校验与纠错的方法 | |
EP2730993B1 (en) | Reset method and network device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |