cmd文件 c语言的段,对于TMS320F2812的CMD文件的理解

1.COFF格式

要谈CMD文件,首先不可避免的要谈下COFF格式,COFF格式是通用目标文件格式(Common Object File

Format)的缩写,它是一种流行的二进制可执行文件格式,在DSP里二进制可执行文件包括库文件(.lib)、目标文件(.obj)和最终可执行文件(.out)。详细的COFF格式文件包括段头、可执行代码、初始化数据、可重定位信息、行号入口、符号表、字符串。对于DSP的C语言编程我们只需要了解定义段和给段分配空间即可。采用COFF格式更利于我们对其进行模块化编程,我们可以自由的把哪些段分配到哪些空间。

2.Section

(1)其次,在编写CMD文件得时候要碰到SectionS命令,SectionS命令的英文理解就有区域的意思,我们利用SectionS来将目标文件的代码放到指定的区域中。SectionS目标文件中最小的单位我们称之为块,一个块就是最终在存储器映像中占据连续空间的一段代码或者数据。COFF文件格式默认有三个块:

.text 存放可执行代码;

.data 存放已初始化数据;

.bss 为未初始化数据留下的保留空间。

(2)汇编器对块的处理和设置

未初始化块的设置:

.bss 变量存放空间;

.usect 用户自定义的未初始化段;

初始化块的设置:

.text 汇编指令代码

.data 常数数据(比如对变量的初始化数据)

.sect 用户自定义的已初始化段

.asect 类似于.sect,多了绝对地址定位功能,一般不用

(3)C语言对块得的设置和处理

未初始化块(data)

.bss 存放全局和静态变量

.ebss 长调用的.bss(超过了64K地址限制)

.stack 存放C语言的栈

.sysmem 存放C语言的堆

.esysmem 长调用的.sysmem(超过了64K地址限制)

初始化块

.text 可执行代码和常数(program)

.switch switch语句产生的常数表格(program/低64K数据空间)

.pinit Tables for global constructors (C++)(program)

.cinit 用来存放对全局和静态变量的初始化常数值(program)

.const 全局和静态的const变量初始化值和字符串常数,(data)

.econst 长.const(可定位到任何地方)(data)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值