一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用程序升级方法及装置与流程

2021-11-05 21:44:00 来源:中国专利 TAG:


1.本发明涉及航天软件升级技术领域,特别是一种应用程序升级方法及装置。


背景技术:

2.dsp28335以其可靠的性能,较高的性价比,在航空航天、工业控制等领域得到广泛应用,然而随着任务或系统的变化,应用软件也要随之进行更改,这就对应用软件的升级提出要求。传统方式的dsp28335软件升级或通过仿真器进行烧录,或通过串口进行数据传输进行软件升级。
3.can总线是一种串行多主的控制器局域网总线,它易于建立、性价比高。can总线通讯采用报文广播传送的方式,具有完善的错误检测机制和容错处理能力。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于汽车工业、航空工业、工业控制以及医疗设备等领域,并已被公认为几种最有前途的现场总线之一。
4.目前的dsp28335软件升级方式存在以下问题:1、传统的通过仿真器进行烧写需要进行设备拆卸;2、通过串口进行升级的方式,仅只有在上电时刻进行发送指令进行升级的弊端,同时针对串口升级速率慢、通信可靠性差的问题进行优化;3、需要掉电进行重启,本发明可不进行重启,即可实现进入升级后的应用程序。


技术实现要素:

5.本发明解决的技术问题是:克服现有技术的不足,提供了一种应用程序升级方法及装置。
6.本发明的技术解决方案是:
7.第一方面,本发明实施例提供了一种应用程序升级方法,包括:
8.在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令;
9.在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
10.在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
11.若是,则接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
12.其中,所述目标应用程序为dsp28335应用程序。
13.可选地,在所述通过所述升级控制软件向所述目标应用程序发送的升级指令之前,还包括:
14.建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
15.对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
16.通过所述升级控制软件读取所述编译文件。
17.可选地,在所述调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志之后,还包括:
18.若是,则向所述升级控制软件发送升级回复指令;
19.接收所述升级控制软件返回的数据传输指令;
20.在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件。
21.可选地,所述接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级,包括:
22.在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
23.响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
24.将所述第一校验码与所述第二校验码进行比对;
25.在比对成功之后,基于所述升级文件对所述目标应用程序进行升级。
26.可选地,在所述将所述第一校验码与所述第二校验码进行比对之后,还包括:
27.向所述升级控制软件发送数据传输回复指令;
28.接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令。
29.可选地,在所述根据所述升级文件对所述目标应用程序进行升级之后,还包括:
30.接收所述升级控制软件发送的重启指令;
31.响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
32.对所述目标应用程序执行重启操作,完成所述目标应用程序的升级。
33.第二方面,本发明实施例提供了一种应用程序升级装置,包括:
34.升级指令接收模块,用于在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令;
35.升级标志调用模块,用于在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志;
36.升级标志判断模块,用于在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
37.目标应用升级模块,用于在所述升级标志为允许升级标志时,接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
38.其中,所述目标应用程序为dsp28335应用程序。
39.可选地,所述装置还包括:
40.通信连接建立模块,用于建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
41.编译文件生成模块,用于对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
42.编译文件读取模块,用于通过所述升级控制软件读取所述编译文件。
43.可选地,所述装置还包括:
44.回复指令发送模块,用于在所述升级标志为允许升级标志时,向所述升级控制软件发送升级回复指令;
45.传输指令接收模块,用于接收所述升级控制软件返回的数据传输指令;
46.升级文件发送模块,用于在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件。
47.可选地,所述目标应用升级模块包括:
48.第一校验码接收单元,用于在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
49.第二校验码获取单元,用于响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
50.校验码比对单元,用于将所述第一校验码与所述第二校验码进行比对;
51.目标应用升级单元,用于在比对成功之后,基于所述升级文件对所述目标应用程序进行升级。
52.可选地,所述装置还包括:
53.数据传输回复指令发送模块,用于向所述升级控制软件发送数据传输回复指令;
54.擦写指令返回模块,用于接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令。
55.可选地,所述装置还包括:
56.重启指令接收模块,用于接收所述升级控制软件发送的重启指令;
57.升级标志更改模块,用于响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
58.重启操作执行模块,用于对所述目标应用程序执行重启操作,完成所述目标应用程序的升级。
59.本发明与现有技术相比的优点在于:
60.本发明实施例基于can总线的可重复的dsp28335升级方法技术方案,能够弥补传统的仿真器烧写的弊端,同时采用更加可靠的can总线,可提供数据传输的可靠性和传输速率,特别的,本发明避免了通过串口升级只在上电时刻进行升级,可随时进行升级,提高了升级的灵活性,并且实现了可重复性,不会因为各种异常导致无法升级的情况,具有很好的实用价值。
附图说明
61.图1为本发明实施例提供的一种应用程序升级方法的步骤流程图;
62.图2为本发明实施例提供的一种基于can总线的可重复的dsp28335升级方法组成的示意图;
63.图3为本发明实施例提供的一种基于can总线的可重复的dsp28335升级方法的扇区划分的示意图;
64.图4为本发明实施例提供的一种应用程序升级装置的结构示意图。
具体实施方式
65.实施例一
66.参照图1,示出了本发明实施例提供的一种应用程序升级方法的步骤流程图,如图1所示,该应用程序升级方法具体可以包括如下步骤:
67.步骤101:在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令。
68.本发明实施例可以应用于对dsp28335应用程序进行升级的场景中。
69.在本示例中,升级控制软件是指远端的用于对dsp28335应用程序进行升级控制的软件。
70.在实际应用中,可以将升级组成部分划分为:升级引导程序、应用程序中升级标志固化程序、远端升级流程控制软件,其中,升级引导程序是所需升级的应用程序的引导程序,运行于dsp28335处理器中,用于升级的流程控制和分支选择;升级引导程序用于判断升级标志是否有效,如果有效则跳转至升级流程,如果无效则跳转至应用程序的入口位置,除此之外升级引导程序还可建立基本的软件运行环境。
71.应用程序中升级标志固化程序是嵌入在所需升级的应用程序中的用于固化升级标志的固定代码,运行于dsp28335处理器中。应用程序中升级标志固化程序,此部分能够将升级标志进行固化,用于升级引导程序的读取,来决定进入何种分支,应用程序可在软件运行过程中随时接收指令,调用升级标志固化程序。
72.远端升级流程控制软件运行于包含can板卡的远端升级流程控制上,是包含界面的升级流程控制软件,远端升级流程控制软件通过建立与dsp28335的can总线通信,控制升级流程,读取dsp28335的升级hex文件。
73.在具体实现中,可以先对dsp28335 flash扇区进行划分,具体地,可以将dsp28335的flash扇区划分为升级引导程序区、应用程序区和升级标志区。
74.升级引导程序区用于固化升级引导程序,升级引导程序区用于烧写升级引导程序,通过仿真器先行固化后,不会进行擦除;
75.应用程序区用于固化需要升级的应用程序,其中包含升级标志固化程序,应用程序区烧写dsp28335的应用程序,通过仿真器或升级引导程序进行擦除、固化等;
76.升级标志区用于存放是否升级的标志;具体地,升级标志区用于应用程序中升级标志固化程序进行升级标志的更改,和升级引导程序升级后进行更改
77.在升级控制软件读取到目标应用程序对应的编译文件之后,可以由升级控制软件向目标应用程序发送升级指令,目标应用程序即为dsp28335应用程序。
78.在此之前,可以先对dsp28335应用程序进行编译,具体地编译过程可以结合下述具体实现方式进行详细描述。
79.在本发明的一种具体实现方式中,在上述步骤101之前,还可以包括:
80.步骤s1:建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接。
81.在本发明实施例中,远端升级控制软件建立与dsp28335应用程序的can总线通信,特别的,将总线波特率设置为1mhz,减小数据的传输时间。
82.在建立升级控制软件与目标应用程序的控制器域网总线之间的通信连接之后,执
行步骤s2。
83.步骤s2:对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件。
84.在需要对dsp28335应用程序进行升级时,可以将dsp28335所需升级的应用程序编译后的*.out文件使用hex2000.exe转换为hex格式文件(即编译文件)。
85.在对目标应用程序进行编译处理生成目标应用程序对应的编译文件之后,执行步骤s3。
86.步骤s3:通过所述升级控制软件读取所述编译文件。
87.在对目标应用程序进行编译处理生成目标应用程序对应的编译文件之后,可以通过远端升级控制软件读取编译文件,即远端升级控制软件读取hex文件。
88.在远端升级控制软件读取hex文件之后,即可以通过远端升级控制软件向dsp28335应用程序发送升级指令。
89.在接收到升级控制软件向目标应用程序发送的升级指令之后,执行步骤102。
90.步骤102:在所述目标应用程序接收到所述升级指令之后,调用升级标志固化程序更改升级标志区的升级标志。
91.dsp28335应用程序接收到升级指令后,调用升级标志固化程序,对升级标志区进行升级标志的更改,为了保证升级标志的可靠性,升级标志采用3个地址。
92.在调用升级标志固化程序更改升级标志区的升级标志之后,执行步骤103。
93.步骤103:在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志。
94.dsp28335应用程序使能看门狗,不进行喂狗,使软件进行重启。
95.软件重启后先进入升级引导程序,升级引导程序判断升级标志3个地址,如果为升级标志,则进入升级流程,如不是,则调转置应用程序入口地址,具体地,dsp28335上电启动后,首先执行升级引导程序,通过判断升级标志区的升级标志,进入升级分支还是应用程序分支。
96.在调用升级引导程序判断dsp28335应用程序对应的升级标志是否为允许升级标志之后,执行步骤104。
97.步骤104:若是,则接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级。
98.在dsp28335应用程序对应的升级标志位允许升级标志时,可以接收升级控制软件发送的升级文件,通过升级文件可以对dsp28335应用程序进行升级。
99.在实际应用中,升级引导程序进入升级分支后,向远端升级控制软件周期发送升级指令回复;当升级失败后,dsp28335重新上电后能够再次进入升级引导程序,升级指令回复依然会周期进行发送,用于远端升级流程控制软件读取。
100.远端升级控制软件接收到升级指令回复后,发送开始数据传输指令,告知升级引导程序,即将开始数据传输和升级文件的长度。
101.升级引导程序接收到开始数据传输指令后,进行开始数据传输指令回复。
102.远端升级控制软件开始进行升级文件的传输,传输结束后,发送数据传输结束指令,并携带校验码。
103.升级引导程序接收数据,并存入dsp28335外部扩展ram的队列中,接收到数据传输结束指令后,进行校验并与校验码进行比较,如成功,则回复数据传输结束指令成功,反之,则回复不成功。
104.远程升级控制软件接收到成功后,向引导升级程序发送擦写固化指令。
105.特别地,如接收到不成功回复,则重复执行发送数据传输指令的步骤。
106.升级引导程序接收到擦写固化指令后,进行应用程序falsh扇区的擦写,擦写完成后,从队列中取出数据进行应用程序的扇区代码固化,并进行校验,都成功后,回复擦写固化指令成功,如不成功,则进行不成功回复。
107.远程升级控制软化接收到成功后,则向升级引导程序发送重启指令。
108.如果接收到不成功回复,重复执行发送数据传输指令的步骤。
109.升级引导程序接收到重启指令后,进行升级标志区的升级标志置为不升级态,使下次跳转至应用程序,同时使能看门狗,不进行喂狗,使软件进行重启。
110.如在上述过程中,发生断电或升级失败等情况,不会更改升级标志区的升级标志,则只需重新上电,实现软件的再次升级,同时在数据传输和擦写等错误发生时,实现软件的可重复升级。
111.本发明实施例提供的应用程序升级方法,基于can总线的可重复的dsp28335升级方法技术方案,能够弥补传统的仿真器烧写的弊端,同时采用更加可靠的can总线,可提供数据传输的可靠性和传输速率,特别的,本发明避免了通过串口升级只在上电时刻进行升级,可随时进行升级,提高了升级的灵活性,并且实现了可重复性,不会因为各种异常导致无法升级的情况,具有很好的实用价值。
112.在实际应用中,可以结合图2和图3对上述过程进行如下详细描述。
113.本实例中的dsp芯片选用ti公司的tms320f28335处理器芯片,该处理器最高主频150mhz,集成sci接口、emif接口,具有2通道can接口,应用程序和升级引导程序采用dsp的ecana通道。
114.如图2所示,升级引导程序和应用程序中升级标志固化程序分别固化于dsp28335的不同扇区中,通过仿真器预先进行烧写,升级引导程序和用于程序能够分别对dsp的ecana通道进行初始化,配置波特率等;远端升级控制软件采用上位机界面的形式开发,通过使用can板卡,调用can板卡驱动,实现与dsp28335的can通信。
115.优选地,图3展示了dsp28335扇区的划分,本实例将其划分为3个部分,分别为升级引导程序区、应用程序区和升级标志区;dsp28335 flash分为sectiona

sectionh共8个扇区,本实例将sectiona作为升级引导程序区,sectionb

sectiong作为应用程序区,sectionh作为升级标志区。
116.其特征在于,升级引导程序在代码固化后,不进行擦除,应用程序通过升级引导程序进行擦除和烧写,升级标志区采用地址0x300000、0x300001和0x300002作为升级标志,由于dsp的擦写只能以单独扇区为单位进行,所以单独划分扇区,本实例采用0xaaaa作为升级标志,其他为不进行升级的标志,软件上采用三取二机制,只有当其中大于或等于2个为0xaaaa时才进入升级分支,其他情况则跳转至应用程序。
117.优选的,基于can总线的可重复的dsp28335升级方法的升级流程步骤可以包括:
118.远端升级控制软件建立与dsp28335应用程序的can总线通信,将波特率设置为
1mhz,采用扩展帧,这样传输1帧数据(8字节)所需时间在130us;
119.将dsp28335应用程序编译后的*.out文件使用hex2000.exe转换为hex格式文件,此hex文件采用如下格式:hex文件每一行为一条hex记录,每行以冒号开头,以十六进制ascii码形式显示,同时每一行包含了校验、数据长度、烧写地址等信息,如下所示:
120.:020000040030ca
121.:0480000000708094f8
122.:1ec8af00c174000000000000fffec176000000000000fffec1780000000100000000cb
123.:00000001ff。
124.其中“:”表示起始,“02“1e”表示长度,2、3字节表示偏移地址。
125.远端升级控制软件读取hex文件,读取后按照can总线格式,每8字节为一帧进行发送,如最后一帧不满足8字节,则按照字节数进行传输,hex代码数据传输以5ms为周期。
126.远端升级控制软件只需将hex文件进行读取,无需按照hex文件格式进行解析,hex文件的解析由升级引导程序完成,这样可大大简化远端升级控制软件。
127.升级指令、升级指令回复等具体步骤如下表1所示:
128.表1:
[0129][0130]
指令和升级文件,通过can总线采用不同can id进行区分,其中指令can id为0x10000080,升级文件传输采用can id为0x10000081。
[0131]
存入dsp28335外部扩展ram的队列中,本实例中升级引导程序在外部扩展ram中建立了一个128k大小的循环队列,接收到远端升级控制软件的升级文件后,将数据全部存入此队列中,长度、校验等通过后,从队列中进行出队,然后按照hex的文件格式进行解析,按照代码地址进行烧写。
[0132]
实施例二
[0133]
参照图4,示出了本发明实施例提供的一种应用程序升级装置的结构示意图,如图4所示,该应用程序升级装置具体可以包括如下模块:
[0134]
升级指令接收模块410,用于在升级控制软件读取到目标应用程序对应的编译文件之后,通过所述升级控制软件向所述目标应用程序发送的升级指令;
[0135]
升级标志调用模块420,用于在所述目标应用程序接收到所述升级指令之后,调用
升级标志固化程序更改升级标志区的升级标志;
[0136]
升级标志判断模块430,用于在重启所述目标应用程序之后,调用升级引导程序判断所述目标应用程序对应的升级标志是否为允许升级标志;
[0137]
目标应用升级模块440,用于在所述升级标志为允许升级标志时,接收所述升级控制软件发送的升级文件,并根据所述升级文件对所述目标应用程序进行升级;
[0138]
其中,所述目标应用程序为dsp28335应用程序。
[0139]
可选地,所述装置还包括:
[0140]
通信连接建立模块,用于建立所述升级控制软件与所述目标应用程序的控制器域网总线之间的通信连接;
[0141]
编译文件生成模块,用于对所述目标应用程序进行编译处理,生成所述目标应用程序对应的所述编译文件;
[0142]
编译文件读取模块,用于通过所述升级控制软件读取所述编译文件。
[0143]
可选地,所述装置还包括:
[0144]
回复指令发送模块,用于在所述升级标志为允许升级标志时,向所述升级控制软件发送升级回复指令;
[0145]
传输指令接收模块,用于接收所述升级控制软件返回的数据传输指令;
[0146]
升级文件发送模块,用于在所述升级控制软件接收到数据传输回复指令之后,通过所述升级控制软件向所述目标应用程序发送升级文件。
[0147]
可选地,所述目标应用升级模块包括:
[0148]
第一校验码接收单元,用于在所述升级文件发送完成之后,接收所述升级控制软件发送的传输结束指令和所述升级文件对应的第一校验码;
[0149]
第二校验码获取单元,用于响应于所述传输结束指令,对所述升级文件进行解析,获取所述升级文件中包含的第二校验码;
[0150]
校验码比对单元,用于将所述第一校验码与所述第二校验码进行比对;
[0151]
目标应用升级单元,用于在比对成功之后,基于所述升级文件对所述目标应用程序进行升级。
[0152]
可选地,所述装置还包括:
[0153]
数据传输回复指令发送模块,用于向所述升级控制软件发送数据传输回复指令;
[0154]
擦写指令返回模块,用于接收所述升级控制软件基于所述数据传输回复指令返回的擦写固化指令。
[0155]
可选地,所述装置还包括:
[0156]
重启指令接收模块,用于接收所述升级控制软件发送的重启指令;
[0157]
升级标志更改模块,用于响应于所述重启指令,调用升级引导程序将所述升级标志区的升级标志更改为不允许升级标志;
[0158]
重启操作执行模块,用于对所述目标应用程序执行重启操作,完成所述目标应用程序的升级。
[0159]
本发明实施例提供的应用程序升级装置,基于can总线的可重复的dsp28335升级方法技术方案,能够弥补传统的仿真器烧写的弊端,同时采用更加可靠的can总线,可提供数据传输的可靠性和传输速率,特别的,本发明避免了通过串口升级只在上电时刻进行升
级,可随时进行升级,提高了升级的灵活性,并且实现了可重复性,不会因为各种异常导致无法升级的情况,具有很好的实用价值。
[0160]
本技术所述具体实施方式可以使本领域的技术人员更全面地理解本技术,但不以任何方式限制本技术。因此,本领域技术人员应当理解,仍然对本技术进行修改或者等同替换;而一切不脱离本技术的精神和技术实质的技术方案及其改进,均应涵盖在本技术专利的保护范围中。
[0161]
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献