我一直在为一款较老的设备开发代码,该设备采用基于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设备上运行?
发布于 2021-10-29 06:47:24
CPU因核心架构而异(包括指令集)和外围设备集。外围设备的差异由驱动程序和HALs解决。通过工具链解决了芯拱的差异问题。
如果工具链“知道”新的arch,它将发出相应的汇编代码,该代码将在新的CPU上运行。因此,编译器不会生成相同的程序集,但在重新生成后会运行相同的源代码,这就是高级语言的理念。
当旧代码包含内联程序集,或者使用一些特定的DSP指令或库时,就会出现问题
https://stackoverflow.com/questions/69761036
复制相似问题