'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
生成的字节数是奇数还是偶数。将标签向下移动一行,以便您实际标记包含的数据。
由于数据对齐问题,我无法使 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
生成的字节数是奇数还是偶数。将标签向下移动一行,以便您实际标记包含的数据。