我是ARM领域的新手。我需要编写C代码,进行编译,然后下载到ARM模拟器中并执行。我需要使用GCC 4.1.2编译器进行C代码编译。
有没有人能够为以下问题指明正确的方向?
应该使用哪个工具链?
应该使用哪个模拟器?
是否有关于设置工具链的教程或指南?
我是ARM领域的新手。我需要编写C代码,进行编译,然后下载到ARM模拟器中并执行。我需要使用GCC 4.1.2编译器进行C代码编译。
有没有人能够为以下问题指明正确的方向?
应该使用哪个工具链?
应该使用哪个模拟器?
是否有关于设置工具链的教程或指南?
您可以使用Yagarto工具链进行开发,网址:http://www.yagarto.de/
您可以使用Proteus ISIS模拟器进行测试,网址:http://www.labcenter.com/index.cfm(有演示版本可用)
此外还有许多教程,您可以通过谷歌来搜索。
祝您好运!
你问了关于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)文件。