一种异构双核双缓存嵌入式系统的在线升级方法与流程

文档序号:32434645发布日期:2022-12-06 17:28阅读:50来源:国知局
一种异构双核双缓存嵌入式系统的在线升级方法与流程

1.本发明涉及计算机领域,具体涉及一种异构双核双缓存嵌入式系统的在线升级方法。


背景技术:

2.随着电子技术和信息化产业的不断发展,当前基于异构双核的各种产品已经应用于各种场景。当用户的需求有所变化或产品在生命周期内需要进行功能迭代时,需要对产品的应用程序进行升级。
3.目前,异构双核嵌入式系统进行升级的方法普遍为:嵌入式系统复位后,在一定时间内(以倒计时方式)由第一处理器对第二处理器的待升级的应用程序文件进行接收、校验,并将其烧写至flash以对原有的应用程序进行替换。这种方法操作简单、容易实现,但由于在嵌入式系统运行过程中只能在第一处理器复位时才能对第二处理器的应用程序进行升级,并且对接收在线升级指令的时间有严格限制,若用户错过了该时间就只能对系统重新上电进行操作,造成时间和资源的浪费,更甚者对于用户需要在系统整个运行周期内都需要随时随地进行程序升级的特殊要求根本无法满足。


技术实现要素:

4.有鉴于此,本发明提供了一种异构双核双缓存嵌入式系统的在线升级方法,能够解决现有的无法在异构双核嵌入式系统整个运行周期内在线升级的技术问题。
5.为了解决上述技术问题,本发明是这样实现的。
6.一种异构双核双缓存嵌入式系统,所述异构双核双缓存嵌入式系统为嵌入式设备,包括:
7.第一处理器、第二处理器、flash、ram以及rs232串口,所述第一处理器与所述第二处理器设备共享所述异构双核双缓存嵌入式系统的其他硬件。所述异构双核双缓存嵌入式系统上电后,所述第一处理器处于启动状态,并将存放在flash中的所述第二处理器的应用程序加载至ram中运行,所述第一处理器能够复位所述第二处理器,所述flash分为以下几个区块:第一处理器boot区、存放posflag区、中间区、应用程序a区以及应用程序b区。所述第一处理器boot区用于存放所述第一处理器的启动程序;存放posflag区用于存放posflag值,posflag为位置标识,posflag指示第二处理器的应用程序所在的flash区块位置;应用程序a区及应用程序b区均为flash区块,应用程序a区和应用程序b区能够存放所述第二处理器的应用程序;中间区是预留的flash区块;所述rs232串口用于连接服务器。
8.一种异构双核双缓存嵌入式系统的在线升级方法,使用如前所述异构双核双缓存嵌入式系统,所述在线升级方法包括如下步骤:
9.步骤s1:对所述异构双核双缓存嵌入式系统上电,所述第一处理器处于启动状态;
10.步骤s2:从服务器获取升级文件;根据需求对所述第一处理器进行在线升级或对所述第二处理器进行在线升级。
11.优选地,所述步骤s2:对所述第一处理器进行在线升级,包括:
12.步骤s211:将所述异构双核双缓存嵌入式系统复位,若在第一预设时间段内所述第一处理器接收到在线升级指令,则进入步骤s212;否则,进入步骤s214;
13.步骤s212:基于所述升级程序,确定所述异构双核双缓存嵌入式系统中与所述升级文件对应的应用程序;所述第一处理器确定所述异构双核双缓存嵌入式系统中所述应用程序的程序头、程序尾和第一校验和;获取所述升级程序的程序头、程序尾并计算第二校验和;若程序头、程序尾正确,并且第一校验和与第二校验和一致,进入步骤s213;否则,退出此次升级,方法结束;所述第一校验和基于所述异构双核双缓存嵌入式系统中所述应用程序生成,所述第二校验和基于所述升级程序生成;
14.步骤s213:确定所述异构双核双缓存嵌入式系统中所述应用程序在所述第二处理器的存储位置,即启动位置:若当前为应用程序a区位置,将所述升级文件烧写至应用程序b区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序b区位置;若当前为应用程序b区位置,将所述升级文件烧写至应用程序a区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序a区位置;
15.步骤s214:将posflag值更新为所述第二处理器的应用程序的启动位置,所述第一处理器从flash中获取位置标识posflag;
16.步骤s215:基于所述位置标识posflag,将所述位置标识posflag对应的flash区块的内容搬移至ram中,并运行搬移的内容。此时,所述第一处理器升级结束。
17.优选地,对所述第二处理器进行在线升级,包括:
18.步骤s221:基于所述升级程序,确定与所述异构双核双缓存嵌入式系统中与所述升级程序对应的应用程序;所述第二处理器确定所述异构双核双缓存嵌入式系统中所述应用程序的程序头、程序尾和第三校验和;获取所述升级程序的程序头、程序尾并计算第四校验和;若程序头、程序尾正确,并且第三校验和与第四校验和一致,进入步骤s222;否则,退出此次升级,方法结束;
19.步骤s222:所述第二处理器从flash中获取位置标识posflag,确定所述异构双核双缓存嵌入式系统中所述第二处理器应用程序的存储位置,即启动位置:若当前为应用程序a区位置,将所述升级文件烧写至应用程序b区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序b区位置;若当前为应用程序b区位置,将所述升级文件烧写至应用程序a区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序a区位置。此时,所述第二处理器升级结束。
20.优选地,将待升级的应用程序通过代码调试器编译生成.out文件,再通过相应的模式转换模块将.out文件转换成.bin文件,所述.bin文件即为所述升级文件。
21.优选地,将所述异构双核双缓存嵌入式系统重新上电,即能够运行升级的应用程序。
22.有益效果:
23.(1)本发明能够在系统的整个运行周期内都能实时进行程序的在线升级。不管是系统刚上电启动,还是在用户代码的运行期间都可以做到在线升级。
24.(2)本发明在升级程序异常、通讯中断或者升级过程中意外断电都能保证升级的程序文件的正确加载,若程序文件烧写不成功则在下一次启动系统时会自动加载上一版程
序,即未升级成功,自动加载升级前的版本的程序。
25.(3)本发明升级方法简便,易于实现。
26.(4)本发明设置了校验方式,对升级程序进行验证,升级更安全、可靠。
附图说明
27.图1为本发明提供的第一处理器及第二处理器的在线升级的方法流程示意图;
28.图2为本发明提供的flash区块分配示意图。
具体实施方式
29.下面结合附图和实施例,对本发明进行详细描述。
30.如图1-图2所示,本发明提出了一种异构双核双缓存嵌入式系统,所述异构双核双缓存嵌入式系统为嵌入式设备,包括第一处理器、第二处理器、flash、ram以及rs232串口,所述第一处理器与所述第二处理器设备共享所述异构双核双缓存嵌入式系统的其他硬件。所述异构双核双缓存嵌入式系统上电后,所述第一处理器处于启动状态,并将存放在flash中的所述第二处理器的应用程序加载至ram中运行,所述第一处理器能够复位所述第二处理器,所述flash分为以下几个区块:第一处理器boot区、存放posflag区、中间区、应用程序a区以及应用程序b区。所述第一处理器boot区用于存放所述第一处理器的启动程序;存放posflag区用于存放posflag值,posflag为位置标识,posflag指示第二处理器的应用程序所在的flash区块位置;应用程序a区及应用程序b区均为flash区块,应用程序a区和应用程序b区能够存放所述第二处理器的应用程序;中间区是预留的flash区块;所述rs232串口用于连接服务器。
31.本发明进一步提供一种异构双核双缓存嵌入式系统的在线升级方法,使用如前所述异构双核双缓存嵌入式系统,所述在线升级方法包括如下步骤:
32.步骤s1:对所述异构双核双缓存嵌入式系统上电,所述第一处理器处于启动状态;
33.步骤s2:从服务器获取升级文件;根据需求对所述第一处理器进行在线升级或对所述第二处理器进行在线升级。
34.本发明中,所述第一处理器及所述第二处理器共享所述异构双核双缓存嵌入式系统的其他硬件。本实施例中,所述服务器为远端pc机,所述远端pc机通过rs232串口线与所述嵌入式设备相连接;第一处理器boot区用于存放所述第一处理器的启动程序,所述第一处理器的启动程序为boot程序,所述远端pc机运行有上位机软件,并存储与升级文件对应的.bin文件。
35.所述步骤s2,其中,将待升级的应用程序通过代码调试器编译生成.out文件,再通过相应的模式转换模块将.out文件转换成.bin文件,所述.bin文件即为所述升级文件。
36.所述步骤s2:对所述第一处理器进行在线升级,包括:
37.步骤s211:将所述异构双核双缓存嵌入式系统复位,若在第一预设时间段内所述第一处理器接收到在线升级指令,则进入步骤s212;否则,进入步骤s214;
38.步骤s212:基于所述升级程序,确定所述异构双核双缓存嵌入式系统中与所述升级文件对应的应用程序;所述第一处理器确定所述异构双核双缓存嵌入式系统中所述应用程序的程序头、程序尾和第一校验和;并计算所述升级程序的程序头、程序尾和第二校验
和;若第一校验和与第二校验和一致,进入步骤s213;否则,退出此次升级,方法结束;所述第一校验和基于所述异构双核双缓存嵌入式系统中所述应用程序生成,所述第二校验和基于所述升级程序生成;
39.步骤s213:确定所述异构双核双缓存嵌入式系统中所述应用程序在所述第二处理器的存储位置,即启动位置:若当前为应用程序a区位置,将所述升级文件烧写至应用程序b区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序b区位置;若当前为应用程序b区位置,将所述升级文件烧写至应用程序a区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序a区位置;
40.步骤s214:将posflag值更新为所述第二处理器的应用程序的启动位置,所述第一处理器从flash中获取位置标识posflag;
41.步骤s215:基于所述位置标识posflag,将所述位置标识posflag对应的flash区块的内容搬移至ram中,并运行搬移的内容。此时,所述第一处理器升级结束。
42.所述步骤s2:对所述第二处理器进行在线升级,包括:
43.步骤s221:基于所述升级程序,确定与所述异构双核双缓存嵌入式系统中与所述升级程序对应的应用程序;所述第二处理器确定所述异构双核双缓存嵌入式系统中所述应用程序的程序头、程序尾和第三校验和;并计算所述升级程序的程序头、程序尾和第四校验和;若第三校验和与第四校验和一致,进入步骤s222;否则,退出此次升级,方法结束;
44.步骤s222:所述第二处理器从flash中获取位置标识posflag,确定所述异构双核双缓存嵌入式系统中所述第二处理器应用程序的存储位置,即启动位置:若当前为应用程序a区位置,将所述升级文件烧写至应用程序b区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序b区位置;若当前为应用程序b区位置,将所述升级文件烧写至应用程序a区,烧写成功后,将所述第二处理器的应用程序的启动位置更改为所述应用程序a区位置。此时,所述第二处理器升级结束。
45.进一步地,将所述异构双核双缓存嵌入式系统重新上电,即能够运行升级的应用程序。
46.进一步地,所述烧录的方法包括:
47.步骤s31:获取待烧录的flash区块位置,根据待升级的应用程序的大小进行flash擦除工作,每成功擦除一个flash块将擦除的进度信息通过rs232串口发送给上位机软件用于实时显示工作进度;
48.步骤s32:以页为单位,找到flash块中能够使用的页,将收到的待升级的应用程序的当前数据包写入所述能够使用的页;判断是否写完所述待升级的应用程序的最后一个数据包,若为否,获取下一个待写数据包,进入步骤s32;若为是,则结束烧录。
49.进一步地,在烧录过程中,每判断一页损坏或者每成功写入一页都将进度信息通过rs232串口发送给上位机软件。
50.以上的具体实施例仅描述了本发明的设计原理,该描述中的部件形状,名称可以不同,不受限制。所以,本发明领域的技术人员可以对前述实施例记载的技术方案进行修改或等同替换;而这些修改和替换未脱离本发明创造宗旨和技术方案,均应属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1