c – ELF文件格式
发布时间:2020-12-16 09:28:29 所属栏目:百科 来源:网络整理
导读:我正在尝试手动将使用g编译的elf文件的hexdump加载到我设计的处理器模拟中.标准elf文件有30个部分,我正在加载所有30个段,并考虑到它们正确的内存位置偏移.然后我在.text部分(00400130)的开头启动我的程序计数器,但似乎程序运行不正常.我使用SPIM作为黄金标准
我正在尝试手动将使用g编译的elf文件的hexdump加载到我设计的处理器模拟中.标准elf文件有30个部分,我正在加载所有30个段,并考虑到它们正确的内存位置偏移.然后我在.text部分(00400130)的开头启动我的程序计数器,但似乎程序运行不正常.我使用SPIM作为黄金标准,相对彻底地验证了我的处理器设计.奇怪的是,如果我将一个汇编文件加载到SPIM中,然后获取由软件生成的反汇编的.text和.data部分,将它们加载到我的处理器内存中,程序就可以工作了.这与我想做的不同,因为我想:
>写一个c程序 我最初应该在ELF文件中放置程序计数器的位置?我现在就在.text的开头.另外,我只需要包含.text和.data才能使我的程序正常工作吗?我在这做错了什么? 解决方法
ELF头应包括入口地址,该地址不一定与.text区域中的第一个地址相同.使用objdump -f查看文件的入口点是什么 – 它将被称为“起始地址”.
格式描述为here – 您应该使用程序头而不是用于将ELF图像加载到内存中的节头(我怀疑有30个程序头),并且入口点将由ELF中的e_entry字段描述头. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |