- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TMS320F2812的CMD文件配置详解
TMS320F2812TMS320F2812 的的CMDCMD文件配置详解文件配置详解
TMS320F2812TMS320F2812 的的CMDCMD 文件配置详解文件配置详解
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、存储空间的配置
TMS320F2812 的 DSP 存储器分为三个独立选择的空间-程序空间、数据空间
和 I/O 空间,其中程序存储器存放待执行的指令和执行中所用的系数(常数),可使
用片内或片外的 RAM、ROM 或 EPROM 等来构成;数据存储器存放指令执行中产
生的数据,可使用片内或片外的 RAM 和 ROM 来构成;I/O 存储器存放与映象外
围接口相关的数据,也可以作为附加的数据存储空间使用。表 1 是 TMS320F2812
的存储空间分布。
2、 CMD 文件的分配方法
公司新的汇编器和链接器创建的目标文件采用一种 COFF(通用目标文件格
式),该目标文件格式更利于模块化编程,为管理代码段和目标系统存储器提供
了强有力和灵活的编程方法。用户可以通过编写链接命令文件(.cmd 文件)将链接
信息放在一个文件中,以便在多次使用同样的链接信息时调用 。在命令文件中使
用两个十分有用的伪指令 MEMORY 和 SECTIONS ,来指定实际应用中的存储器结
构和进行地址的映射 。Memory 用来指定目标存储器结构,Memory 下可以通过
PAGE 选项配置地址空间,链接器把每一页都当作一个独立的存储空间。通常情
况下,PAGE0 代表程序存储器用来存放程序,PAGE1 代表数据存储器,用来存放
数据 。由编译器生成的可重定位的代码和数据块叫做 “SECTIONS ”(段),SECTIONS
用来控制段的构成与地址分配 。对于不同的系统配置,“SECTION ”的分配方式也
不相同,链接器通过 “SECTIONS ”来控制地址的分配,所以 “SECTIONS ”的分配
就成了配置.cmd 文件的重要环节 。以下是对 “SECTIONS ”的定义及分配的详细
介绍 。
(1)被初始化的 “SECTIONS ”(包括数据表和可执行代码)
.text 它包括所有的可执行代码和常数,必须放在程序页;
.cinit 它包括初始化的变量和常量表,要求放在程序页;
.pinit 它包括全局构造器(C++)初始化的变量和常量表,要求放在程序页;
.const 它包括字符串、声明、以及被明确初始化过的全局和静态变量,要求
放在低地址的数据页 ;
.econst 它是在使用大存储器模式时使用的,包括字符串、声明、以及被明确
初始化过的全局变量和静态变量,可以放在数据页的任何地方 。
.switch 它包括为转换声明设置的表格,可以放在程序页也可以放在低地址的
数据页 。
(2 )未被初始化的 “SECTIONS ”(为程序运行中创建和存放的变量在存储器中保
留空间)
1
.bss 它为全局变量和静态变量保留空间。在程序开始运行时,C 导入路径把
数据从.cinit 节复制 出去然后存在.bss 节中,要求放在低地址的数据页 ;
文档评论(0)