创建ARM平面pic二进制文件

时间:2016-02-07 09:41:08

标签: c gcc arm fpic objcopy

我想写一个包含数据的位置相对代码。

表示获取printf的绝对地址并打印简单字符串的函数。

我通过使用参数 -fPIC arm-none-eabi-gcc 编译ELF来实现这一目标。 问题是使用 objcopy 将ELF文件转换为平面二进制文件。

objcopy 将字符串放在文件的顶部,从而使数据不再与位置无关,而不是将字符串留在函数的末尾,由程序计数器进行寻址。

我错过了什么吗? objcopy是否可以创建具有位置无关数据的平面二进制文件?

编辑:

可以在附件image中看到字符串位于我的函数上方的绝对地址中,而不是在它的末尾,并由PC指向

0 个答案:

没有答案