CN113608772B - 一种应用程序升级方法及装置 - Google Patents
一种应用程序升级方法及装置 Download PDFInfo
- Publication number
- CN113608772B CN113608772B CN202110710561.0A CN202110710561A CN113608772B CN 113608772 B CN113608772 B CN 113608772B CN 202110710561 A CN202110710561 A CN 202110710561A CN 113608772 B CN113608772 B CN 113608772B
- Authority
- CN
- China
- Prior art keywords
- upgrade
- application program
- file
- control software
- target application
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000008859 change Effects 0.000 claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims description 61
- 238000004891 communication Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 210000001072 colon Anatomy 0.000 claims description 3
- 238000007711 solidification Methods 0.000 claims 1
- 230000008023 solidification Effects 0.000 claims 1
- 230000007547 defect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序升级方法及装置。方法包括:在升级控制软件读取到目标应用程序对应的编译文件之后,通过升级控制软件向目标应用程序发送的升级指令;在目标应用程序接收到升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;在重启目标应用程序之后,调用升级引导程序判断目标应用程序对应的升级标志是否为允许升级标志;若是,则接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;目标应用程序为DSP28335应用程序。本发明避免了通过串口升级只在上电时刻进行升级,可随时进行升级,提高了升级的灵活性,实现了可重复性,不会因为各种异常导致无法升级,具有很好的实用价值。
Description
技术领域
本发明涉及航天软件升级技术领域,特别是一种应用程序升级方法及装置。
背景技术
DSP28335以其可靠的性能,较高的性价比,在航空航天、工业控制等领域得到广泛应用,然而随着任务或系统的变化,应用软件也要随之进行更改,这就对应用软件的升级提出要求。传统方式的DSP28335软件升级或通过仿真器进行烧录,或通过串口进行数据传输进行软件升级。
CAN总线是一种串行多主的控制器局域网总线,它易于建立、性价比高。CAN总线通讯采用报文广播传送的方式,具有完善的错误检测机制和容错处理能力。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于汽车工业、航空工业、工业控制以及医疗设备等领域,并已被公认为几种最有前途的现场总线之一。
目前的DSP28335软件升级方式存在以下问题:1、传统的通过仿真器进行烧写需要进行设备拆卸;2、通过串口进行升级的方式,仅只有在上电时刻进行发送指令进行升级的弊端,同时针对串口升级速率慢、通信可靠性差的问题进行优化;3、需要掉电进行重启,本发明可不进行重启,即可实现进入升级后的应用程序。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种应用程序升级方法及装置。
本发明的技术解决方案是:
第一方面,本发明实施例提供了一种应用程序升级方法,包括:
在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令;
在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
若是,则接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
其中,所述目标应用程序为DSP28335应用程序。
可选地,在所述通过所述升级控制软件向所述目标应用程序发送的升级指令之前,还包括:
建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
通过所述升级控制软件读取所述编译文件。
可选地,在所述调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志之后,还包括:
若是,则向所述升级控制软件发送升级回复指令;
接收所述升级控制软件返回的数据传输指令;
在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件。
可选地,所述接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级,包括:
在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
将所述第一校验码与所述第二校验码进行比对;
在比对成功之后,基于所述升级文件对所述目标应用程序进行升级。
可选地,在所述将所述第一校验码与所述第二校验码进行比对之后,还包括:
向所述升级控制软件发送数据传输回复指令;
接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令。
可选地,在所述根据所述升级文件对所述目标应用程序进行升级之后,还包括:
接收所述升级控制软件发送的重启指令;
响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
对所述目标应用程序执行重启操作,完成所述目标应用程序的升级。
第二方面,本发明实施例提供了一种应用程序升级装置,包括:
升级指令接收模块,用于在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令;
升级标志调用模块,用于在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
升级标志判断模块,用于在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
目标应用升级模块,用于在所述升级标志为允许升级标志时,接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
其中,所述目标应用程序为DSP28335应用程序。
可选地,所述装置还包括:
通信连接建立模块,用于建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
编译文件生成模块,用于对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
编译文件读取模块,用于通过所述升级控制软件读取所述编译文件。
可选地,所述装置还包括:
回复指令发送模块,用于在所述升级标志为允许升级标志时,向所述升级控制软件发送升级回复指令;
传输指令接收模块,用于接收所述升级控制软件返回的数据传输指令;
升级文件发送模块,用于在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件。
可选地,所述目标应用升级模块包括:
第一校验码接收单元,用于在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
第二校验码获取单元,用于响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
校验码比对单元,用于将所述第一校验码与所述第二校验码进行比对;
目标应用升级单元,用于在比对成功之后,基于所述升级文件对所述目标应用程序进行升级。
可选地,所述装置还包括:
数据传输回复指令发送模块,用于向所述升级控制软件发送数据传输回复指令;
擦写指令返回模块,用于接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令。
可选地,所述装置还包括:
重启指令接收模块,用于接收所述升级控制软件发送的重启指令;
升级标志更改模块,用于响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
重启操作执行模块,用于对所述目标应用程序执行重启操作,完成所述目标应用程序的升级。
本发明与现有技术相比的优点在于:
本发明实施例基于CAN总线的可重复的DSP28335升级方法技术方案,能够弥补传统的仿真器烧写的弊端,同时采用更加可靠的CAN总线,可提供数据传输的可靠性和传输速率,特别的,本发明避免了通过串口升级只在上电时刻进行升级,可随时进行升级,提高了升级的灵活性,并且实现了可重复性,不会因为各种异常导致无法升级的情况,具有很好的实用价值。
附图说明
图1为本发明实施例提供的一种应用程序升级方法的步骤流程图;
图2为本发明实施例提供的一种基于CAN总线的可重复的DSP28335升级方法组成的示意图;
图3为本发明实施例提供的一种基于CAN总线的可重复的DSP28335升级方法的扇区划分的示意图;
图4为本发明实施例提供的一种应用程序升级装置的结构示意图。
具体实施方式
实施例一
参照图1,示出了本发明实施例提供的一种应用程序升级方法的步骤流程图,如图1所示,该应用程序升级方法具体可以包括如下步骤:
步骤101:在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令。
本发明实施例可以应用于对DSP28335应用程序进行升级的场景中。
在本示例中,升级控制软件是指远端的用于对DSP28335应用程序进行升级控制的软件。
在实际应用中,可以将升级组成部分划分为:升级引导程序、应用程序中升级标志固化程序、远端升级流程控制软件,其中,升级引导程序是所需升级的应用程序的引导程序,运行于DSP28335处理器中,用于升级的流程控制和分支选择;升级引导程序用于判断升级标志是否有效,如果有效则跳转至升级流程,如果无效则跳转至应用程序的入口位置,除此之外升级引导程序还可建立基本的软件运行环境。
应用程序中升级标志固化程序是嵌入在所需升级的应用程序中的用于固化升级标志的固定代码,运行于DSP28335处理器中。应用程序中升级标志固化程序,此部分能够将升级标志进行固化,用于升级引导程序的读取,来决定进入何种分支,应用程序可在软件运行过程中随时接收指令,调用升级标志固化程序。
远端升级流程控制软件运行于包含CAN板卡的远端升级流程控制上,是包含界面的升级流程控制软件,远端升级流程控制软件通过建立与DSP28335的CAN总线通信,控制升级流程,读取DSP28335的升级HEX文件。
在具体实现中,可以先对DSP28335 FLASH扇区进行划分,具体地,可以将DSP28335的FLASH扇区划分为升级引导程序区、应用程序区和升级标志区。
升级引导程序区用于固化升级引导程序,升级引导程序区用于烧写升级引导程序,通过仿真器先行固化后,不会进行擦除;
应用程序区用于固化需要升级的应用程序,其中包含升级标志固化程序,应用程序区烧写DSP28335的应用程序,通过仿真器或升级引导程序进行擦除、固化等;
升级标志区用于存放是否升级的标志;具体地,升级标志区用于应用程序中升级标志固化程序进行升级标志的更改,和升级引导程序升级后进行更改
在升级控制软件读取到目标应用程序对应的编译文件之后,可以由升级控制软件向目标应用程序发送升级指令,目标应用程序即为DSP28335应用程序。
在此之前,可以先对DSP28335应用程序进行编译,具体地编译过程可以结合下述具体实现方式进行详细描述。
在本发明的一种具体实现方式中,在上述步骤101之前,还可以包括:
步骤S1:建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接。
在本发明实施例中,远端升级控制软件建立与DSP28335应用程序的CAN总线通信,特别的,将总线波特率设置为1MHz,减小数据的传输时间。
在建立升级控制软件与目标应用程序的控制器域网总线之间的通信连接之后,执行步骤S2。
步骤S2:对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件。
在需要对DSP28335应用程序进行升级时,可以将DSP28335所需升级的应用程序编译后的*.out文件使用hex2000.exe转换为HEX格式文件(即编译文件)。
在对目标应用程序进行编译处理生成目标应用程序对应的编译文件之后,执行步骤S3。
步骤S3:通过所述升级控制软件读取所述编译文件。
在对目标应用程序进行编译处理生成目标应用程序对应的编译文件之后,可以通过远端升级控制软件读取编译文件,即远端升级控制软件读取HEX文件。
在远端升级控制软件读取HEX文件之后,即可以通过远端升级控制软件向DSP28335应用程序发送升级指令。
在接收到升级控制软件向目标应用程序发送的升级指令之后,执行步骤102。
步骤102:在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志。
DSP28335应用程序接收到升级指令后,调用升级标志固化程序,对升级标志区进行升级标志的更改,为了保证升级标志的可靠性,升级标志采用3个地址。
在调用升级标志固化程序更改升级标志区的升级标志之后,执行步骤103。
步骤103:在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志。
DSP28335应用程序使能看门狗,不进行喂狗,使软件进行重启。
软件重启后先进入升级引导程序,升级引导程序判断升级标志3个地址,如果为升级标志,则进入升级流程,如不是,则调转置应用程序入口地址,具体地,DSP28335上电启动后,首先执行升级引导程序,通过判断升级标志区的升级标志,进入升级分支还是应用程序分支。
在调用升级引导程序判断DSP28335应用程序对应的升级标志是否为允许升级标志之后,执行步骤104。
步骤104:若是,则接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级。
在DSP28335应用程序对应的升级标志位允许升级标志时,可以接收升级控制软件发送的升级文件,通过升级文件可以对DSP28335应用程序进行升级。
在实际应用中,升级引导程序进入升级分支后,向远端升级控制软件周期发送升级指令回复;当升级失败后,DSP28335重新上电后能够再次进入升级引导程序,升级指令回复依然会周期进行发送,用于远端升级流程控制软件读取。
远端升级控制软件接收到升级指令回复后,发送开始数据传输指令,告知升级引导程序,即将开始数据传输和升级文件的长度。
升级引导程序接收到开始数据传输指令后,进行开始数据传输指令回复。
远端升级控制软件开始进行升级文件的传输,传输结束后,发送数据传输结束指令,并携带校验码。
升级引导程序接收数据,并存入DSP28335外部扩展RAM的队列中,接收到数据传输结束指令后,进行校验并与校验码进行比较,如成功,则回复数据传输结束指令成功,反之,则回复不成功。
远程升级控制软件接收到成功后,向引导升级程序发送擦写固化指令。
特别地,如接收到不成功回复,则重复执行发送数据传输指令的步骤。
升级引导程序接收到擦写固化指令后,进行应用程序FALSH扇区的擦写,擦写完成后,从队列中取出数据进行应用程序的扇区代码固化,并进行校验,都成功后,回复擦写固化指令成功,如不成功,则进行不成功回复。
远程升级控制软化接收到成功后,则向升级引导程序发送重启指令。
如果接收到不成功回复,重复执行发送数据传输指令的步骤。
升级引导程序接收到重启指令后,进行升级标志区的升级标志置为不升级态,使下次跳转至应用程序,同时使能看门狗,不进行喂狗,使软件进行重启。
如在上述过程中,发生断电或升级失败等情况,不会更改升级标志区的升级标志,则只需重新上电,实现软件的再次升级,同时在数据传输和擦写等错误发生时,实现软件的可重复升级。
本发明实施例提供的应用程序升级方法,基于CAN总线的可重复的DSP28335升级方法技术方案,能够弥补传统的仿真器烧写的弊端,同时采用更加可靠的CAN总线,可提供数据传输的可靠性和传输速率,特别的,本发明避免了通过串口升级只在上电时刻进行升级,可随时进行升级,提高了升级的灵活性,并且实现了可重复性,不会因为各种异常导致无法升级的情况,具有很好的实用价值。
在实际应用中,可以结合图2和图3对上述过程进行如下详细描述。
本实例中的DSP芯片选用TI公司的TMS320F28335处理器芯片,该处理器最高主频150MHz,集成SCI接口、EMIF接口,具有2通道CAN接口,应用程序和升级引导程序采用DSP的eCanA通道。
如图2所示,升级引导程序和应用程序中升级标志固化程序分别固化于DSP28335的不同扇区中,通过仿真器预先进行烧写,升级引导程序和用于程序能够分别对DSP的eCanA通道进行初始化,配置波特率等;远端升级控制软件采用上位机界面的形式开发,通过使用CAN板卡,调用CAN板卡驱动,实现与DSP28335的CAN通信。
优选地,图3展示了DSP28335扇区的划分,本实例将其划分为3个部分,分别为升级引导程序区、应用程序区和升级标志区;DSP28335 FLASH分为SectionA-SectionH共8个扇区,本实例将SectionA作为升级引导程序区,SectionB-SectionG作为应用程序区,SectionH作为升级标志区。
其特征在于,升级引导程序在代码固化后,不进行擦除,应用程序通过升级引导程序进行擦除和烧写,升级标志区采用地址0x300000、0x300001和0x300002作为升级标志,由于DSP的擦写只能以单独扇区为单位进行,所以单独划分扇区,本实例采用0xAAAA作为升级标志,其他为不进行升级的标志,软件上采用三取二机制,只有当其中大于或等于2个为0xAAAA时才进入升级分支,其他情况则跳转至应用程序。
优选的,基于CAN总线的可重复的DSP28335升级方法的升级流程步骤可以包括:
远端升级控制软件建立与DSP28335应用程序的CAN总线通信,将波特率设置为1Mhz,采用扩展帧,这样传输1帧数据(8字节)所需时间在130us;
将DSP28335应用程序编译后的*.out文件使用hex2000.exe转换为HEX格式文件,此HEX文件采用如下格式:HEX文件每一行为一条HEX记录,每行以冒号开头,以十六进制ASCII码形式显示,同时每一行包含了校验、数据长度、烧写地址等信息,如下所示:
:020000040030CA
:0480000000708094F8
:1EC8AF00C174000000000000FFFEC176000000000000FFFEC1780000000100000000CB
:00000001FF。
其中“:”表示起始,“02“1E”表示长度,2、3字节表示偏移地址。
远端升级控制软件读取HEX文件,读取后按照CAN总线格式,每8字节为一帧进行发送,如最后一帧不满足8字节,则按照字节数进行传输,HEX代码数据传输以5ms为周期。
远端升级控制软件只需将HEX文件进行读取,无需按照HEX文件格式进行解析,HEX文件的解析由升级引导程序完成,这样可大大简化远端升级控制软件。
升级指令、升级指令回复等具体步骤如下表1所示:
表1:
指令和升级文件,通过CAN总线采用不同CAN ID进行区分,其中指令CAN ID为0x10000080,升级文件传输采用CAN ID为0x10000081。
存入DSP28335外部扩展RAM的队列中,本实例中升级引导程序在外部扩展RAM中建立了一个128K大小的循环队列,接收到远端升级控制软件的升级文件后,将数据全部存入此队列中,长度、校验等通过后,从队列中进行出队,然后按照HEX的文件格式进行解析,按照代码地址进行烧写。
实施例二
参照图4,示出了本发明实施例提供的一种应用程序升级装置的结构示意图,如图4所示,该应用程序升级装置具体可以包括如下模块:
升级指令接收模块410,用于在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令;
升级标志调用模块420,用于在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
升级标志判断模块430,用于在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
目标应用升级模块440,用于在所述升级标志为允许升级标志时,接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
其中,所述目标应用程序为DSP28335应用程序。
可选地,所述装置还包括:
通信连接建立模块,用于建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
编译文件生成模块,用于对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
编译文件读取模块,用于通过所述升级控制软件读取所述编译文件。
可选地,所述装置还包括:
回复指令发送模块,用于在所述升级标志为允许升级标志时,向所述升级控制软件发送升级回复指令;
传输指令接收模块,用于接收所述升级控制软件返回的数据传输指令;
升级文件发送模块,用于在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件。
可选地,所述目标应用升级模块包括:
第一校验码接收单元,用于在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
第二校验码获取单元,用于响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
校验码比对单元,用于将所述第一校验码与所述第二校验码进行比对;
目标应用升级单元,用于在比对成功之后,基于所述升级文件对所述目标应用程序进行升级。
可选地,所述装置还包括:
数据传输回复指令发送模块,用于向所述升级控制软件发送数据传输回复指令;
擦写指令返回模块,用于接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令。
可选地,所述装置还包括:
重启指令接收模块,用于接收所述升级控制软件发送的重启指令;
升级标志更改模块,用于响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
重启操作执行模块,用于对所述目标应用程序执行重启操作,完成所述目标应用程序的升级。
本发明实施例提供的应用程序升级装置,基于CAN总线的可重复的DSP28335升级方法技术方案,能够弥补传统的仿真器烧写的弊端,同时采用更加可靠的CAN总线,可提供数据传输的可靠性和传输速率,特别的,本发明避免了通过串口升级只在上电时刻进行升级,可随时进行升级,提高了升级的灵活性,并且实现了可重复性,不会因为各种异常导致无法升级的情况,具有很好的实用价值。
本申请所述具体实施方式可以使本领域的技术人员更全面地理解本申请,但不以任何方式限制本申请。因此,本领域技术人员应当理解,仍然对本申请进行修改或者等同替换;而一切不脱离本申请的精神和技术实质的技术方案及其改进,均应涵盖在本申请专利的保护范围中。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (2)
1.一种应用程序升级方法,其特征在于,包括:
在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送升级指令;
在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
若是,则接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
其中,所述目标应用程序为DSP28335应用程序;
在所述通过所述升级控制软件向所述目标应用程序发送的升级指令之前,还包括:
建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
通过所述升级控制软件读取所述编译文件;
在所述调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志之后,还包括:
若是,则向所述升级控制软件发送升级回复指令;
接收所述升级控制软件返回的数据传输指令;
在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件;
所述接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级,包括:
在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
将所述第一校验码与所述第二校验码进行比对;
在比对成功之后,基于所述升级文件对所述目标应用程序进行升级;
在所述将所述第一校验码与所述第二校验码进行比对之后,还包括:
向所述升级控制软件发送数据传输回复指令;
接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令;
在所述根据所述升级文件对所述目标应用程序进行升级之后,还包括:
接收所述升级控制软件发送的重启指令;
响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
对所述目标应用程序执行重启操作,完成所述目标应用程序的升级;
升级引导程序和应用程序中升级标志固化程序分别固化于DSP28335的不同扇区中,通过仿真器预先进行烧写,升级引导程序和应用程序分别对DSP的eCanA通道进行初始化,配置波特率;远端升级控制软件采用上位机界面的形式开发,通过使用CAN板卡,调用CAN板卡驱动,实现与DSP28335的CAN通信;
将DSP28335扇区划分为升级引导程序区、应用程序区和升级标志区;DSP28335 FLASH分为SectionA-SectionH共8个扇区,将SectionA作为升级引导程序区,SectionB-SectionG作为应用程序区,SectionH作为升级标志区;
升级引导程序在代码固化后,不进行擦除,应用程序通过升级引导程序进行擦除和烧写,升级标志区采用地址0x300000、0x300001和0x300002作为升级标志,采用0xAAAA作为升级标志,其他为不进行升级的标志,软件上采用三取二机制,只有当其中大于或等于2个为0xAAAA时才进入升级分支,其他情况则跳转至应用程序;
远端升级控制软件建立与DSP28335应用程序的CAN总线通信,将波特率设置为1Mhz,采用扩展帧,这样传输1帧数据所需时间在130us;
将DSP28335应用程序编译后的*.out文件使用hex2000.exe转换为HEX格式文件,此HEX文件采用如下格式:HEX文件每一行为一条HEX记录,每行以冒号开头,以十六进制ASCII码形式显示,同时每一行包含了校验、数据长度、烧写地址信息,如下所示:
:020000040030CA
:0480000000708094F8
:1EC8AF00C174000000000000FFFEC176000000000000FFFEC1780000000100000000CB
:00000001FF;
其中“:”表示起始,“02“1E”表示长度,2、3字节表示偏移地址;
远端升级控制软件读取HEX文件,读取后按照CAN总线格式,每8字节为一帧进行发送,如最后一帧不满足8字节,则按照字节数进行传输,HEX代码数据传输以5ms为周期;
远端升级控制软件将HEX文件进行读取,无需按照HEX文件格式进行解析,HEX文件的解析由升级引导程序完成;
升级指令、升级指令回复包括:
。
2.一种应用程序升级装置,其特征在于,包括:
升级指令接收模块,用于在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送升级指令;
升级标志调用模块,用于在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
升级标志判断模块,用于在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
目标应用升级模块,用于在所述升级标志为允许升级标志时,接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
其中,所述目标应用程序为DSP28335应用程序;
所述装置还包括:
通信连接建立模块,用于建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
编译文件生成模块,用于对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
编译文件读取模块,用于通过所述升级控制软件读取所述编译文件;
所述装置还包括:
回复指令发送模块,用于在所述升级标志为允许升级标志时,向所述升级控制软件发送升级回复指令;
传输指令接收模块,用于接收所述升级控制软件返回的数据传输指令;
升级文件发送模块,用于在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件;
所述目标应用升级模块包括:
第一校验码接收单元,用于在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
第二校验码获取单元,用于响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
校验码比对单元,用于将所述第一校验码与所述第二校验码进行比对;
目标应用升级单元,用于在比对成功之后,基于所述升级文件对所述目标应用程序进行升级;
所述装置还包括:
数据传输回复指令发送模块,用于向所述升级控制软件发送数据传输回复指令;
擦写指令返回模块,用于接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令;
所述装置还包括:
重启指令接收模块,用于接收所述升级控制软件发送的重启指令;
升级标志更改模块,用于响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
重启操作执行模块,用于对所述目标应用程序执行重启操作,完成所述目标应用程序的升级;
升级引导程序和应用程序中升级标志固化程序分别固化于DSP28335的不同扇区中,通过仿真器预先进行烧写,升级引导程序和应用程序分别对DSP的eCanA通道进行初始化,配置波特率;远端升级控制软件采用上位机界面的形式开发,通过使用CAN板卡,调用CAN板卡驱动,实现与DSP28335的CAN通信;
将DSP28335扇区划分为升级引导程序区、应用程序区和升级标志区;DSP28335 FLASH分为SectionA-SectionH共8个扇区,将SectionA作为升级引导程序区,SectionB-SectionG作为应用程序区,SectionH作为升级标志区;
升级引导程序在代码固化后,不进行擦除,应用程序通过升级引导程序进行擦除和烧写,升级标志区采用地址0x300000、0x300001和0x300002作为升级标志,采用0xAAAA作为升级标志,其他为不进行升级的标志,软件上采用三取二机制,只有当其中大于或等于2个为0xAAAA时才进入升级分支,其他情况则跳转至应用程序;
远端升级控制软件建立与DSP28335应用程序的CAN总线通信,将波特率设置为1Mhz,采用扩展帧,这样传输1帧数据所需时间在130us;
将DSP28335应用程序编译后的*.out文件使用hex2000.exe转换为HEX格式文件,此HEX文件采用如下格式:HEX文件每一行为一条HEX记录,每行以冒号开头,以十六进制ASCII码形式显示,同时每一行包含了校验、数据长度、烧写地址信息,如下所示:
:020000040030CA
:0480000000708094F8
:1EC8AF00C174000000000000FFFEC176000000000000FFFEC1780000000100000000CB
:00000001FF;
其中“:”表示起始,“02“1E”表示长度,2、3字节表示偏移地址;
远端升级控制软件读取HEX文件,读取后按照CAN总线格式,每8字节为一帧进行发送,如最后一帧不满足8字节,则按照字节数进行传输,HEX代码数据传输以5ms为周期;
远端升级控制软件将HEX文件进行读取,无需按照HEX文件格式进行解析,HEX文件的解析由升级引导程序完成;
升级指令、升级指令回复包括:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110710561.0A CN113608772B (zh) | 2021-06-25 | 2021-06-25 | 一种应用程序升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110710561.0A CN113608772B (zh) | 2021-06-25 | 2021-06-25 | 一种应用程序升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113608772A CN113608772A (zh) | 2021-11-05 |
CN113608772B true CN113608772B (zh) | 2024-03-19 |
Family
ID=78336795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110710561.0A Active CN113608772B (zh) | 2021-06-25 | 2021-06-25 | 一种应用程序升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113608772B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328344A (zh) * | 2021-11-26 | 2022-04-12 | 上海航天科工电器研究院有限公司 | 一种基于串口的dsp应用程序在线升级方法 |
CN115242577B (zh) * | 2022-07-27 | 2024-01-16 | 天津津航计算技术研究所 | 一种总线数据转换装置及其守时、授时的控制方法 |
CN114995863B (zh) * | 2022-08-03 | 2022-11-11 | 中国重汽集团济南动力有限公司 | 一种软件重编程系统、基于重编程系统的软件重编程方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN106227572A (zh) * | 2016-08-30 | 2016-12-14 | 深圳市蓝海华腾技术股份有限公司 | 一种变频器控制系统程序升级方法 |
CN110837385A (zh) * | 2019-11-07 | 2020-02-25 | 北京特种机械研究所 | 一种基于CANopen协议的DSP应用程序在线升级方法 |
WO2021115477A1 (zh) * | 2019-12-13 | 2021-06-17 | 中兴通讯股份有限公司 | 程序升级方法、装置、电子设备及存储介质 |
CN114579165A (zh) * | 2022-03-30 | 2022-06-03 | 湖北三江航天红峰控制有限公司 | 一种dsp程序的在线升级方法、系统、设备及介质 |
-
2021
- 2021-06-25 CN CN202110710561.0A patent/CN113608772B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN106227572A (zh) * | 2016-08-30 | 2016-12-14 | 深圳市蓝海华腾技术股份有限公司 | 一种变频器控制系统程序升级方法 |
CN110837385A (zh) * | 2019-11-07 | 2020-02-25 | 北京特种机械研究所 | 一种基于CANopen协议的DSP应用程序在线升级方法 |
WO2021115477A1 (zh) * | 2019-12-13 | 2021-06-17 | 中兴通讯股份有限公司 | 程序升级方法、装置、电子设备及存储介质 |
CN114579165A (zh) * | 2022-03-30 | 2022-06-03 | 湖北三江航天红峰控制有限公司 | 一种dsp程序的在线升级方法、系统、设备及介质 |
Non-Patent Citations (2)
Title |
---|
德州仪器.User's Guide:MSP430FR4xx and MSP430FR2xx Bootloader(BSL).https://www.ti.com.cn/cn/lit/ug/slau610d/slau610d.pdf.2017,全文. * |
远程升级第1弹:BootLoader编写及软件包制作;轻松学长;https://blog.csdn.net/qq_42965739/article/details/115190625;20210324;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113608772A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113608772B (zh) | 一种应用程序升级方法及装置 | |
CN105183515B (zh) | 云台固件升级的方法及装置 | |
CN104899065A (zh) | 一种可批量软件在线恢复与软件在线升级的方法和系统 | |
CN101673202A (zh) | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 | |
CN110187909B (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN108170457A (zh) | 固件升级方法、装置及vr头戴式显示器 | |
CN112910714A (zh) | 具有主从机结构的物联网终端设备的远程固件升级方法 | |
CN114860279B (zh) | 一种快速空片升级方法 | |
CN111638916B (zh) | 一种用于数据取证的通用安卓移动终端驱动系统及方法 | |
CN111309363A (zh) | 基于Contiki操作系统的在线升级方法及装置 | |
CN102426528A (zh) | 一种导航定位接收机内核程序在线更新方法 | |
CN113760334A (zh) | 一种ecu程序刷写方法以及装置 | |
CN110750285B (zh) | 固件升级方法、装置、计算机设备和存储介质 | |
CN116088911A (zh) | 一种分布式io的固件批量升级系统、方法及终端装置 | |
CN103729218A (zh) | 一种id烧写方法 | |
CN108845823B (zh) | 一种基于f2812芯片的软件在线升级方法 | |
CN105045671A (zh) | 一种智能终端的系统升级方法及装置 | |
CN108121553B (zh) | 一种更新应用程序的方法及装置 | |
CN108769241B (zh) | 一种热泵机组远程控制的操作方法、装置及系统 | |
CN110134423B (zh) | 固件的更新方法、装置及计算机可读存储介质 | |
CN113360161A (zh) | 资源升级方法及相关产品 | |
CN110704080A (zh) | 一种通过Wi-Fi模块给蓝牙模块升级的方法 | |
CN112181444B (zh) | 一种基于1553b总线的dsp多核数据烧写方法 | |
CN114020294A (zh) | 一种ecu无线升级的方法、系统及存储介质 | |
CN111638874B (zh) | 基于Matlab软件的汽车控制器编码信息写入和读取方法 |
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 |