我想写一个包含数据的位置相对代码。
表示获取printf的绝对地址并打印简单字符串的函数。
我通过使用参数 -fPIC 的 arm-none-eabi-gcc 编译ELF来实现这一目标。 问题是使用 objcopy 将ELF文件转换为平面二进制文件。
objcopy 将字符串放在文件的顶部,从而使数据不再与位置无关,而不是将字符串留在函数的末尾,由程序计数器进行寻址。
我错过了什么吗? objcopy是否可以创建具有位置无关数据的平面二进制文件?
编辑:
可以在附件image中看到字符串位于我的函数上方的绝对地址中,而不是在它的末尾,并由PC指向