一种DSP程序的远程升级方法技术

技术编号:25834274 阅读:38 留言:0更新日期:2020-10-02 14:15
本发明专利技术公开了一种DSP程序的远程升级方法,包括:远程PC端发送升级协议指令,所述升级协议指令包括对码指令、文件数据传输指令、备份指令和恢复指令;DSP上电执行引导程序,等待接收所述对码指令;若DSP在预设时间内接收到所述对码指令,则跳转至烧写程序对所述烧写程序自身进行升级和备份,或跳转至烧写程序对用户程序进行升级和备份。本发明专利技术有效地提高了DSP远程升级的可靠性,不仅提高了用户程序烧写引导执行的可靠性,同时提高了引导烧写程序升级和执行的可靠性。

【技术实现步骤摘要】
一种DSP程序的远程升级方法
本专利技术属于属于嵌入式设备领域,具体涉及一种DSP程序的远程升级方法。
技术介绍
DSP(digitalsignalprocessor,数字信号处理器)是一种数字信号处理设备,在工业控制控制、图像处理、通信、导航等领域有广泛的应用。通常在含有DSP芯片的设备,程序在出厂时已经通过JTAG烧写在Flash中,随单板封装在机壳中。然而在产品成熟前常常需要对程序进行更改升级,如果使用JTAG烧写,一般机箱外部没有JTAG接口,需要机箱开盖处理,机箱有引入多余物的风险,并且当产品数量比较大时,维护人员工作量大,可维护性差。通过串口等通信接口远程升级可以解决以上问题。TI提供了第三方工具C2Prog软件可以对部分DSP芯片进行串口升级,其不足之处是需要将芯片设置为SCI启动模式,晶振可选频率有限,应用受限,在实际使用中大多数场合使用Flash启动。此外有一种方法是在用户代码中添加升级模块,将升级烧写代码和用户应用代码混合编译,在进入升级流程后将烧写和通信部分代码搬移到RAM执行,通过通信接口接收可执行文件的Bin文件数据保存到Flash中,可实现串口远程升级,该方法的不足之处是当代码烧写错误、代码本身有问题或者编程Flash时突然断电,烧写在Flash的代码重新上电启动失败,无法再次远程升级,该方法的优点是无需额外的上电等待时间,但是可靠性差,发生一次错误导致程序无法启动则必须重新用JTAG烧写。另外有一种普遍采用的将引导烧写程序和用户程序相互独立运行的远程升级方法,该方法采用上电延迟等待升级指令的方法,等待超时则跳转到用户程序,收到升级指令则运行烧写升级分支对引导烧写程序或者用户程序升级。如在申请号为[CN201510634073]和[CN201010274274]中提到的方法。但是如果引导烧写程序烧写失败(如烧写Flash时断电,Flash异常导致烧写失败、烧写的可执行文件错误等),就不得不重新打开机盖烧写;长时间使用后,如果Flash某些存储位异常,会导致烧写程序或者用户程序加载失败;此外为了减小烧写过程中断电导致烧写失败的几率,通常使用外部RAM缓存可执行文件,对RAM容量要求高,在很多单板体积受限的场合无法使用。
技术实现思路
针对现有技术中存在的技术问题,本专利技术提供了一种DSP程序的远程升级方法,有效地提高了DSP远程升级的可靠性,不仅提高了用户程序烧写引导执行的可靠性,同时提高了引导烧写程序升级和执行的可靠性。为了解决上述技术问题,本专利技术通过以下技术方案予以实现:一种DSP程序的远程升级方法,包括:远程PC端发送升级协议指令,所述升级协议指令包括对码指令、文件数据传输指令、备份指令和恢复指令;DSP上电执行引导程序,等待接收所述对码指令;若DSP在预设时间内接收到所述对码指令,则跳转至烧写程序对所述烧写程序自身进行升级和备份,或跳转至烧写程序对用户程序进行升级和备份。进一步地,若DSP在预设时间内未接收到所述对码指令,则跳转至用户程序,在跳转至所述用户程序之前,所述引导程序检测所述用户程序的文件校验和是否正确,若正确,则执行所述用户程序;若不正确,则执行所述用户程序的备份程序。进一步地,在远程PC端发送升级协议指令前,利用hex.exe工具将所述烧写程序或所述用户程序的out文件转换为bin文件。进一步地,在跳转至所述烧写程序之前,所述引导程序检测所述烧写程序的文件校验和是否正确,若正确,则执行所述烧写程序;若不正确,则执行所述烧写程序的备份程序。进一步地,若所述文件数据传输指令中的软件号为所述烧写程序的软件号,则对所述烧写程序自身进行升级和备份;若所述文件数据传输指令中的软件号为所述用户程序的软件号,则对所述用户程序自身进行升级和备份。进一步地,所述烧写程序的bin文件根据所述文件数据传输指令进行分解打包,通过通讯接口传输到DSP,先将所述烧写程序的bin文件保存在Flash中对应的默认区域,DSP重新上电,执行烧写流程,若执行的是默认区域的烧写程序,则发送备份指令,将所述烧写程序的bin文件从Flash中对应的默认区域复制到备份区域,实现升级和备份;若执行的不是默认区域的烧写程序,则通过所述恢复指令将备份区域的程序复制到默认区域。进一步地,所述用户程序的bin文件根据所述文件数据传输指令分解打包,通过通讯接口传输到DSP,直接将所述用户程序的bin文件保存在Flash中对应的默认区域和备份区域,实现升级和备份。进一步地,在首次使用远程升级前,利用仿真器将所述引导程序和所述烧写程序烧写到DSP的Flash中。进一步地,DSP上电执行引导程序具体包括:对DSP的时钟、中断、定时器和通讯接口进行初始化、在预设时间内等待所述升级协议指令以及程序跳转功能。与现有技术相比,本专利技术至少具有以下有益效果:本专利技术提供的一种DSP程序的远程升级方法,提出一种引导程序、烧写协议程序和用户程序独立的方法,将传统的引导烧写程序拆分为两个单独的引导程序、烧写协议程序。引导程序放在Flash开始处,裁剪到最优最小的引导程序执行简单的初始化、等接收升级协议指令、文件校验引导功能;带协议的烧写部分作为独立的程序存储和执行,同时对烧写程序和用户程序在Flash中进行冗余备份。引导程序功能固定,烧写一次后无需变更,带协议的烧写程序(通常附带参数装订等辅助功能)和用户程序往往需要维护升级,冗余备份的设计保证当一个区域的烧写程序因断电或通讯问题升级失败时可以使用备份程序替代执行,同时也可以使用备份程序检测恢复烧写失败的程序区;冗余备份可以降低因Flash长时间使用个别存储点损坏导致程序加载失败的几率,此外由于采用备份设计无需担心掉电等原因导致烧写失败,提高烧写程序和引导程序的可靠性。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式中的技术方案,下面将对具体实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一种DSP程序的远程升级方法的设备结构框图;图2为本专利技术一种DSP程序的远程升级方法的程序分布图;图3为本专利技术一种DSP程序的远程升级方法的远程升级运行主要流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。作为本专利技术的某一具体实施方式,一种DSP程序的远程升级方法,包括:远程PC端发送升级协议指令,升级协议指令包括对码指令、文件本文档来自技高网
...

【技术保护点】
1.一种DSP程序的远程升级方法,其特征在于,包括:/n远程PC端发送升级协议指令,所述升级协议指令包括对码指令、文件数据传输指令、备份指令和恢复指令;/nDSP上电执行引导程序,等待接收所述对码指令;/n若DSP在预设时间内接收到所述对码指令,则跳转至烧写程序对所述烧写程序自身进行升级和备份,或跳转至烧写程序对用户程序进行升级和备份。/n

【技术特征摘要】
1.一种DSP程序的远程升级方法,其特征在于,包括:
远程PC端发送升级协议指令,所述升级协议指令包括对码指令、文件数据传输指令、备份指令和恢复指令;
DSP上电执行引导程序,等待接收所述对码指令;
若DSP在预设时间内接收到所述对码指令,则跳转至烧写程序对所述烧写程序自身进行升级和备份,或跳转至烧写程序对用户程序进行升级和备份。


2.根据权利要求1所述的一种DSP程序的远程升级方法,其特征在于,若DSP在预设时间内未接收到所述对码指令,则跳转至用户程序,在跳转至所述用户程序之前,所述引导程序检测所述用户程序的文件校验和是否正确,若正确,则执行所述用户程序;若不正确,则执行所述用户程序的备份程序。


3.根据权利要求1所述的一种DSP程序的远程升级方法,其特征在于,在远程PC端发送升级协议指令前,利用hex.exe工具将所述烧写程序或所述用户程序的out文件转换为bin文件。


4.根据权利要求3所述的一种DSP程序的远程升级方法,其特征在于,在跳转至所述烧写程序之前,所述引导程序检测所述烧写程序的文件校验和是否正确,若正确,则执行所述烧写程序;若不正确,则执行所述烧写程序的备份程序。


5.根据权利要求4所述的一种DSP程序的远程升级方法,其特征在于,若所述文件数据传输指令中的软件号为所述烧写程序的软件号,则对所述烧写程序自身进行...

【专利技术属性】
技术研发人员:李华惠超
申请(专利权)人:西安微电子技术研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1