假设我在RaspberryPi上编译了C程序,我可以在Cubietruck上运行这个二进制文件吗? 如何确定2个ARM处理器是否兼容?它们彼此之间是否兼容? 应该是一些简单的答案,参考处理器支持的指令集,但我找不到任何好的材料。
答案 0 :(得分:3)
有几个条件:
您的可执行文件应使用"最小公分母"您希望支持的所有ARM microarchitectures。请参阅gcc的-march=...
选项。假设您正在运行Linux,grep '^model' /proc/cpuinfo
应该为您提供每个平台的信息。
(相关)所有目标ARM内核(FPU,NEON等)可能都不支持某些功能,因此请务必小心。
当然,您应该在所有支持的平台上运行相同的操作系统。
如果您足够幸运地只针对相当现代的ARM平台,那么您应该能够找到一些共同点(EABI或Hard Float ABI)。否则,您可能别无选择,只能维护多个版本的可执行文件。