掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及一种DSP处理器通用化高可靠在线升级方法,属于嵌入式电子技术领域。

背景技术

随着飞行器信息化、智能化的发展,其软件所实现的功能越来越复杂,软件升级和维护的频率越来越高。在产品已经装配好时,将其拆开利用JTAG接口对软件更新,不仅耗费时间,对硬件产品的诸多试验也需要重新做以确保其可靠性。这种方式在现场调试、设备数量大时维护非常困难。而在线升级技术很好的解决了这一问题。在不拆装备的条件下,由上位机软件对可执行文件进行读取分包,利用系统本身的对外通信口,将数据发送给下位机,从而直接对软件进行升级。

DSP数据处理器具有强大的数据处理能力,广泛用于航天航空等领域。以6713为例,其芯片本身不包含FLASH,需要EMIF总线外接。芯片自身带有一次引导,运行软件需要进行二次引导设计。在线升级功能需要在引导时考虑双冗余备份的可靠性以及尽可能的通用化设计。

发明内容

本发明的技术解决问题是:克服现有技术的不足,提供一种DSP处理器通用化高可靠在线升级方法,可以在不增加硬件设备的情况下,实现多次重复可靠地在线升级。

本发明的技术解决方案是:

本发明公开了一种DSP处理器通用化高可靠在线升级方法,包括:

为引导程序、应用程序A区、应用程序B区、B区有效标志和B区首次运行标志分配存储空间;

对B区有效标志和B区首次运行标志进行初始化;

进行应用程序设计;

将引导程序和应用程序A存储至所分配的存储空间中;

通过引导程序读取B区有效标志及B区首次运行标志,确认运行应用程序A区;

接收在线升级数据和升级指令,将升级数据加载至应用程序B区存储空间中,进行程序升级;

判断程序升级是否成功,若否,则进入升级错误处理程序;否则,进入升级后的处理程序;

断电后重新上电,引导程序根据B区有效标志及B区首次运行标志,确认运行应用程序A区或应用程序B区。

进一步地,在上述升级方法中,所述对B区有效标志和B区首次运行标志进行初始化,具体为:将B区有效标志设置为NO,B区首次运行标志设置为NO。

进一步地,在上述升级方法中,所述进行应用程序设计,具体为:应用程序包括应用程序A区与应用程序B区;应用程序A区包括程序头A和应用段A,应用程序B区包括程序头B、标志段B和应用段B;应用段A和应用段B内容相同;所述程序头A和程序头B设置为不同的版本号,外部程序通过读取所述版本号,确认当前运行的是A区或B区;所述标志段B读取并判断B区有效标志是否为NO,若是,则将B区有效标志擦写为YES。

进一步地,在上述升级方法中,所述通过引导程序读取B区有效标志及B区首次运行标志来确认运行应用程序A区,具体为:将引导程序和应用程序A存储至所分配的存储空间后,引导程序判断B区有效标志为NO,且B区首次运行为NO,则加载应用程序A区并运行。

进一步地,在上述升级方法中,所述接收在线升级数据和升级指令,将升级数据加载至应用程序B区存储空间中,进行程序升级,具体为:

接收升级数据和升级指令,对升级数据进行CRC校验;

若校验通过,则根据升级指令,将校验通过的升级数据写入应用程序B区存储空间,否则,回复地面升级数据错误,并等待地面再次发送升级指令。

进一步地,在上述升级方法中,所述升级错误处理程序,具体为:将B区有效标志及B区首次运行标志均设置为NO。

进一步地,在上述升级方法中,所述升级后的处理程序,具体为:升级后首次上电将B区首次运行标志设置为YES,B区有效标志设置为NO,再次上电时将B区首次运行标志设置为NO,B区有效标志设置为YES。

进一步地,在上述升级方法中,所述引导程序根据B区有效标志及B区首次运行标志,确认运行应用程序A区或应用程序B区,具体为:引导程序判断B区首次运行标志为YES,B区有效标志为NO,或B区首次运行标志为NO,B区有效标志为YES则运行应用程序B区,否则运行应用程序A区。

进一步地,在上述升级方法中,支持任意时刻出现升级故障后再次升级。

进一步地,在上述升级方法中,利用固有通信总线实现升级数据的传递。

本发明与现有技术的有益效果在于:

(1)本发明解决了无法通过JTAG烧写程序的问题,能够通过串口等装备固有通信接口通信实现软件升级;

(2)本发明采用A区、B区双冗余设计,解决了升级文件错误时,仍能通过A区执行应用程序或再次进行升级;

(3)本发明通过设置并读取判断标识字等方式,实现任意时刻掉电等故障后可以再次升级。

附图说明

图1为本发明方法流程示意图。

具体实施方式

下面结合附图及具体实施方式对本发明专利做进一步详细说明。

如图1所示,本发明公开了一种DSP处理器通用化高可靠在线升级方法,包括:

步骤1、为引导程序、应用程序A区、应用程序B区、B区有效标志和B区首次运行标志分配存储空间;

步骤2、对B区有效标志和B区首次运行标志进行初始化;

步骤3、进行应用程序设计;

步骤4、将引导程序和应用程序A存储至所分配的存储空间中;

步骤5、通过引导程序读取B区有效标志及B区首次运行标志,确认运行应用程序A区;

步骤6、接收在线升级数据和升级指令,将升级数据加载至应用程序B区存储空间中,进行程序升级;

步骤7、判断程序升级是否成功,若否,则进入升级错误处理程序;否则,进入升级后的处理程序;

步骤8、断电后重新上电,引导程序根据B区有效标志及B区首次运行标志,确认运行应用程序A区或应用程序B区。

优选地,对B区有效标志和B区首次运行标志进行初始化,具体为:将B区有效标志设置为NO,B区首次运行标志设置为NO。

优选地,进行应用程序设计,具体为:应用程序包括应用程序A区与应用程序B区;应用程序A区包括程序头A和应用段A,应用程序B区包括程序头B、标志段B和应用段B;应用段A和应用段B内容相同;所述程序头A和程序头B设置为不同的版本号,外部程序通过读取所述版本号,确认当前运行的是A区或B区;所述标志段B读取并判断B区有效标志是否为NO,若是,则将B区有效标志擦写为YES。

优选地,通过引导程序读取B区有效标志及B区首次运行标志来确认运行应用程序A区,具体为:将引导程序和应用程序A存储至所分配的存储空间后,引导程序判断B区有效标志为NO,且B区首次运行为NO,则加载应用程序A区并运行。

优选地,接收在线升级数据和升级指令,将升级数据加载至应用程序B区存储空间中,进行程序升级,具体为:

接收升级数据和升级指令,对升级数据进行CRC校验;

若校验通过,则根据升级指令,将校验通过的升级数据写入应用程序B区存储空间,否则,回复地面升级数据错误,并等待地面再次发送升级指令。

优选地,升级错误处理程序,具体为:将B区有效标志及B区首次运行标志均设置为NO。

优选地,升级后的处理程序,具体为:升级后首次上电将B区首次运行标志设置为YES,B区有效标志设置为NO,再次上电时将B区首次运行标志设置为NO,B区有效标志设置为YES。

优选地,引导程序根据B区有效标志及B区首次运行标志,确认运行应用程序A区或应用程序B区,具体为:引导程序判断B区首次运行标志为YES,B区有效标志为NO,或B区首次运行标志为NO,B区有效标志为YES则运行应用程序B区,否则运行应用程序A区。

优选地,支持任意时刻出现升级故障后再次升级。

优选地,利用固有通信总线实现升级数据的传递。

实施例

FLASH存储空间分配设计:为引导程序、应用程序A区、应用程序B区、B区有效标志和B区首次运行标志分配固定FLASH空间,以6713为例具体分配地址见表1。

表1FLASH地址分配

引导程序设计:芯片上电后,首先运行引导程序,在引导程序中,进行基本的硬件初始化配置。之后,判断加载应用程序A区或者应用程序B区,并进行跳转。若FLASH中B区程序有效标志为YES或B区首次运行标志为YES,则加载B区,否则加载A区并跳转。如图1所示。

应用程序设计:应用程序A区与B区基本一致,主要有两点区别,区别1是B区程序在开始时,判断B区有效标志是否为NO,若为NO将其擦写为YES。之后执行任务本身功能或者在线升级功能。区别2是A区、B区设置版本号不一致,可以通过地面指令读取当前版本号,清晰方便的确认当前运行的是A区或B区。

在线升级通信设计:在线升级与其余任务功能指令采用相同的硬件通信接口。进行软件在线升级时,首先将B区首次运行标志置为YES、B区有效标志置为NO,再将升级软件写至FLASH中的B区。不论当前运行的程序是A区还是B区,升级仅升级B区,即仅擦写B区的FLASH。

防升级文件选择错误设计:只有正确的升级文件中才包含判断B区有效标志不为YES,则将其擦写为YES的内容。所以在文件选择错误时,不会更改B区有效标志,使得重新上电后,引导程序判断B区有效标志和B区首次运行标志均为NO,进入A区,后续可继续升级。

烧写及升级过程:

a、在完成引导程序、A区程序、B区程序编制后。第一次通过JTAG口将引导程序和A区程序烧写至FLASH对应区域中,B区有效标志为NO,B区首次运行标志为NO。

b、将设备加电,通过上位机加载B区的升级文件,发送升级数据及升级指令,将软件写入FLASH的B区。升级成功后,B区有效标志被置为NO,首次运行标志被置为YES;

c、升级完成后第一次上电,引导程序判断到B区首次运行标志为YES,则加载B区程序。若B区程序有效,则加载的B区程序会将B区有效标志置为YES。如图1所示。

d、后续上电,B区首次运行标志已经被置为NO。若在第b步升级时,文件选择正确,则在第c步时升级的B区有效标志被置为有效YES,则继续加载B区;若在第b步升级时文件选择错误,为乱码文件,则第c步时升级的B区有效标志没有被置为YES,此时B区有效标志及首次运行标志都为NO,则加载A区。

根据上述过程,不论什么情况,都能够成加载A区或B区,而A区或B区的应用程序都能够继续支持升级过程。确保了异常断电及选择文件错误时升级的完成可靠和可持续性。

以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

技术分类

06120116506676