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。tms320c54x由于片内ROM的不易修改性和RAM的掉电易失性,因此外加一个64K字的FLASH存储器(映射到程序空间),用来存储用户程序和引导程序。自己编写上电引导程序,并和用户程序代码一起烧写到位于程序空间的FLASH中
4.2 CMD文件的编写

汇编器和链接器产生的目标文件采用COFF(Common Object File Format)公共目标文件格式,代码和数据块是按段(Section)来组织和存储的,便于模块化编程。链接器的作用是将由汇编器产生的O文件(目标文件)作为输入块,将相应的段结合在一起产生可执行的输出模块,并将输出的段分配到存储器中的指定地址[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期.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-25630-2.html
然而后边那女的是几个意思