77范文网 - 专业文章范例文档资料分享平台

TMS320F2812的CMD文件配置详解

来源:网络收集 时间:2020-06-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

DSP芯片以其极高的精度,性能及运算速度等无与伦比的优点使它得到了十分广泛的应用,TMS320F2812是TI公司生产的到目前为止用于数字控制领域的最好的DSP芯片,在对它的仿真开发过程中,编译器生成的代码和数据要由链接器分配到合适的存储空间,通常链接器的命令文件.cmd文件是由用户自己编写的,编写不当,就会使仿真开发不能进行,TI公司虽然在《TMS320C28x Optimizing C/C++ Compiler User’s Guide 6》和《TMS320C28x Assembly Language Tools User’s Guide 6》做了介绍,但内容却比较散乱而且要求读者对整个开发系统要有较全面的认识,这对于初学者来说是比较困难的。下面以TMS320F2812芯片为例,结合具体的仿真调试实例加以说明使大家能够既快速又准确的掌握.cmd文件的分配方法。

1存储空间的配置DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 \

TMS320F2812的DSP存储器分为三个独立选择的空间-程序空间、数据空间和I/O空间,其中程序存储器存放待执行的指令和执行中所用的系数(常数),可使用片内或片外的RAM、ROM或EPROM等来构成;数据存储器存放指令执行中产生的数据,可使用片内或片外

的RAM和ROM来构成;I/O存储器存放与映象外围接口相关的数据,也可以作为附加的数据存储空间使用。表1是TMS320F2812的存储空间分布。 # p5 R) E7 [* E! s 2CMD文件的分配方法

TI公司新的汇编器和链接器创建的目标文件采用一种COFF(通用目标文件格式),该目标文件格式更利于模块化编程,为管理代码段和目标系统存储器提供了强有力和灵活的编程方法。用户可以通过编写链接命令文件(.cmd文件)将链接信息放在一个文件中,以便在多次使用同样的链接信息时调用。在命令文件中使用两个十分有用的伪指令MEMORY和SECTIONS,来指定实际应用中的存储器结构和进行地址的映射。Memory用来指定目标存储器结构,Memory下可以通过PAGE选项配置地址空间,链接器把每一页都当作一个独立的存储空间。通常情况下,PAGE0代表程序存储器用来存放程序,PAGE1代表数据存储器,用来存放数据。由编译器生成的可重定位的代码和数据块叫做

“SECTIONS”(段),SECTIONS用来控制段的构成与地址分配。对于不同的系统配置,“SECTION”的分配方式也不相同,链接器通过“SECTIONS”来控制地址的分配,所以“SECTIONS”的分配就成了配置.cmd文件的重要环节。以下是对“SECTIONS”的定义及分配的详细介绍。www.hellodsp.com3 K/ L; O% T- e: \\( S: L (1)

被初始化的“SECTIONS”(包括数据表和可执行代码) .text它包括所有的可执行代码和常数,必须放在程序页; .cinit它包括初始化的变量和常量表,要求放在程序页;

.pinit它包括全局构造器(C++)初始化的变量和常量表,要求放在程序页;DSP .const它包括字符串、声明、以及被明确初始化过的全局和静态变量,要求放在低地址的数据页;www.hellodsp.com( t5 x1 F\

.econst它是在使用大存储器模式时使用的,包括字符串、声明、以及被明确初始化过的全局变量和静态变量,可以放在数据页的任何地方。DSP交流 .switch它包括为转换声明设置的表格,可以放在程序页也可以放在低地址的数据页。 H2 _$ ?; d9 e$ L: O5 K

(2)未被初始化的“SECTIONS”(为程序运行中创建和存放的变量在存储器中保留空间)9 D3 a. \\' x7 e) m; a' c

.bss它为全局变量和静态变量保留空间。在程序开始运行时,C导入路径把数据从.cinit节复制出去然后存在.bss节中,要求放在低地址的数据页;( I$ .ebss它是在远(far)访问(只用于C)和大存储模式下使用,它为全局变量和静态变量保留空间。在程序开始运行时,C导入路径把数据从.cinit段复制出去然后存在.ebss节中,可以放在数据页的任何地方;DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 0 p, C5 X. s8 ~. K% R+ T

.stack为C系统堆栈保留空间,这部分存储器为用来将声明传给函数及为局部变量留出空间,要求放在低地址的数据页;

.system动态存储器分配保留空间。这个空间用于malloc函数,如果不使用malloc函数,这个段的大小就是0,要求放在低地址的数据页;www.hellodsp.com, T$ ^3 V3 {- H: l) v8 K

.esystem动态存储器分配保留空间,这个空间用于外部malloc函数,如果不使用外部malloc函数,这个段的大小就是0,可以放在数据页的任何地方。

3举例说明.cmd文件的分配方法

以下是仿真调试串行通信接口SCI时的.cmd文件的分配,已经在TMS320F2812仿真调试中得到了很好的应用。9 r& P1 O%u

MEMORY

{PAGE0:www.hellodsp.com* F+ |, p) b4 Q: k3 F /*ProgramMemory*/www.hellodsp.com4 N* u& U+ a8 O RAMH0:origin=0x3F8000,length=0x001000

RAML0:origin=0x008000,length=0x001000# n( a$ D( \\: [7 \\9 B0 e4 _

RAML1:origin=0x009000,length=0x001000DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 \^3 B

ROM:& C2 i3 n+ l' @; F; r3 \\2 f origin=0x3FF000,length=0x000FC0

RESET: origin=\,length=0x000002MDSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 7 V( L& K3 n, G& }

VECTORS:origin=0x3FFFC2,length=0x00003EM' l. b9 e3 M j) F

PAGE1:/*DataMemory*/

RAMM0:origin=0x000000,length=0x000400 RAMM1:origin=0x000400,length=0x000400 RAMH0:origin=0x3F9000,length=0x001000 ,,, }

SECTIONSDSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 8 Z+ I; T\ {/*Allocateprogramareas:*/ .cinit

:>RAMH0) N& [9 u' n( o PAGE=0

.pinit- m. O& K; e, f, E :>RAMH0$ N. ^3 c9 `0 S PAGE=0

.text3 x J8 E/ x) R( `2 y/ l :>RAMH0

PAGE=0: y1 p0 z; `; m m .reset

:>RESET,PAGE=0,TYPE=DSECT1 W! i, C\ Vectors :>VECTORS,PAGE=0,TYPE=DSEC /*Allocateuninitalizeddatasections:*/ .stack) ~7 p* f6 O( d :>RAMM0 PAGE=1

.ebss* V* ~% T7 k\ :>RAMH0 PAGE=1

.esysmem :>RAMH0* S3 M5 r. O0 i. Y2 U% t' B5 _0 K' u PAGE=1

.econst :>RAMM1

PAGE=13 n. M# J# W2 c- k% t& h) } .switch :>RAMM16 C/ e- }9 b( W1 F6 w, A PAGE=1

,,,, [& S* u [0 l

}

为充分利用18k×16位的SARAM,本例将高地址的8k×16位的H0 www.hellodsp.com9 Q\

SARAM区分成两部分,一部分用做存放程序放在PAGE0里,一部分用做存放数据放在PAGE1中以达到合理的分配;对实际仿真调试过程中的外围帧frame0,frame1,frame2等的分配因为篇幅问题就不做具体介绍了。 4查看段的分配及使用情况+ J8 D$ |6 B- `\

在cmd文件中包括各种各样的链接器选项,每种选项代表不同的含义。其中,使用-m选项可以创建一个扩展名为.map的链接器(存储器)分配映射文件,其语法为:-m % s! x2 w' C! p9 C! U7 H

filename(文件名)。链接器的map文件描述以下内容:www.hellodsp.com% n: M8 ]0 }% b! ~ 存储器结构( T3 D& g2 F& Y1 v( p 输入和输出段的定位( Z P, t' h% B* b 在重新定位后外部符号的地址

DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 3 B/ b7 }; {* d/ H9 L- f' X3 }

通过map文件可以查看各段的分配情况,包括段的起始地址,使用的字节数等配合cmd文件的使用,可确定各个段的使用情况,从而保证程序的正常运行和最小的空间使用。

5 VisualLinker可视化链接器

TI公司出品的DSP软件开发环境CCS还提供了一种可视化生成存储器配置文件的工具:VisualLinker可视化链接器。如果程序原来包含了一个链接器命令文件(.cmd文件),则当创

建可视化链接文件的时候,原来cmd文件中的内存配置仍然会被使用。如果读者想修改内存配置,双击.rcp文件就会在CCS中打开可视化链接器的图形界面,调整每个内存模块的大小,直到认为合适,然后只需要重新连编,程序即可生成新的输出文件,重复上面的步

骤,直到出现满意的结果。 6总结

不同的DSP芯片内集成的存储器大小各异,但其配置方式是类似的。大家可通过查阅DSP芯片的数据手册,了解芯片内部存储空间大小。在实际的配置过程中,可根据开发程序的实际代码,正确的划分程序和数据空间中各段的大小,使其空间配置达到最优。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库TMS320F2812的CMD文件配置详解在线全文阅读。

TMS320F2812的CMD文件配置详解.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1086530.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: