本发明涉及一种dsp处理器通用化高可靠在线升级方法,属于嵌入式电子。
背景技术:
1、随着飞行器信息化、智能化的发展,其软件所实现的功能越来越复杂,软件升级和维护的频率越来越高。在产品已经装配好时,将其拆开利用jtag接口对软件更新,不仅耗费时间,对硬件产品的诸多试验也需要重新做以确保其可靠性。这种方式在现场调试、设备数量大时维护非常困难。而在线升级技术很好的解决了这一问题。在不拆装备的条件下,由上位机软件对可执行文件进行读取分包,利用系统本身的对外通信口,将数据发送给下位机,从而直接对软件进行升级。
2、dsp数据处理器具有强大的数据处理能力,广泛用于航天航空等领域。以6713为例,其芯片本身不包含flash,需要emif总线外接。芯片自身带有一次引导,运行软件需要进行二次引导设计。在线升级功能需要在引导时考虑双冗余备份的可靠性以及尽可能的通用化设计。
技术实现思路
1、本发明的技术解决问题是:克服现有技术的不足,提供一种dsp处理器通用化高可靠在线升级方法,可以在不增加硬件设备的情况下,实现多次重复可靠地在线升级。
2、本发明的技术解决方案是:
3、本发明公开了一种dsp处理器通用化高可靠在线升级方法,包括:
4、为引导程序、应用程序a区、应用程序b区、b区有效标志和b区首次运行标志分配存储空间;
5、对b区有效标志和b区首次运行标志进行初始化;
6、进行应用程序设计;
7、将引导程序和应用程序a存储至所分配的存储空间中;
8、通过引导程序读取b区有效标志及b区首次运行标志,确认运行应用程序a区;
9、接收在线升级数据和升级指令,将升级数据加载至应用程序b区存储空间中,进行程序升级;
10、判断程序升级是否成功,若否,则进入升级错误处理程序;否则,进入升级后的处理程序;
11、断电后重新上电,引导程序根据b区有效标志及b区首次运行标志,确认运行应用程序a区或应用程序b区。
12、进一步地,在上述升级方法中,所述对b区有效标志和b区首次运行标志进行初始化,具体为:将b区有效标志设置为no,b区首次运行标志设置为no。
13、进一步地,在上述升级方法中,所述进行应用程序设计,具体为:应用程序包括应用程序a区与应用程序b区;应用程序a区包括程序头a和应用段a,应用程序b区包括程序头b、标志段b和应用段b;应用段a和应用段b内容相同;所述程序头a和程序头b设置为不同的版本号,外部程序通过读取所述版本号,确认当前运行的是a区或b区;所述标志段b读取并判断b区有效标志是否为no,若是,则将b区有效标志擦写为yes。
14、进一步地,在上述升级方法中,所述通过引导程序读取b区有效标志及b区首次运行标志来确认运行应用程序a区,具体为:将引导程序和应用程序a存储至所分配的存储空间后,引导程序判断b区有效标志为no,且b区首次运行为no,则加载应用程序a区并运行。
15、进一步地,在上述升级方法中,所述接收在线升级数据和升级指令,将升级数据加载至应用程序b区存储空间中,进行程序升级,具体为:
16、接收升级数据和升级指令,对升级数据进行crc校验;
17、若校验通过,则根据升级指令,将校验通过的升级数据写入应用程序b区存储空间,否则,回复地面升级数据错误,并等待地面再次发送升级指令。
18、进一步地,在上述升级方法中,所述升级错误处理程序,具体为:将b区有效标志及b区首次运行标志均设置为no。
19、进一步地,在上述升级方法中,所述升级后的处理程序,具体为:升级后首次上电将b区首次运行标志设置为yes,b区有效标志设置为no,再次上电时将b区首次运行标志设置为no,b区有效标志设置为yes。
20、进一步地,在上述升级方法中,所述引导程序根据b区有效标志及b区首次运行标志,确认运行应用程序a区或应用程序b区,具体为:引导程序判断b区首次运行标志为yes,b区有效标志为no,或b区首次运行标志为no,b区有效标志为yes则运行应用程序b区,否则运行应用程序a区。
21、进一步地,在上述升级方法中,支持任意时刻出现升级故障后再次升级。
22、进一步地,在上述升级方法中,利用固有通信总线实现升级数据的传递。
23、本发明与现有技术的有益效果在于:
24、(1)本发明解决了无法通过jtag烧写程序的问题,能够通过串口等装备固有通信接口通信实现软件升级;
25、(2)本发明采用a区、b区双冗余设计,解决了升级文件错误时,仍能通过a区执行应用程序或再次进行升级;
26、(3)本发明通过设置并读取判断标识字等方式,实现任意时刻掉电等故障后可以再次升级。
1.一种dsp处理器通用化高可靠在线升级方法,其特征在于,包括:
2.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述对b区有效标志和b区首次运行标志进行初始化,具体为:将b区有效标志设置为no,b区首次运行标志设置为no。
3.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述进行应用程序设计,具体为:应用程序包括应用程序a区与应用程序b区;应用程序a区包括程序头a和应用段a,应用程序b区包括程序头b、标志段b和应用段b;应用段a和应用段b内容相同;所述程序头a和程序头b设置为不同的版本号,外部程序通过读取所述版本号,确认当前运行的是a区或b区;所述标志段b读取并判断b区有效标志是否为no,若是,则将b区有效标志擦写为yes。
4.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述通过引导程序读取b区有效标志及b区首次运行标志来确认运行应用程序a区,具体为:将引导程序和应用程序a存储至所分配的存储空间后,引导程序判断b区有效标志为no,且b区首次运行为no,则加载应用程序a区并运行。
5.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述接收在线升级数据和升级指令,将升级数据加载至应用程序b区存储空间中,进行程序升级,具体为:
6.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述升级错误处理程序,具体为:将b区有效标志及b区首次运行标志均设置为no。
7.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述升级后的处理程序,具体为:升级后首次上电将b区首次运行标志设置为yes,b区有效标志设置为no,再次上电时将b区首次运行标志设置为no,b区有效标志设置为yes。
8.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:所述引导程序根据b区有效标志及b区首次运行标志,确认运行应用程序a区或应用程序b区,具体为:引导程序判断b区首次运行标志为yes,b区有效标志为no,或b区首次运行标志为no,b区有效标志为yes则将运行应用程序b区,否则运行应用程序a区。
9.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:支持任意时刻出现升级故障后再次升级。
10.根据权利要求1所述的一种dsp处理器通用化高可靠在线升级方法,其特征在于:利用固有通信总线实现升级数据的传递。