当前位置: 首页 > 范文大全 > 公文范文 >

TMS320C54x系列DSP应用初探

时间:2022-03-24 09:22:35  浏览次数:

【摘要】本文介绍了TMS320C54x系列DSP的存储结构,详细讨论了存储器和存储空间的映射关系,分析了存储空间的配置方法,并结合实例给出了C5410型DSP的存储器映射关系和链接配置文件。

【关键词】DSP;存储器;存储空间;映射;链接配置文件

1.引言

根据应用设计的需求,对DSP可用存储空间的分析和配置是开发过程的第一步,也是设计者需要考虑的关键问题,因此,存储空间分配的好坏不仅关系到开发设计的成败,而且反映了一个DSP程序员的水平和经验。对于DSP,我们总是遇到这样的两个名词,存储器(RAM、ROM、EPROM和FLASH等)和存储空间(程序存储空间、数据存储空间和I/O存储空间)。而这两个名词又总是阻碍着DSP设计者前进的脚步,使之望而却步。为此,本文首先探讨存储器和存储空间的映射关系的问题。同时,由于DSP的广泛应用,程序代码不断地增大,这就涉及到本文要探讨地第二个问题,如何合理地配置DSP的存储空间,使之更好地利用DSP地内部资源,并以C5410型DSP为例,给出了存储空间配置的CMD文件。

2.C54x系列DSP的存储结构

C54x系列DSP一般有192K字的存储空间,分为三个相互独立可选择的空间:64K字的程序存储空间、64K字的数据存储空间和64K字的I/O存储空间[1]。其中程序存储空间存放待执行的指令和执行过程中所需要的系数表(数学用表,常数),可使用片内或片外的RAM、ROM或FLASH等来构成;数据存储空间存放指令执行过程中产生的数据,可使用片内或片外的RAM和ROM来构成;I/O存储空间提供与外部存储器映射的接口,也可以作为外部数据存储空间使用。

C54x系列DSP片内都有随机存储器(RAM)和只读存储器(ROM),而RAM又分为两种类型:DARAM(双访问RAM,每个机器周期可以访问2次)和SARAM(单访问RAM,每个机器周期只能访问1次)。

3.存储器和存储空间的映射关系

3.1 片内存储器映射

针对存储器和存储空间两个不同的概念,本节详细分析C54x系列DSP的片内存储器的映射关系。

C54x通过处理器工作方式的状态寄存器(PMST)中的3个状态位,来选择片内存储器作为程序空间或数据空间。这3个状态位是:

(1)MP/MC位,决定是否使能片内ROM。MP/MC=0,片内ROM使能,映射到程序空间;MP/MC=1,则片内ROM不使能,此时将不会用到DSP的自引导程序。系统仅在复位时采样一次MP/MC引脚,并将引脚值传递给MP/MC位,而复位后便可通过软件设置MP/MC位来禁止或使能片上ROM。在使用仿真器开发程序时,需要将MP/MC置为1,此时DSP处于微处理器方式,应用程序通过TI公司的DSP开发软件CCS(Code Composer Studio)在线写入程序存储区;在DSP脱机运行时,需要将MP/MC清0,此时DSP处于微计算机方式,DSP在上电或复位后,其片内ROM中的自举加载程序将会首先自动运行,将用户程序代码移入程序空间后,再将控制权交给用户代码[3]。

(2)OVLY位。OVLY=1,则片内RAM映射到程序和数据空间,程序在RAM中运行;OVLY=0,则片内RAM只映射到数据存储空间,此时可用一个外部FLASH映射到程序空间,程序可在其中运行。显然这种方式不如程序在片内RAM中执行速度快。

(3)DROM位。对于不同型号的DSP,DROM代表不同的意义。C542、C543、C548片内只有2K字ROM,如前所述这2K字的内容是由TI公司定义的,不可修改,也不能用作用户程序区和数据区,因此DROM位对此类器件并无影响。对C541、C545、C546、C549、C5402而言,DROM位决定片内的ROM是否部分映射到数据空间:DROM=1,部分片内ROM映射到数据空间;DROM=0,片内ROM不映射到数据空间。而对C5410、C5416、C5420(无片内ROM)而言,片内ROM并不映射到数据空间,此时DROM位决定数据空间的高32K字是由片内的RAM构成还是由片外的RAM构成:DROM=1,片内排列的第二组32K字(片内RAM的排列是先排DARAM,再排SARAM,32K为一组。

3.2 程序存储空间的分页扩展

程序设计者可根据片内存储器的大小和不同的应用需求,相应地配置这3个位,使系统的存储空间满足应用要求。但是由于程序代码的不断增长,64K的程序空间已不能满足需要,所以C54x系列DSP从C548开始,地址线增加到了23根(C5402为20根,C5420为18根),具有8M字的寻址空间(引入了页的概念,每页64K字),为此还增加了一个额外的存储器映像寄存器程序计数器扩展寄存器XPC(当前程序空间地址的高7位),以及6条寻址扩展程序空间的指令。

4.存储空间的配置

4.1 简单分析

在这里,我们以TMS320C5410为例介绍如何配置存储空间。C5410片内有16K字ROM,8K字DARAM和56K字SARAM。由于片内ROM的不易修改性和RAM的掉电易失性,因此外加一个64K字的FLASH存储器(映射到程序空间),用来存储用户程序和引导程序。自己编写上电引导程序,并和用户程序代码一起烧写到位于程序空间的FLASH中

4.2 CMD文件的编写

汇编器和链接器产生的目标文件采用COFF(Common Object File Format)公共目标文件格式,代码和数据块是按段(Section)来组织和存储的,便于模块化编程。链接器的作用是将由汇编器产生的OBJ文件(目标文件)作为输入块,将相应的段结合在一起产生可执行的输出模块,并将输出的段分配到存储器中的指定地址[5]。完成这个任务的是CMD文件(链接器配置文件或链接命令文件),简称为命令文件。其中关键是MEMORY和SECTIONS两个伪指令的使用。

CMD文件由3部分组成:

①输入/输出文件定义:.obj文件:链接器要链接的目标文件;.lib文件:链接器要链接的库文件;.map文件:链接器生成的存储器映射文件;.out文件:链接器生成的可执行代码文件;

②MEMORY命令:配置目标存储器,建立模型;

③SECTIONS命令:根据这个模型来安排各个段的存放位置。

按照上节例子,程序中需要定义了四个基本的段,段名分别取为“.text”、“.vectors”、“.boot”和“.table”,它们的内容分别对应于用户程序、中断向量表、上电引导程序和引导表。烧写程序完成把四个段的内容烧写到FLASH存储器中。另外,还有“.bss”、“.data”和“.stack”,它们的内容分别对应于未初始化的变量、初始化的数据和堆栈段。本例中,假设“.text”段的长度位1000H,它被烧写到FLASH中从08000H开始的存储单元,上电后将被加载到程序空间中从2000H开始的存储单元中。

5.结束语

随着DSP应用领域的不断拓广,程序代码的不断增加,使得存储空间的配置显得越来越重要。根据开发需求选择合适的DSP芯片,并加以扩展的片外存储器,正确地划分程序和数据空间中各段的大小,合理地配置存储空间,将使空间利用率大大提高。

参考文献

[1]支长义,程志平,陈书立.等.DSP原理及开发应用[M].北京航空航天大学出版社,2010.8.

[2]胡海鹏,魏丰.TMS320C54X系列DSP存储空间的配置方法研究[J].电测与仪表,2012年第6期.

推荐访问: 初探 系列 TMS320C54x DSP