一种基于串口的八核DSP软件离线升级方法

文档序号:26101545发布日期:2021-07-30 18:12阅读:93来源:国知局
一种基于串口的八核DSP软件离线升级方法

本发明涉及芯片软件升级技术领域,具体涉及一种基于串口的八核dsp软件离线升级方法。



背景技术:

一般的基于dsp的软件程序更新是在ccs环境下通过jtag接口操作来实现的。基于jtag接口的方法虽然易于操作,而且调试方便,但经常受空间以及传输距离的限制。例如一台dsp系统安装在复杂、封闭的环境下,当程序需要更新或升级时,利用jtag接口难以实现程序的升级。而基于串口通信的升级技术是通过用底层程序烧写应用程序的方法来达到程序升级的目的,该方法则不受复杂系统和复杂环境的限制。另外,离线升级方法不需要改变dsp的启动方式,直接采用dsp默认的内部flash方式启动,从而省去了要对dsp的一些引脚进行硬件设置的麻烦。底层程序指已经固化在dsp指定flash空间中的程序,不允许用户修改和擦除,主要用于实现升级的时机判断、数据接收及代码烧写等功能,该程序内容详见技术方案;应用程序即为用户的升级程序。

tms320c6678dsp是集微控制器和高性能dsp特点于一身的多核dsp。该系列的dsp具有强大的控制信号处理能力,能够实现复杂的控制算法。随着电子技术的不断发展以及用户需求的不断提升,可能需要经常对已经投入使用的嵌入式设备程序进行更新,而目前一般的程序升级方法是实地取下设备,露出jtag端口后通过仿真器来更新程序。这种方法虽然简单有效,但对于某些特殊场合,会给程序升级带来了极大的不便。



技术实现要素:

本发明的目的在于提供一种基于串口的八核dsp软件离线升级方法,实现tms320c6678dsp应用程序离线更新的方法,可以从加速老化试验中推断出真实的寿命状态,测试方法比较简单,不需要高端的设备和复杂的运算,大大缩短了测试的周期。

为实现上述目的,本发明采用了以下技术方案:

一种基于串口的八核dsp软件离线升级方法,包括以下步骤:

(5)在八核dsp外挂的nandflash上固化底层程序;

(6)上电复位后通过接收串口调试终端发送的命令判断是否升级,若发送的是升级命令,则跳转到底层程序中升级部分执行;否则,跳转到原有的应用程序处执行引导加载过程;

(7)上电后dsp板卡启动底层应用程序,等待串口将目标文件发送给dsp板卡;

(8)dsp板卡接收到待加载的目标文件后,底层应用程序将用户程序可执行文件拷贝至ddr后再将其固化到nandflash中。

上述方案中,所述步骤(1)中,在八核dsp外挂的nandflash上固化底层程序,具体包括如下步骤:

(11)将底层应用程序通过ccs仿真环境由仿真器加载到dsp外挂的ddr3上;

(12)初始化dsp的spi接口;

(13)获取ddr3上底层应用程序的长度,并擦除相应大小的nandflash块;

(14)从固定的起始地址,将ddr3中的数据写入nandflash的数据缓存中,再写入闪存存储单元阵列。

所述步骤(2)中,上电复位后通过接收串口调试终端发送的命令判断是否升级,具体步骤如下:上位机发送升级固件与否的命令,当命令为升级,dsp的主核心0将升级状态标志位由0改为1,跳转到接收目标文件过程;当命令为不升级,核心0将升级状态标志由0改为2,,跳转到应用程序的引导加载过程。

所述步骤(3)中,上电后dsp板卡启动底层应用程序,等待串口将目标文件发送给dsp板卡,具体步骤如下:

对镜像文件进行处理,得到目标文件;

通过串口将目标文件发送给dsp板卡:选择目标文件进行发送,通过dsp板卡接收目标文件后在串口输出接收完成的信息,并将接收到的目标文件字节数通过串口打印出来。

所述步骤(4)中,dsp板卡接收到待加载的目标文件后,底层应用程序将用户程序可执行文件拷贝至ddr3后再将其固化到nandflash中,具体步骤如下:

在串口输出了目标文件的字节数后,将接收到的目标文件存储于dsp的ddr3中,然后调用步骤(1)中用到的nandflash固化相关的函数;

将目标文件固化到与dsp连接的外部非易失性存储器nand闪存中,等待下次设备重启,即可实现八核dsp的软件升级功能。

由上述技术方案可知,本发明所述的基于串口的八核dsp软件离线升级方法,针对八核dsp的软件升级,同时也兼容了传统的单核dsp与双核dsp的软件升级,解决了复杂环境下的dsp软件升级问题,且该方法适用的dsp产品范围更广。本发明可以从加速老化试验中推断出真实的寿命状态,测试方法比较简单,不需要高端的设备和复杂的运算,大大缩短了测试的周期。

附图说明

图1是本发明的底层程序流程图;

图2是本发明的多核镜像文件处理流程图。

具体实施方式

下面结合附图对本发明做进一步说明:

本实施例的基于串口的八核dsp软件离线升级方法,包括以下步骤:

s1:在八核dsp外挂的nandflash上固化底层程序;

s11:将底层应用程序通过ccs仿真环境由仿真器加载到dsp外挂的ddr3上。

s12:初始化dsp的spi接口。

s13:获取ddr3上底层应用程序的长度,并擦除相应大小的nandflash块。

s14:从固定的起始地址,将ddr3中的数据写入nandflash的databuffer(数据缓存)中,再写入闪存存储单元阵列(memorycellarray)。

s2:上电复位后通过接收串口调试终端发送的命令判断是否升级。若发送的是升级命令,则跳转到底层程序中升级部分执行;否则,跳转到原有的应用程序处执行引导加载过程;

上位机发送升级固件与否的命令,当命令为升级,dsp的主核心0将升级状态标志位由0改为1,跳转到接收目标文件过程。

当命令是不升级,核心0将升级状态标志由0改为2,,跳转到应用程序的引导加载过程。

s3:上电以后dsp板卡启动底层应用程序,等待串口将目标升级文件发送给dsp板卡;

首先:对镜像文件进行处理,得到目标升级文件:对于多核dsp的应用而言,有两种情况:一是不同核心运行同一套固件,二是八个核心运行不同的固件,为了兼容这两种情况,在多核dsp软件升级时,需要对八个核心的镜像文件进行处理,将其合成为一个目标升级文件,然后发送给dsp板卡,具体流程图如图2所示。

将8个ccs编译生成的out文件,结合八个rmd文件通过hex6x工具生成八个btbl文件,再通过ti公司提供的mergebtbl以及b2i2c、b2ccs工具生成一个目标文件。mergebtbl工具用于将八个btbl文件合成为1个btbl文件。b2i2c工具对btbl文件数据内容进行分割,添加校验和与数据长度。b2ccs工具将目标文件处理为ccs可读的格式;

其次:通过串口将目标文件发送给dsp板卡,具体操作为:在串口调试终端界面依次点击“transfer->sendbinary…”,然后选择目标文件,再点击send进行发送,dsp板卡接收目标文件,dsp接收完毕后在串口输出接收完成的信息,并将接收到的目标文件字节数通过串口打印出来,方便开发人员核对。

s4:dsp板卡接收到待加载的目标文件后,底层应用程序将用户程序可执行文件拷贝至ddr后再将其固化到nandflash中;

在串口输出了目标文件的字节数后,代表dsp已接收完成。此时将接收到的目标文件存储于dsp的ddr3中,再调用第一个过程中用到的nandflash固化相关的函数,将目标文件固化到与dsp连接的外部非易失性存储器nand闪存中。等待下次设备重启,即可实现八核dsp的软件升级功能。

以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1