一种DSP片外代码动态加载方法及装置与流程

文档序号:11949706阅读:485来源:国知局

本发明涉及嵌入式计算机处理控制领域,尤其是一种DSP片外代码动态加载方法及装置。



背景技术:

DSP是电子设备中经常使用的一种嵌入式微处理器芯片,常用于系统控制和数字信号处理领域,其特点是时钟主频高、运算速度快,在典型的应用中,使用FLASH或EEPROM作为代码存储器,将执行代码烧入其中,上电后可自动加载运行。由于功能扩展,DSP芯片内部代码存储空间(DSP片内代码容量限制)有限,因此超过DSP芯片容量的代码无法正常运行的,此限制大大影响了此类DSP的应用范围。



技术实现要素:

本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种DSP片外代码动态加载方法及装置。通过设置SRAM配合DSP进行 解决了代码大小超过DSP片内容量大小时,程序无法运行的问题,大大扩展了DSP的使用范围和使用场合,可以实现超长代码的混合加载和运行。

本发明采用的技术方案如下:

一种DSP片外代码动态加载方法包括:

步骤1:仿真器将预装文件通过仿真器下载到DSP及DSP外部缓存SRAM中,则DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储超过DSP芯片内部代码存储空间容量限制的代码段;

步骤2:仿真器将DSP片内代码存储区存储的代码段、DSP片内数据区存储的数据以及DSP外部缓存SRAM中存储的代码段分别存储为3个文件;

步骤3:通过拼接模块将上述3个文件中进行拼接,然后仿真器将拼接后文件烧入EEPROM,去除仿真器;

步骤4:下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP片内代码存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。

进一步的,步骤3中将上述3个文件中进行拼接具体是,通过任意拼接软件将DSP片内数据区存储的数据存入以DSP片内代码存储区存储的代码段结尾处为开始的地址中;DSP外部缓存SRAM中存储的代码段存入以DSP片内数据区存储的数据结尾处未开始的地址中。

进一步的,所述DSP片内代码存储区存储代码段的大小为DSP芯片容量;所述DSP片内代码存储区存储代码段包括DSP片内第一代码段和Bootloader代码段。

进一步的,所述DSP片内数据区存储数据用于进行数据存储。

一种DSP片外代码动态加载装置包括:

仿真器,用于将预装文件通过仿真器下载到DSP及DSP外部缓存SRAM中,则DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储超过DSP芯片内部代码存储空间容量限制的代码段;仿真器将DSP片内代码存储区存储的第一代码段、DSP片内数据区存储的数据以及DSP外部缓存SRAM中存储的代码段分别存储为3个文件;通过拼接模块将所述3个文件中进行拼接,然后仿真器将拼接后的数据烧入EEPROM;

EEPROM,用于下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP芯片存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。

进一步的,数据处理模块将所述3个文件中进行拼接具体是:通过将DSP片内数据区存储的数据存入以DSP片内代码存储区存储的代码段结尾处为开始的地址中;DSP外部缓存SRAM中存储的代码段存入以DSP片内数据区存储的数据结尾处未开始的地址中。

进一步的,所述DSP片内代码存储区存储代码段的大小为DSP芯片容量;所述DSP片内代码存储区存储代码段包括DSP片内第一代码段和Bootloader代码段。

进一步的,所述DSP片内数据区存储数据用于进行数据存储。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

使用此方法及装置解决了代码大小超过DSP片内容量大小时,程序无法运行的问题,大大扩展了DSP的使用范围和使用场合,可以实现超长代码的混合加载和运行。在TI6701的DSP上实现了128KB的代码的运行。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

一、本发明相关说明:

1、预装文件是厂家预装的数据,用户的工程由编译器编译后生成的下载文件。

2、DSP外部缓存SRAM中存储代码段作用是:是整个代码的一部分,是超过DSP芯片内部代码存储空间的那一部分代码。DSP运行中,要随时去读SRAM中的这部分代码。

3、其中DSP片内第一代码段和是Bootloader代码是存满DSP芯片内部代码存储空间的两部分代码。Bootloader 是一段汇编的代码,用于将eeprom中不同段数据的拷贝到不同的存储器中。

4、拼接模块指的是任意的拼接软件。

工作过程是:

1.连接仿真器,由DSP软件开发环境(即CCS)对工程代码进行编译,生成out文件;

2.由仿真器将OUT文件通过仿真器下载到目标板上(目标板是一块电路板,上面有dsp,sram等器件和电路);

3.通过仿真器保存三个文件,分别是DSP片内代码存储区存储代码段文件/ DSP外部缓存SRAM中存储代码段文件(存储在sram中的) / DSP片内数据区存储数据文件;

4.拼接模块将这三个文件拼接为一个文件;

5. 通过仿真器将拼接的这一个文件的内容烧写到eeprom中;

6.去掉仿真器,加电后,代码加载到dsp片内和sram中,数据加载到dsp片内,程序加载成功,开始运行。

实施例一:

以TI公司的6701 DSP芯片为例,芯片容量限制为64KB,实际代码容量约为63KB,用于存放bootloader加载代码的空间设置为1KB。

首先使用数据模块(仿真器)将预装文件下载到DSP及DSP外部缓存SRAM中,此时预装文件各段的代码和数据已经装入各自分配的地址空间中(DSP片内代码存储区存储代码段,DSP片内数据区存储数据;同时DSP外部缓存SRAM中存储代码段);

然后分别将DSP片内代码存储区存储代码段(起始地址0,长度64KB),DSP外部缓存SRAM中存储代码段(起始地址0x2000000,长度0xdda0),DSP片内数据区存储数据(起始地址0x8000000,长度为0x232a)分别存为3个文件,将这3个文件拼接起来,即可作为烧入EEPROM或FLASH的二进制代码;

最后,下一次上电后,通过EEPROM将拼接后的文件中DSP外部缓存SRAM中存储代码段拷贝到SRAM指定地址进行存储;通过EEPROM将拼接文件中DSP片内代码存储区存储的代码段拷贝到DSP芯片存储区内;同时通过EEPROM将拼接文件中DSP片内数据区存储的数据段拷贝到DSP数据区内。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

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