【发布时间】:2021-12-14 01:34:51
【问题描述】:
我一直在为具有基于 ARM 的 NXP i.MX28 单核 CPU 的旧设备开发代码。该设备运行嵌入式 Linux。
我现在正在升级到更好的设备,它具有 NXP i.MX6UL 四核处理器,当然也是基于 ARM 的,并且还运行嵌入式 inux。
我用于构建 i.MX28 代码的相同工具链是否也适用于 i.MX6UL,即使 i.MX6UL 更先进,具有更多内核等,这是否正常?
我现在已经构建了我的代码以使用相同的编译器进行测试,甚至在似乎运行正常的 Rasberry Pi 上运行它。 Rasberry Pi 使用带有 ARM Cortex-A72 处理器的 Broadcom BCM2711 SoC,这又是一个不同的 CPU。
因此我必须问,任何 ARM 工具链都可以构建代码并能够在任何类型的 ARM 设备上运行吗?
【问题讨论】:
-
编译/链接后,您会从标准化指令集中获得一堆指令。在您的情况下,指令集是 aarch32。只要您不要求特定 SoC 上可能存在或不存在的可选扩展(如 Neon、Crypto),为什么会有差异?
-
@user3124812 i.MX28 是单核而 i.MX6UL 是四核这一事实,这会对指令等产生影响吗?
-
请在您的问题中说明您是在为 Linux 编写和构建软件,还是它是一个简单的实现(没有操作系统)。这对于您的问题和答案至关重要。
-
“这会对说明产生影响吗” - 当然不会。
标签: arm cross-compiling imx6 nxp-microcontroller gnu-toolchain