繁体   English   中英

所有 ARM 编译器都会生成相同的汇编代码并在各种 CPU 上运行吗?

[英]Will all ARM compilers produce the same Assembly code and run on various CPUs?

我一直在为旧设备开发代码,该设备具有基于 ARM 的 NXP i.MX28 单核 CPU。 该设备运行嵌入式 Linux。

我现在正在升级到更好的设备,它具有 NXP i.MX6UL 四核处理器,当然也基于 ARM,并且还运行嵌入式 inux。

我用于为 i.MX28 构建代码的相同工具链也适用于 i.MX6UL 是否正常,即使 i.MX6UL 具有更多内核等更先进?

我现在已经构建了我的代码,用于使用相同编译器的测试,甚至在似乎运行正常的 Rasberry Pi 上运行它。 Rasberry Pi 使用 Broadcom BCM2711 SoC 和 ARM Cortex-A72 处理器,这也是一个不同的 CPU。

因此,我必须问,任何 ARM 工具链都可以构建代码并能够在任何类型的 ARM 设备上运行吗?

CPU 因核心架构(包括指令集)和外设集而异。 外设的差异由驱动程序和 HAL 解决。 核心架构的差异由工具链解决。

如果工具链“知道”新的 arch,它将发出相应的汇编代码,该代码将在新的 CPU 上运行。 因此,编译器不会产生相同的程序集,但重建后会运行相同的源代码,这就是高级语言的思想。

当旧代码包含内联汇编或使用某些特定的 DSP 指令或库时会出现问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM