Я пытался скомпилировать следующий код для системы ARM BE8 (выполнение кода с прямым порядком байтов с доступом к данным с прямым порядком байтов).
Мой код выглядит следующим образом:
.global main
.type main, %function
main:
ldr pc, =0x12345678
Ожидаемый вывод:
04 f0 1f e5 <- little endian opcode
12 34 56 78 <- big endian data
Я использую Makefile, сначала пытаюсь скомпилировать, используя:
arm-unknown-linux-musleabi-gcc main.S -o main.o -mbig-endian -mbe8
Затем, связывая используя:
arm-unknown-linux-musleabi-ld main.o -o main -mbig-endian
но двоичный вывод main
содержит код с прямым порядком байтов вместо небольшого.
При попытке связать с помощью:
arm-unknown-linux-musleabi-ld main.o -o main -mbig-endian -mbe8
Я получаю следующую ошибку:
... is already in final BE8 format