如何交叉编译工具链到ARMv5平台?

我不想设置一个工具链在x86主机上交叉编译到ARMv5目标(我已经有了它,它正在工作),而是在ARMv5平台上编译到ARMv5目标(本身)的工具链。 我知道我总是可以交叉编译我所需要的所有应用程序,但是我希望在系统上运行编译器,所以我将会很好地了解如何为Rasberry Pi和Beaglebone等其他板子做同样的工作。只是看起来很酷。

我已经看到了crosstool-ng,但据我所知,它似乎只适用于x86主机的各种目标,而不是针对各种目标的各种主机。

有没有推荐的工作stream程? 我正在考虑如何处理像Beaglebone这样的董事会发行人,但我似乎无法find任何信息,他们是否使用了一些专有的解决scheme?

有问题的工具链是Sourcery CodeBench Lite中包含的源代码,但似乎只是通过已经编译的交叉编译器运行它不起作用。

我发现了一些相关的问题,但是似乎没有一个能够一路走下去,有没有一个向导呢? 对于你们所有人来说,就像我一样,如果这是popup的结果,这里有一些相关的问题:

使用crosstool-ng交叉编译native gcc for arm,有工具链,哪个体系结构和哪个构build,主机和目标?

如何使用crosstool-NG来改变GCC的“加拿大十字”汇编的主机types

交叉编译gcc

用Code Sourcery编译GCC

使用交叉编译器编译原生GCC for arm

经过大量的图书馆和工具链的努力,我自己设法做到了这一点。

您需要首先设置交叉编译器来编译ARM926J CPU的ARMv5可执行文件。 为什么ARMv5和ARM926J? 因为我使用SAM9N12,它使用ARM926J代码(运行本机JVM的Jazelle为J),该内核是ARMv5体系结构。

您可以从ARM的基于启动板的GCC仓库中获得交叉编译器,也可以使用Crosstools-NG自己创建交叉编译器。 建议使用Crosstools-NG,因为您可以使用自己的标准C库(与uClib或musl相比,GNU的版本是可怕的)。

最后,您需要使用交叉编译器来生成本机ARM编译器。 通常情况下,你可以用Crosstools-NG来做到这一点,但是cross-native选项并没有实现,所以你必须做一个叫做Canadian-Build工作,但是可以做一些冗余的工作。

由于这个问题只是针对使用什么样的通用工作流的思想,所以我会保持原样,并且向您推荐我的另一个问题 ,具体问到如何使用Crosstools-NG进行Canadian-Build ,考虑到Cross-Native尚未实现。