基于Windows的ARM处理器开发

3

我是ARM领域的新手。我需要编写C代码,进行编译,然后下载到ARM模拟器中并执行。我需要使用GCC 4.1.2编译器进行C代码编译。

有没有人能够为以下问题指明正确的方向?

应该使用哪个工具链?

应该使用哪个模拟器?

是否有关于设置工具链的教程或指南?


@Lorenzo:标题写着“基于Windows的开发”,所以我猜这就是标签的原因。 - OregonGhost
@OregonGhost:嗯...我想我需要休假了... - lornova
@Lorenzo:我也是。幸运的是,基尔周末就要开始了 ;) - OregonGhost
您也可以从GNUToolchains网站下载工具链。有关从源代码构建自己的工具链的说明在此处 - Ivan Shcherbakov
2个回答

2

我推荐两者都使用,因为我在工作项目中使用过它们,它们真的非常好用。例如,你可以在Yagarto中使用许多IDE,如slickedit、netbeans、eclipse等。而Proteus ISIS也很棒,如果在ISIS中能够运行,那么你就可以尝试在实际硬件上运行;如果在ISIS中不能运行,那么首先检查一下你的代码和线路 ;) - Hernán Eche

2
构建自己的gcc交叉编译器相当容易。gcc库和C库以及其他一些东西不太容易,嵌入式库稍微难一些。这取决于你想要多深入嵌入。我对gcclib或C库几乎没有用处,所以自己动手制作对我来说非常好。
经过多年的实践,也许是因为年龄的原因,现在我只需获取Code Sourcery工具即可。Lite版本效果很好。Yagarto、DevkitARM、WinARM或类似的网站(有无数示例)都可以正常使用。Emdebian也有一个很好的预构建工具链。其中一些地方,如果不是全部,都有关于如何从GNU源代码构建他们的工具链的信息。

你问了关于gcc的问题,但请记住,llvm是一个强有力的竞争对手,就交叉编译而言,由于它总是进行交叉编译,因此它比gcc更容易下载、构建和使用。最近的版本现在正在生成(针对arm)与gcc相竞争的性能代码。gcc在性能方面绝不是领先者,我使用过的其他编译器都比它快得多,但每个版本都在改进(好吧,3.x版本有时会产生比4.x版本更好的代码,但你需要4.x版本来支持新的核心和thumb2)。即使你选择gcc,也要时不时地尝试一下稳定版本的llvm。

qemu是一个很好的模拟器,根据你所做的事情,gba模拟器virtual gameboy advance也很好用。还有几个nds模拟器。GDB和其他地方有似乎是ARM自己的armulator。我发现很难提取和使用,所以我写了自己的,但由于懒惰只实现了thumb指令集,我称之为thumbulator。易于使用。比qemu和armulator更容易添加外设,并观察和调试你的代码。你的体验可能会有所不同。

嗯,我最近为某个人发布了类似的答案。谷歌搜索:arm verilog,在umich网站上你会找到一个isc.tgz文件,其中包含一个arm10行为模型(也就是说,你无法用它来制作芯片,因此可以在网络上找到verilog)。对于想要学习指令集的人来说,观察代码在门级执行的情况是最好的。但要小心,像毒品一样,你可能会上瘾,当你回到硅片时,你几乎看不到代码在执行时的情况。在stackoverflow的某个地方,我发布了获取那个arm10模型以及另一个文件或两个文件并将其转化为使用icarus verilog的arm仿真器所需的步骤。gtkwave是一个很好的免费工具,用于检查波形(vcd)文件。
首先,你需要ARM ARM。(ARM体系结构参考手册)。只需在ARM网站上搜索并找到它。每个指令都有伪代码教学,教你它们做什么。如果你需要更多理解,使用thumbulator、armulator或其他工具(mame也有一个arm内核)。我不能保证thumbulator是100%调试或精确的,我用一些常见程序将它们的输出与arm和非arm的硅片进行比较以调试内核。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接