电子工程师技术服务社区
- 社区首页
- 下载
- 以太网原理及技术基础.doc
资料描述
dsp技术中,coff文件中的段是怎么个概念?怎么理解?在程序运行时候有什么具体作用?
coff目标文件文件包含:(1)text段:可执行代码段 (2)data段:已初始化数据段(3)bss段:未初始化数据的保留空间段
段分为两类:已初始化段 (initialized sections)和未初始化段(uninitialized sections)。以下是常用的一些段(不全):
“.vectors” , 表示“中断向量段”
“.text” , 编译后生成的二进制指令代码段
“.cinit”段,“对全局变量和静态变量初始化的常数” 。
“.bss” ,“保存全局变量和静态变量”,它属于“未初始化的”段,
“.stack”,堆栈,它属于“未初始化的”段,定位在数据空间。
“.extdata”,用户自定义的段, 属于“未初始化的”
段的概念不只是在dsp中有,很多嵌入式编程中都有。
简单理解的话就是把一段程序拆分成不同的部分,然后在按照设定的要求分别运行在不同地址的内存单元中。
以ti为吧,ccs工程中的cmd文件就是把不同的段定位到内存的不同地址处,段有很多分类,比如代码段、数据段,初始化段等等吧
单片机中的类似于段的内容:
code:程序存储区。
data:固定指前面0x00-0x7f的128个ram,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个ram,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似c中的指针方式访问的。汇编中的语句为:mox acc,@rx.(不重要的补充:c中idata做指针式的访问效果很好)
xdata:外部扩展ram,一般指外部0x0000-0xffff空间,用dptr访问。
pdata:外部扩展ram的低256个字节,地址出现在a0-a7的上时读写,用movx
acc,@rx读写。这个比较特殊,而且c51好象有对此bug,建议少用。