WinCE和Linux在ARM上使用相同的调用约定吗?有什么区别?
到目前为止我找到的文件并没有很好地解释。例如在http://msdn.microsoft.com/en-us/library/ms864497.aspx上,它在一行上显示“Windows CE .NET编译器”,但在下一行显示“ARM编译器”,在底部显示“CLARM”,并且不清楚它是否指的是相同的编译器或不同的编译器。这是我到目前为止所发现的......
我问的原因是我想尝试在WinCE中使用LLVM在运行时生成一些简单的代码,但它只是正式支持Linux。
答案 0 :(得分:2)
答案 1 :(得分:1)
我遇到了同样的问题,我试图找到答案。即在哪里/什么文档说什么或定义在LINUX下使用的ARM ABI。
以下文件是我最接近答案的文件
ARM GNU/Linux Application Binary Interface Supplement
它是由CodeSourcery编写的,其摘要在我看来是对上述问题的答案,即:
Application Binary Interface (ABI) for the ARM Architecture
(由ARM Ltd发布的文档)指定了用于ARM体系结构的工具链之间互操作所需的编译和链接的各个方面。
但是,由于本文档中发布的ABI是在不参考特定操作系统的情况下设计的,因此某些方面仍然未指定。
显然,CodeSourcery的文档旨在通过指定在使用GNU / Linux操作系统时为这些方面做出的决策来补充ARM体系结构的ABI。
我提供了一个指向本文档的链接(其他链接可以通过搜索文档的标题找到):
http://www.boost.org/doc/libs/1_51_0_beta1/libs/context/doc/pdf/arm-linux-aapcs.pdf
似乎没有在LINUX下指定ARM ABI的标准,而且似乎CodeSourcery的文档似乎试图涵盖这方面。