首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否所有的ARM编译器都会生成相同的汇编代码并在不同的CPU上运行?

是否所有的ARM编译器都会生成相同的汇编代码并在不同的CPU上运行?
EN

Stack Overflow用户
提问于 2021-10-28 21:16:48
回答 1查看 71关注 0票数 0

我一直在为一款较老的设备开发代码,该设备采用基于ARM的恩智浦i.MX28单核处理器。该设备运行嵌入式Linux。

我现在正在升级到一款更好的设备,它有恩智浦i.MX6UL四核处理器,当然也是基于ARM的,也运行嵌入式inux。

我用来为i.MX28构建代码的工具链同样适用于i.MX6UL,这正常吗?即使i.MX6UL更高级,内核更多,等等?

我现在已经构建了我的代码,用于使用相同的编译器进行测试,甚至在Rasberry Pi上运行它,看起来运行得很好。Rasberry Pi使用具有ARM Cortex-A72处理器的Broadcom BCM2711 SoC。

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

EN

回答 1

Stack Overflow用户

发布于 2021-10-29 06:47:24

CPU因核心架构而异(包括指令集)和外围设备集。外围设备的差异由驱动程序和HALs解决。通过工具链解决了芯拱的差异问题。

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

当旧代码包含内联程序集,或者使用一些特定的DSP指令或库时,就会出现问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69761036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档