obj-copy 忽略了一些填充
obj-copy ignores some padding
我在 arm obj-copy 中遇到了一个奇怪的问题。我是做错了什么还是遇到了错误?
我想用零填充我的图像,直到 0x1000 (4096) 对齐,我通过下面的 link 脚本进行填充。问题是 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
对象转储:
.fill 0000080c 009117f4 009117f4 000117f4 2**0
CONTENTS, ALLOC, LOAD, DATA
009117f4 l d .fill 00000000 .fill
00912000 g .fill 00000000 __Eloadimg
link 脚本:
__Edata = .;
.fill :
{
FILL(0x00000000);
BYTE(0x00);
. = ALIGN(0x1000);
}
__Eloadimg = .;
我发现了错误,这是我的错误。在我的链接器脚本中评估所有计算后,我发现 MEM_START 是 0x905c00,这使得二进制的 hexdump 在 0x1000 对齐的情况下看起来不对齐。
我在 arm obj-copy 中遇到了一个奇怪的问题。我是做错了什么还是遇到了错误?
我想用零填充我的图像,直到 0x1000 (4096) 对齐,我通过下面的 link 脚本进行填充。问题是 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
对象转储:
.fill 0000080c 009117f4 009117f4 000117f4 2**0
CONTENTS, ALLOC, LOAD, DATA
009117f4 l d .fill 00000000 .fill
00912000 g .fill 00000000 __Eloadimg
link 脚本:
__Edata = .;
.fill :
{
FILL(0x00000000);
BYTE(0x00);
. = ALIGN(0x1000);
}
__Eloadimg = .;
我发现了错误,这是我的错误。在我的链接器脚本中评估所有计算后,我发现 MEM_START 是 0x905c00,这使得二进制的 hexdump 在 0x1000 对齐的情况下看起来不对齐。