假设您有一个交叉编译工具链,它为ARM体系结构生成二进制文件。
您的工具链是这样的(在使用Linux的X86_64计算机上运行):
...以及用于ARM交叉编译的大量其他工具。
我感兴趣的点是:
答案 0 :(得分:3)
-mabi
,它可以是'apcs-gnu','atpcs','aapcs','aapcs-linux'和' iwmmxt”。您可以查看GCC ARM options online。
答案 1 :(得分:1)
我最近开始了一个在裸机环境中使用Linux标准C库的小项目。我一直在我的博客上描述它:http://ellcc.org/blog/?page_id=289 基本上我所做的就是设置一种处理Linux系统调用的方法,这样通过实现某些系统调用的简化版本,我可以使用标准库中的函数。例如,ARM的当前状态实现了read(),readv(),write(),writev()和brk()的简化版本。这允许我使用printf(),fgets()和malloc()不变。
我是我的情况,我使用相同的编译器来定位Linux和裸机。由于它是基于clang / LLVM的,我也可以使用相同的编译器来定位其他处理器。我现在正在为Mips做一个裸机示例。
所以我猜答案是没有任何区别。