'AS' align plus incbin 没有产生预期的对齐

'AS' align plus incbin is not producing the expected alignment

由于数据对齐问题,我无法使 my personal project 在真实硬件上运行;由于硬件的工作方式,图像必须按 16 位对齐。

我尝试通过“.align”指令指定对齐方式:

.text
.align 2

.globl _vg_lecturehall
.globl _vg_sylvie_giggle
.globl _vg_club

_vg_lecturehall:
.align 2
.incbin "build/lecturehall.apg"

_vg_sylvie_giggle:
.align 2
.incbin "build/sylvie_giggle.apg"

_vg_club:
.align 2
.incbin "build/club.apg"

但是,从内存映射可以看出,数据仍然放在奇数地址:

 .text          0x000000000200aa00    0x12aac build/generated_images.o
                0x000000000200aa00                _vg_lecturehall
                0x0000000002012d11                _vg_sylvie_giggle
                0x0000000002014f2b                _vg_club

有人知道哪里做错了吗? 有没有办法确保包含的二进制文件位于偶数地址?

您将标签放在 .align 指令之前。在这一点上,没有特定的对齐方式生效——这将取决于前面的 .incbin 生成的字节数是奇数还是偶数。将标签向下移动一行,以便您实际标记包含的数据。