一种双核DSP在线升级方法与流程

文档序号:23958807发布日期:2021-02-18 20:50阅读:208来源:国知局
一种双核dsp在线升级方法
技术领域
[0001]
本发明涉及系统在线升级技术领域,具体涉及一种双核dsp在线升级方法。


背景技术:

[0002]
对于嵌入式系统而言,主控芯片的升级越来越重要,传统的升级方式需要依赖编程器、仿真器等特定工具,并且需要保留jtag接口,或采用外设引导方式(如sci boot)时需要配置gpio引脚状态,在客户现场升级时带来诸多不便之处,例如,需要依赖编程器、仿真器等特定工具,需配置gpio引脚状态,实现在线升级,同时,现有的dsp在线升级仅针对单核产品开发,没有考虑到双核dsp的方案,因此,设计出一种双核dsp在线升级方法,对于目前系统在线升级技术领域来说是迫切需要的。


技术实现要素:

[0003]
本发明提供一种双核dsp在线升级方法,以解决现有技术存在的问题。
[0004]
为了实现上述目的,本发明实施例提供如下技术方案:
[0005]
根据本发明的实施例,一种双核dsp在线升级方法,包括双核dsp和上位软件,所述双核dsp包括两组cpu,分别为cpu1和cpu2,所述cpu1和cpu2皆具有各自的flash,所述双核dsp升级过程分为如下三个阶段:
[0006]
(1)cpu1的bootloader准备过程:
[0007]
上位软件发送升级固件命令后,cpu1在上位软件中将升级状态标志位bit0-bit1设为0x01后跳转到bootloader开始执行,在bootloader完成系统初始化后,查询bit0-bit1是进入升级流程还是跳转到应用程序,
[0008]
进入升级流程后,bootloader将两组cpu解锁,将flash操作拷贝到ram区,bootloader将升级状态标志位回复给上位软件,上位软件以升级状态标志位提示用户目前cpu1和cpu2是否有烧录异常,若有升级失败的cpu,提示用户必须升级该cpu固件,若无升级失败的cpu,则直接执行下一步;
[0009]
(2)cpu1和cpu2的升级过程:
[0010]

cpu1升级:
[0011]
在完成第(1)步之后,cpu1的bootloader等待上位软件发送升级命令,假如上位软件发送的是升级cpu1的命令,bootloader收到升级cpu1命令后,将升级状态标志位bit2改为1,之后擦除,烧录cpu1固件,烧录完成后将升级状态标志位bit2改为0,若只升级cpu1则判定bit2和bit3是否同为0,若为全0,将bit0-bit1清零,若不为全0,则重复以上操作;
[0012]

cpu2升级:
[0013]
在完成第(1)步之后,cpu1的bootloader等待上位软件发送升级命令,假如上位软件发送的是升级cpu2的命令,cpu1的bootloader接收到升级cpu2命令后,然后将sci控制权交给cpu2,将cpu2从flash引导起来,通过共享内存通知cpu2的bootloader执行升级过程,
[0014]
cpu2的bootloader启动后读取共享内存为执行升级命令后开始烧写流程,对cpu2
进行解锁,接收升级cpu2升级命令,通知cpu1,cpu2开始烧录之后擦除,烧录cpu2固件,烧录完成后通过共享内存通知cpu1已经完成烧录,cpu1查询cpu2的烧录状态,当cpu2开始烧录后,将bit3置1;当cpu2完成烧录时,将bit3清0;
[0015]
(3)完成烧录工作后,将升级状态标志位bit3改为0,然后判定bit2和bit3是否同为0,若为全0,将bit0-bit1清零,若不为全0,则重复以上操作。
[0016]
进一步地,所述cpu1和cpu2的flash分别为sector a~sector n,cpu1和cpu2的bootloader在sector a内部。
[0017]
进一步地,所述升级状态标志位包括bit0-bit1、bit2和bit3,bit0-bit1为需要升级的标识,其中,0x01表示需要升级,其他值则表示不需要升级,bit2位的1表示cpu1升级未完成,bit2位的0表示cpu1升级完成,bit3位的1表示cpu2升级未完成,bit3位的0表示升级完成。
[0018]
本发明具有如下优点:
[0019]
该双核dsp在线升级方法通过将bootloader内置到芯片内部,不需要依赖编程器、仿真器等特定工具,也无需配置gpio引脚状态,实现双核dsp快速在线升级,同时,将烧录内核直接固化到flash中,省略下载内核的过程,同时支持双核dsp升级,并且设计了防止烧录失败功能。
具体实施方式
[0020]
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021]
本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0022]
本发明提供一种技术方案:
[0023]
一种双核dsp在线升级方法,包括双核dsp和上位软件,双核dsp包括两组cpu,分别为cpu1和cpu2,cpu1和cpu2皆具有各自的flash,双核dsp升级过程分为如下三个阶段:
[0024]
(1)cpu1的bootloader准备过程:
[0025]
上位软件发送升级固件命令后,cpu1在上位软件中将升级状态标志位bit0-bit1设为0x01后跳转到bootloader开始执行,在bootloader完成系统初始化后,查询bit0-bit1是进入升级流程还是跳转到应用程序,
[0026]
进入升级流程后,bootloader将两组cpu解锁,将flash操作拷贝到ram区,bootloader将升级状态标志位回复给上位软件,上位软件以升级状态标志位提示用户目前cpu1和cpu2是否有烧录异常,若有升级失败的cpu,提示用户必须升级该cpu固件,若无升级失败的cpu,则直接执行下一步;
[0027]
(2)cpu1和cpu2的升级过程:
[0028]

cpu1升级:
[0029]
在完成第(1)步之后,cpu1的bootloader等待上位软件发送升级命令,假如上位软
件发送的是升级cpu1的命令,bootloader收到升级cpu1命令后,将升级状态标志位bit2改为1,之后擦除,烧录cpu1固件,烧录完成后将升级状态标志位bit2改为0,若只升级cpu1则判定bit2和bit3是否同为0,若为全0,将bit0-bit1清零,若不为全0,则重复以上操作;
[0030]

cpu2升级:
[0031]
在完成第(1)步之后,cpu1的bootloader等待上位软件发送升级命令,假如上位软件发送的是升级cpu2的命令,cpu1的bootloader接收到升级cpu2命令后,然后将sci控制权交给cpu2,将cpu2从flash引导起来,通过共享内存通知cpu2的bootloader执行升级过程,
[0032]
cpu2的bootloader启动后读取共享内存为执行升级命令后开始烧写流程,对cpu2进行解锁,接收升级cpu2升级命令,通知cpu1,cpu2开始烧录之后擦除,烧录cpu2固件,烧录完成后通过共享内存通知cpu1已经完成烧录,cpu1查询cpu2的烧录状态,当cpu2开始烧录后,将bit3置1;当cpu2完成烧录时,将bit3清0;
[0033]
(3)完成烧录工作后,将升级状态标志位bit3改为0,然后判定bit2和bit3是否同为0,若为全0,将bit0-bit1清零,若不为全0,则重复以上操作。
[0034]
本发明中:cpu1和cpu2的flash分别为sector a~sector n,cpu1和cpu2的bootloader在sector a内部,通过将bootloader内置到芯片内部,不需要依赖编程器、仿真器等特定工具,也无需配置gpio引脚状态,实现双核dsp快速在线升级。
[0035]
本发明中:升级状态标志位包括bit0-bit1、bit2和bit3,bit0-bit1为需要升级的标识,其中,0x01表示需要升级,其他值则表示不需要升级,bit2位的1表示cpu1升级未完成,bit2位的0表示cpu1升级完成,bit3位的1表示cpu2升级未完成,bit3位的0表示升级完成,升级状态标志位的设置使系统升级的提示更加简单,简化了在线升级的流程。
[0036]
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1