首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
COFF文件分析提取器的实现及其应用
来源:本站整理  作者:佚名  2009-04-24 10:58:15




    文件头中的标记包含了诸如大小端模式、COFF是否为可执行文件等信息,具体解释见参考文献。
    (2)可选头:可选头接在文件头的后面,也就是从COFF文件的Ox0014偏移处开始。长度可以为O。不同平台的可选头,长度和结构都不相同,TI DSP采用的可选头长度为28 B,用C的结构描述如下:

   

   
    (3)段头:段头紧跟在可选文件头的后面(如果可选文件头的长度为0,它紧跟在文件头后),一般COFF包含多个段头,数目就是文件头中的usSection—Counter。它的长度为48 B,用C的结构描述如下:

   
    段头可以说是最重要的头,文件分析提取器的核心就是用它来描述它的。一个COFF文件可以不要其它的节,但文件头和段头这两节是必不可少的。有必要详述一下它的成员:
    cName用来保存段名,常用的段名有.text,.da—ta,.bss等。对于用户自定义长度超过8 B的段名,则为指向符号表的指针。
    uiVirtAddr是段数据载入或连接时的虚拟地址。对于可执行文件,这个地址是相对于它的地址空间而言。当可执行文件被载入内存时,这个地址就是段中数据的第一个字节的位置。大多数情况下与uiPhyAddr相同。
    uiSecSize是段中数据的实际长度,在读取段数据时就由它来确定要读多少字节。
    uiSecPointer是段数据在COFF文件中的偏移量,以绝对地址标识。
    uiRelPointer是该段重定位信息的绝对地址,它指向了重定位表的1个记录。
    uiLNOffset是该段行号表的绝对地址,它指向的是行号表中的1个记录。
    uiRelSize是重定位信息的记录数,从uiRelPointer指向的记录开始,到第ulNumRel个记录为止,都是该段的重定位信息。
    uiLNSize和uiRelSize相似,不过它是行号信息的记录数。
    uiFlags是该段的属性标识,与下载相关的标识如表1所示。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:264,574.20000 毫秒