我听说ARM处理器可以在小端和大端之间切换。处理器需要这个做什么?它在Android手机上使用吗?
发布于 2019-05-03 17:19:38
根据处理器的不同,可以动态切换字节序。较老的处理器将在一个字节序状态下启动,并预计将停留在那里。在后一种情况下,整个设计通常设置为大端或小端。
支持混合字节顺序操作的主要原因是支持网络堆栈,其中被操作的底层数据集是本机高字节顺序的。这对于交换机/路由器和移动基站来说意义重大,其中处理器正在运行定义明确的软件堆栈,而不是作为通用应用程序设备运行。
请注意,在不同的ARM体系结构中有几种不同的大端行为实现,您需要检查这在任何特定核心上是如何工作的。
发布于 2019-05-03 14:25:00
您可以切换字节序,但在操作系统启动并运行后,您不会这样做。这只会把事情搞砸。如果你打算这么做,你应该在启动序列的早期就这么做。当你的应用程序运行时,字节顺序已被选择并且不会被改变。
你为什么要这么做?唯一真正的原因是,如果您正在编写必须处理大量低端数据的嵌入式软件,或者运行一个假定低端数据且未固定为低端不可知的程序。这种类型的数据往往来自以原生字节顺序(x86是小端)写出内容的x86应用程序。没有太多其他的理由去做了。您将看到ARM几乎完全以大端模式运行。
https://stackoverflow.com/questions/55963736
复制相似问题