4.3_COFF的一般概念.ppt

  • 浏览量:1087
  • 下载量:0
  • 资料大小:0 B
  • 日期:2015-11-23
  • 上传者:Eagleson
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    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,建议少用。
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换