小编Tal*_*ria的帖子

如何在 ELF 中解释 .ARM.attributes 中的数据以获取体系结构版本和其他属性?

我最感兴趣的是提取体系结构版本,即 v5、v5T 等。我一直在参考Elf 的 ARM 体系结构部分 4.3.6 构建属性,这有助于我达到这一点。我可以找到.ARM.attributes部分的开头,并且可以解析信息的第一个关键部分:Format-version,Section-length和vendor-name + null byte,没问题。在那之后我有点失落。下面是我在为 ARMv5T 架构hexdump -vC编译的精灵上运行的快照arm-linux-gnueabi-gcc -march=armv5t -O myprog.c -o myprog。该部分的开头是 77f0b。

在此处输入图片说明

我们可以看到: Format-version: A

段长度:0x29

供应商名称:“aeabi”

显然,5T 在 77f1C 以 ASCII 形式提供,但我不确定如何解释我需要解析以获得该值的标签。

注意:是的,我知道我可以使用一些工具来执行此操作,但我需要在我正在编写的应用程序中提取信息。它已经解析了必要的信息,以使其走到这一步。

额外问题:PowerPC 是否有类似的标签?我找不到任何支持文档。

arm elf eabi

4
推荐指数
1
解决办法
3007
查看次数

具有头文件头文件的缺点是什么?

我进入了一个项目,该项目采用了一个头文件的方法,MyProject.h该文件包含每个.c文件的所有头文件.每个.c文件都有自己的头文件#include "MyProject.h",无论需要什么库,还有文件所需的任何其他声明.

对我来说,这似乎是多余的,有点不自然,但它编译并随后按预期运行.我的想法是编译器会做更多的工作而不是必要的,并且可能会使.exe过度膨胀.这样做的缺点是什么?

我接下来的一个问题就是说,我使用上面的例子在一个文件中包含了一个像Time.h这样的库.由于MyProject.h,编译器是否只将Time.h构建到二进制文件或现在的每个文件中?结构,枚举等怎么样?

c

0
推荐指数
1
解决办法
277
查看次数

标签 统计

arm ×1

c ×1

eabi ×1

elf ×1