Arm 在小端皮层A上运行大端进程

Arm 在小端皮层A上运行大端进程,arm,endianness,cortex-a,Arm,Endianness,Cortex A,假设我在Ubuntu上运行Cortex-A53(ARMv8)。 Cortex-A53使用little-little-endian体系结构,是否可以将程序编译为big-endian并在little-endian系统上运行 谢谢!, 迈克尔不确定,但可能性不大。但是,几乎任何(用户空间)应用程序的编写方式都可以使其完全是endian不可知的,也就是说,不管endian是什么,都可以工作。在C和C++中,典型的端接相关问题可以通过使用适当的位操作和避免某些内存访问结构来解决(一些代码用法:联合,指针转

假设我在Ubuntu上运行Cortex-A53(ARMv8)。 Cortex-A53使用little-little-endian体系结构,是否可以将程序编译为big-endian并在little-endian系统上运行

谢谢!,
迈克尔不确定,但可能性不大。但是,几乎任何(用户空间)应用程序的编写方式都可以使其完全是endian不可知的,也就是说,不管endian是什么,都可以工作。在C和C++中,典型的端接相关问题可以通过使用适当的位操作和避免某些内存访问结构来解决(一些代码用法:<代码>联合<代码>,指针转换和代码> MycPy < /代码>)。我不明白问题:您为给定的微处理器或MCU编译了一个软件。目标的一个特点是持久性,但还有更多。那么,为什么您要在一个小的endian处理器上编译为big endian呢?对于aarch32,我不认为编译,但您可能可以运行一些代码并使用setend,我认为它是所有入口点和出口点上的指令,但也理解在armv4或armv5之后,它切换到字节不变而不是字不变。无法想象为什么要在这个处理器上运行任何big-endian,所以真正的问题是您试图解决的问题是什么。如果您认为在处理某些大端数据时会获得一些性能,请三思,即使它是字不变的。@GuillaumePetitjean一些ARM处理器,如Cortex-A53,在runtume支持在小端和大端之间切换。在AArch64(即64位代码)上,这可以通过
SCTLR_EL1.E0E
位进行配置,我认为只有特权(内核)代码才能访问该位。@Erlkoenig感谢您提供了这种精度,我认为endianness的选择始终是在设计级别进行的。这方面的用例是什么?不确定,但不太可能。但是,几乎任何(用户空间)应用程序的编写方式都可以使其完全是endian不可知的,也就是说,不管endian是什么,都可以工作。在C和C++中,典型的端接相关问题可以通过使用适当的位操作和避免某些内存访问结构来解决(一些代码用法:<代码>联合<代码>,指针转换和代码> MycPy < /代码>)。我不明白问题:您为给定的微处理器或MCU编译了一个软件。目标的一个特点是持久性,但还有更多。那么,为什么您要在一个小的endian处理器上编译为big endian呢?对于aarch32,我不认为编译,但您可能可以运行一些代码并使用setend,我认为它是所有入口点和出口点上的指令,但也理解在armv4或armv5之后,它切换到字节不变而不是字不变。无法想象为什么要在这个处理器上运行任何big-endian,所以真正的问题是您试图解决的问题是什么。如果您认为在处理某些大端数据时会获得一些性能,请三思,即使它是字不变的。@GuillaumePetitjean一些ARM处理器,如Cortex-A53,在runtume支持在小端和大端之间切换。在AArch64(即64位代码)上,这可以通过
SCTLR_EL1.E0E
位进行配置,我认为只有特权(内核)代码才能访问该位。@Erlkoenig感谢您提供了这种精度,我认为endianness的选择始终是在设计级别进行的。这方面的用例是什么?