obj-copy忽略了一些填充

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了obj-copy忽略了一些填充相关的知识,希望对你有一定的参考价值。

我在手臂obj-copy中遇到了一个奇怪的问题。我做错了什么或者我遇到过错误?

我想用零填充我的图像到0x1000(4096)对齐,我通过下面的链接脚本进行填充。问题是obj-copy不复制整个填充,由于某种原因它停在0x400。

我已经使用objdump来评估我的部分,它似乎是正确的大小填充到0x1000。

为什么在使用0x1000填充的情况下,我的二进制的hexdump没有正确填充?我使用objcopy以下方式创建我的二进制文件:

 /usr/local/armhf/r27/bin/arm-axis-eabi-objcopy -I elf32-little -O binary myobj.o myobj.bin

objdump的:

.fill         0000080c  009117f4  009117f4  000117f4  2**0
              CONTENTS, ALLOC, LOAD, DATA

009117f4 l    d  .fill  00000000 .fill
00912000 g       .fill  00000000 __Eloadimg

链接脚本:

__Edata = .;

.fill :
{
  FILL(0x00000000);
  BYTE(0x00);
  . = ALIGN(0x1000);
}

__Eloadimg = .;
答案

我发现错误,这是我的。在我的链接器脚本中评估所有计算后,我发现MEM_START是0x905c00,这使得二进制的hexdump在0x1000对齐的情况下看起来不对齐。

以上是关于obj-copy忽略了一些填充的主要内容,如果未能解决你的问题,请参考以下文章

在一些片段之间填充对象变量的最佳方法

在哪里以及如何使用片段填充我的标签

nginx.conf 忽略了 nginx-ingress 配置映射片段

Chrome 忽略 style.css 中的列表样式和填充

Android Place自动填充片段:无法设置文字

使用 json rereiver php mysql 在片段中填充列表视图