基于tidsp的软件远程加载与固化方法

文档序号:6493719研发日期:2012年阅读:332来源:国知局
技术简介:
本专利针对传统TI DSP应用中依赖仿真器、升级困难、维护复杂及无法实时分配任务的问题,提出一种远程加载与固化方法。通过一级引导程序实现代码自动加载,结合远程传输、在线解析与固化技术,无需仿真器即可完成代码更新与调试,提升系统灵活性与可靠性。
关键词:远程加载,代码固化
基于ti dsp的软件远程加载与固化方法
【专利摘要】本发明涉及一种基于TI?DSP的软件远程加载与固化方法,该方法包括以下步骤:1)汇编语言编写的一级代码引导程序;2)DSP初始化;3)代码远程传输或接收;4)代码在线解析;5)代码固化。本发明提供了一种可简化TI?DSP的应用调试及维护升级方法,可实现基于TI?DSP的软件远程加载、调试与固化,从而有效提高TI?DSP系统应用的灵活性、可靠性和可维护性。
【专利说明】基于Tl DSP的软件远程加载与固化方法
【技术领域】
[0001]本发明属于嵌入式数字信号处理【技术领域】,涉及一种软件远程加载与固化方法,尤其涉及一种基于TI DSP的软件远程加载与固化方法。
【背景技术】
[0002]具备高性能、软件可编程和低功耗等优点的DSP —直是嵌入式信号处理领域的首选处理器件。作为全球最大的DSP器件生产商,Texas Instruments (TI)公司的DSP处理器在高性能信号处理领域占据着统治地位,引领着高端DSP技术的发展。
[0003]在当前嵌入式DSP的应用中,都是事先将应用程序存储在外部的非易失性存储器(如FLASH)中,在系统重新上电后,从外部存储器加载到DSP内存中再运行应用程序。这种传统的工作方式有诸多缺点:一是,程序代码固化时,必须通过仿真器连接到目标器件,给在外场的升级带来很大困难;二是虽然TI公司提供了相应的代码生成和固化工具,但是步骤繁琐、操作复杂,软件只要有一点变动就要重新生成固化代码,维护性很差。三是DSP这种传统的调试加载方式不能实现实时任务分配的要求,不适应新一代嵌入式应用的需求。

【发明内容】

[0004]为了解决【背景技术】中存在的上述技术问题,本发明提供了一种可简化TIDSP的应用调试及维护升级方法,可实现基于TI DSP的软件远程加载、调试与固化,从而有效提高TIDSP系统应用的灵活性、可靠性和可维护性。
[0005]本发明的技术方案是:本发明提供了一种基于TI DSP的软件远程加载与固化方法,其特殊之处在于:所述基于TI DSP的软件远程加载与固化方法包括以下步骤:
[0006]I)汇编语言编写的一级代码引导程序;
[0007]2) DSP 初始化;
[0008]3)代码远程传输或接收;
[0009]4)代码在线解析;
[0010]5)代码固化。
[0011]上述步骤I)的具体实现方式是:
[0012]1.1)系统上电或复位;
[0013]1.2)DSP处理器通过自带的加载引导器(Bootloader)以DMA的方式从某一固定地址处自动复制IKBytes的数据到DSP片内的内存空间中;数据复制完成后,自动跳转到内存首址运行;所述某一固定地址是DSP的外部非易失性存储器(如FLASH等)的地址;所述IKbytes的数据在本方案中是汇编语言编写的一级代码引导程序;
[0014]1.3)加载到DSP内存中运行的一级代码引导程序完成将最终应用程序代码复制到DSP内存并跳转到程序入口地址运行的功能;所述最终应用程序在本方案中包括DSP初始化程序、远程代码接收程序、代码在线解析程序和代码固化程序。
[0015]上述步骤2)的具体实现方式是:[0016]2.1)完成DSP内部资源、外部资源的初始化及配置管理。
[0017]2.2)根据外部运行或调试态信号决定是加载运行FLASH中存储的应用程序还是在线加载运行程序运行;如果采用在线加载方式,通过DSP处理器上指定的外部接口接收应用软件代码,并执行步骤3);如果采用加载运行FLASH中存储的应用程序时,则直接加载运行FLASH中存储的应用程序,并执行步骤4)。
[0018]上述步骤2.1)中所述的DSP初始化配置完成DSP工作频率配置,中断、DMA初始化,接口(如存储器接口、通信接口)初始化,通信链路(如RapidIO、FC等专用接口)的配置管理等工作,为远程代码接收程序、代码在线解析程序和代码固化程序的运行提供必要的准备和支持。
[0019]上述步骤3)的具体实现方式是:
[0020]将在主机端用DSP处理器开发环境(TI DSP为Code Composer Studio)生成的目标程序文件通过主机上的接口或集中加载模块与目标DSP连接的接口进行传送;所述目标程序文件对于TI DSP为.0ut格式文件;所述与目标DSP连接的接口如串口、网口等,或专用接口如FC、RapidIO接口等;所述接口采用串口或网口进行数据传输时,直接采用主机自带的通信工具以文件传输的方式进行数据传输;所述接口采用专用接口时,需要必要的硬件设备和传输软件支持。
[0021]上述步骤4)中在线解析程序是将通过通信接口在线传输加载的应用程序代码或从FLASH加载的应用程序代码解析为DSP直接可以执行的代码并存储在相对应的DSP运行空间中;最后自动跳转到程序入口地址运行程序。
[0022]上述步骤4)的具体实现方式是:
[0023]4.1)从.0ut文件中依次判别、读取各有效段;
[0024]4.2)将各段数据信息写到DSP相应的内存运行空间中;当所有必需的段数据解析复制完毕后,跳转到程序入口地址运行;所述.0ut文件是标准的COFF格式,所述COFF文件从前至后依次由文件头、可选的文件头、段头信息表、段头信息表对应的段数据、重定位信息、行号入口表、符号表、字符串表组成。
[0025]上述步骤5)的具体实现方式是:将程序运行代码存储到外部ROM中或FLASH存储器中。
[0026]本发明的优点是:
[0027]1、实现了 TI DSP的远程代码传输、固化功能,脱离了硬件仿真器的限制,有效解决了 DSP代码生成操作困难的问题,给外场的升级带来很大便利。
[0028]2、实现了远程代码加载、调试功能,解决了 TI DSP在应用程序加载调试中必须依赖开发环境和仿真器的要求,使针对TI DSP的调试更加简便灵活,方便系统的综合联调联试工作。
[0029]3、该软件可以实现多DSP集中任务加载运行、DSP在线实时任务分配的功能,满足新一代嵌入式应用的需求。
【专利附图】

【附图说明】
[0030]图1是一级代码引导程序的流程框图;
[0031 ] 图2是DSP初始化程序的流程框图;[0032]图3是COFF文件格式简图;
[0033]图4是在线解析程序流程框图;
[0034]图5是某信号处理模块的结构框图;
[0035]图6是某信号处理模块的远程加载及固化流程框图。
【具体实施方式】
[0036]基于TI DSP的软件远程加载与固化软件由五部分组成:包括汇编语言编写的一级代码引导程序;DSP初始化程序;代码远程传输或接收程序、代码在线解析程序、代码固
化程序。
[0037]下面该设计方法分别进行说明:
[0038]参见图1,一级代码引导程序:在TI DSP处理器设计中,一般采用外部非易失性存储器(以FLASH为例介绍)加载的方式,即DSP运行的软件代码存储在外部FLASH存储器中。上电或复位后,DSP通过自带的加载引导器(BootLoader)以DMA的方式从某一固定地址处(即外部FLASH空间地址)自动复制IKBytes的数据(本方法为一级代码引导程序代码数据)到DSP片内的内存运行空间中,数据复制完成后,自动跳转到内存首址运行该程序。
[0039]DSP自动引导的IKbytes数据一般不满足应用程序代码容量的要求,因此,实际应用中,利用此IKbytes数据空间存储一级代码引导程序,该程序采用汇编语言编写,用于实现最终应用程序代码复制到DSP内存并跳转到程序入口地址运行的功能。本方案中,最终应用程序包括DSP初始化程序、远程代码传输/接收程序、代码在线解析程序和代码固化程序。。
[0040]DSP初始化程序:DSP初始化程序首先要完成DSP内部、外部资源的初始化及配置管理。初始化工作完成后,根据外部运行/调试态(空中/地面态)信号来决定是加载运行FLASH中存储的应用程序还是在线加载运行程序运行。如果采用在线加载方式,程序通过DSP上指定的外部接口(串口、网口)或专用接口(如FC、RapidIO接口等)接收应用软件代码,再根据状态信号确定进行代码固化还是直接解析运行。
[0041]代码远程传输/接收程序:代码远程传输程序驻留在调试主机端,用于将在主机端DSP开发环境(TI DSP为Code Composer Studio)生成的最终目标程序文件(TI为.0ut格式文件),通过主机或集中加载模块与目标DSP连接的专用接口进行传送。如采用串口、网口传输,则直接可以采用主机自带的通信工具以“文件传输”的方式进行。如果是专用接口(如FC、RapidIO等),需要必要的硬件设备和传输软件支持。代码远程接收程序驻留在DSP上,用于实现代码的接收和校验判别。
[0042]代码在线解析程序:在线解析程序的功能是将在线加载传输的或从FLASH加载的程序代码(.0ut格式)解析为DSP直接可以运行的代码信息。最后自动跳转到程序入口地址运行程序。
[0043]在主机端TI DSP开发环境Code Composer Studio下编译、链接生成程序目标文件为.0ut文件,该.0ut文件可以在连接仿真器的情况下,在Code Composer Studio开发环境下方便加载运行。但是,如果脱离仿真器和开发环境,.0ut不能被DSP识别直接运行。TI提供的方法是利用其专用软件hex6x先将.0ut文件生成多个TI格式的.hex文件,再对.hex文件进行分割合并处理,最后调用另一专用工具软件hexbin将各个.hex文件转换成DSP可以识别运行的二进制文件。这种方式繁琐复杂,容易出错,效率低,灵活性差。
[0044]在线解析程序的功能由DSP完成.0ut文件的解析生成可以运行的文件代码。.0ut文件是一种标准的COFF (Common Object File Format,通用目标文件格式)格式,COFF文件从前至后依次由文件头、可选的文件头、段头信息表、段头信息表对应的段数据、重定位信息、行号入口表、符号表、字符串表组成,其中第3?5项包含多个数据区,前4项与加载文件密切相关。具体可以参考 TI 的 Application Report Common Object File Format(SPRAA08-April 2009)。
[0045]根据.0ut文件的COFF格式结构形式,在线解析程序就是从.0ut文件中依次判另IJ、读取各有效段,并将各段数据信息写到相应地址空间。当所有必需的段数据解析复制完毕后,跳转到程序入口地址运行。
[0046]代码固化程序,将程序运行代码存储固化到外部FLASH存储器中。该软件包和“远程传输程序”结合,可以完成远程程序代码固化功能。固化/运行判别通过外部控制信号完成。调试验证好的程序通过“远程传输程序”在主机端直接加载到DSP,由DSP控制实现代码的FLASH固化和校验。
[0047]在以上所列的驱动程序中,除在线解析程序外,其余程序包会根据具体的设计而不同,因而在介绍中只列出设计思想和控制流程,具体的程序开发需要具体设计。附件中列出了在线解析程序的数据结构和程序代码。
[0048]以下以一个具体的实施例对本发明作进一步说明。
[0049]某信号处理模块由5片TI DSP处理器实现并行信号处理任务,由RapidIO总线组建内部互连通信网络,模块对外采用标准FC协议通信网络,由FC-RapidIO专用芯片实现外部/内部总线的映射。模块上每个DSP对应I路FC通信接口。DSPl处理通路为主控节点链路,其FC接口外部连接大容量存储模块或外部主机,负责DSP的远程代码传输任务。模块上采用2个外部离散控制信号:GSE-空中态(‘ I’)/地面态(‘0’);S0-代码运行(‘ I’)/代码固化(‘O’)。软件的工作流程如下图6所示,模块上各DSP处理器均设置为外部FLASH加载方式运行,在该FLASH的首地址的IKbytes内,存放的是DSP的一级代码引导程序。该一级代码引导程序完成DSP接口使能、PLL初始化、EMIF接口初始化、FLASH程序复制、跳转至程序入口地址运行等工作。
[0050]模块上电工作,各DSP处理器通过自带的加载引导器(BootLoader )加载一级代码弓I导程序并运行,将FLASH中固化的DSP初始化程序、代码接收程序和在线解析程序加载到DSP的内存中。
[0051]一级代码引导程序完成后,运行DSP初始化程序,完成DSP的内部资源,包括EDMA控制器、中断控制、HMER、GP10接口的初始化,完成外部DDR2SDRAM、NvRAM等存储资源的初始化,完成DSP RapidIO接口的初始化和模块上RapidIO交换网络的配置管理,完成DSP对用的FC通信接口的配置管理。
[0052]完成以上初始化工作后,软件判别外部控制信号“GSE”的状态,GSE= ‘I’,空中态,则直接跳转到“代码在线解析程序”,解析运行FLASH中存储的已经加载到DSP内存中的应用程序。GSE= ‘0’,地面态,DSP通过“命令”数据通知大容量存储模块或外部主机,等待接收外部主机或大容量存储模块通过FC专用接口传输的应用程序目标代码。系统内的大容量存储模块或外部主机接收到信号后,运行“代码远程传输程序”,将需要DSP调试运行或固化的代码通过FC接口传输至DSP处理器。目标代码的传输通过“代码运程传输”程序完成。
[0053]需要说明的是,通过大容量存储模块传输,可以实现综合处理系统要求的代码集中加载、运行的要求。如果是运程加载调试,可以采用外部主机以串口、网口等方式传输。
[0054]DSP完成运行代码的接收校验后,判别外部控制信号“S0”的状态,SO= ‘ I’,代码运行,软件控制进入“代码在线解析程序”,解析传输的应用程序代码,运行程序。SO=‘0’,代码固化,软件控制进入“代码固化程序”,直接将接收到的程序代码固化到FLASH存储器内。
【权利要求】
1.一种基于TI DSP的软件远程加载与固化方法,其特征在于:所述方法包括以下步骤:1)汇编语言编写的一级代码引导程序; 2)DSP初始化;3)代码远程传输/接收;4)代码在线解析;5)代码固化。
2.根据权利要求1所述的基于TI DSP的软件远程加载与固化方法,其特征在于:所述步骤I)的具体实现方式是:1.1)系统上电或复位;1.2) DSP处理器通过自带的加载引导器Bootloader以DMA的方式从某一固定地址处自动复制IKBytes的数据到DSP片内的内存空间中;数据复制完成后,自动跳转到内存首址运行;所述某一固定地址是指DSP的外部非易失性存储器的地址;所述IKbytes的数据是汇编语言编写的一级代码引导程序。
3.根据权利要求2所述的基于TI DSP的软件远程加载与固化方法,其特征在于:所述步骤2)的具体实现方式是:2.1)完成DSP内部资源、外部资源的初始化及配置管理;2.2)根据外部运行或调试态信号决定是加载运行FLASH中存储的应用程序还是在线加载运行程序运行;如果采用在线加载方式,通过DSP处理器上指定的外部接口接收应用软件代码,并执行步骤3);如果采用加载运行FLASH中存储的应用程序时,则直接加载运行FLASH中存储的应用程序,并执行步骤4)。
4.根据权利要求3所述的基于TIDSP的软件远程加载与固化方法,其特征在于:所述步骤2.1)中所述的DSP初始化配置包括DSP工作频率配置、中断、DMA初始化、接口初始化以及通信链路的配置管理工作,所述DSP初始化配置是为远程代码接收程序、代码在线解析程序以及代码固化程序的运行提供准备和支持。
5.根据权利要求4所述的基于TI DSP的软件远程加载与固化方法,其特征在于:所述步骤3)的具体实现方式是:将在主机端用DSP处理器开发环境生成的目标程序文件通过主机上的接口或集中加载模块与目标DSP连接的接口进行传送;所述目标程序文件对于TI DSP是.0ut格式文件;所述与目标DSP连接的接口是串口、网口、FC专用接口或RapidIO专用接口 ;所述接口采用串口或网口进行数据传输时,直接采用主机自带的通信工具以文件传输的方式进行数据传输;所述接口采用FC专用接口或RapidIO专用接口时,需要必要的硬件设备和传输软件支持。
6.根据权利要求5所述的基于TI DSP的软件远程加载与固化方法,其特征在于:所述步骤4)中在线解析程序是将通过通信接口在线传输加载的应用程序代码或从FLASH加载的应用程序代码解析为DSP直接可以执行的代码并存储在相对应的DSP运行空间中;最后自动跳转到程序入口地址运行程序。
7.根据权利要求6所述的基于TI DSP的软件远程加载与固化方法,其特征在于:所述步骤4)的具体实现方式是:.4.1)从.0ut文件中依次判别、读取各有效段;.4.2)将各段数据信息写到DSP相应的内存运行空间中;当所有必需的段数据解析复制完毕后,跳转到程序入口地址运行;所述.0ut文件是标准的COFF格式,所述COFF文件从前至后依次由文件头、可选的文件头、段头信息表、段头信息表对应的段数据、重定位信息、行号入口表、符号表、字符串表组成。
8.根据权利要求7所述的基于TI DSP的软件远程加载与固化方法,其特征在于:所述步骤5)的具体实现方式 是:将程序运行代码存储到外部ROM中或FLASH存储器中。
【文档编号】G06F9/445GK103902305SQ201210575407
【公开日】2014年7月2日 申请日期:2012年12月26日 优先权日:2012年12月26日
【发明者】李鹏, 邓豹, 孙靖国, 宋琦, 林木, 亢晓丽 申请人:中国航空工业集团公司第六三一研究所
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!