我是一个完整的新手到ARM的世界。我需要能够编写C代码,编译,然后下载到ARM仿真器,并执行。我需要使用GCC 4.1.2编译器C代码编译。

任何人可以点我在正确的方向为以下问题?

什么工具链使用?

什么模拟器使用?

是否有有关设置工具链教程或引导件?

有帮助吗?

解决方案

构建自己gcc交叉编译器是相当容易的。海合会库和C库和其他的东西没有那么多,嵌入式库,这样有点困难。取决于如何嵌入你想获得。我有gcclib或C库,以便滚你伟大的自己的作品对我来说没有什么用处。

经过多年这样做的,也许这是一个时代的东西,我现在只是去获取代码的Sourcery工具。精简版的版本的伟大工程。 yagarto,devkitarm,WINARM或类似的东西(该网站有数不胜数的例子),所有做工精细。 emdebian还内置了预好工具链。许多这些地方如果不是都对他们如何建立自己的工具链,从GNU源的信息。

您问的gcc,但请记住,LLVM是一个强大的竞争对手,并尽量交叉编译去,因为它总是交叉编译,它是一个更容易交叉编译器来下载和构建和获得工作比GCC。最近的版本现在生产与GCC性能竞争代码(ARM)。 GCC是没有办法在性能上处于领先地位,其他的编译器我周围有使用运行圈,但它已经在每个版本中改进(井3.X版本有时会产生比4.x的版本更好的代码,但是你需要4 .X为较新的核心和的Thumb2)。即使你用gcc去,尝试LLVM的稳定版本不时。

QEMU是一个很好的仿真器,这取决于你在做什么的GBA模拟器虚拟GameBoy Advance的还是不错的。有一对夫妇的NDS模拟器了。 GDB和其他地方有什么似乎是ARM的自身ARMulator目录下面。我发现很难提取和使用,所以我写了我自己的,但懒惰只实现了Thumb指令集,我打电话给我的thumbulator。使用方便。更容易比QEMU和ARMulator目录下面添加外设和观看和调试代码。因人而异。

嗯我最近公布的人了类似的回答。谷歌:手臂Verilog和在密西根大学,你会发现一个文件isc.tgz中是一种行为的ARM10(如你不能让一个芯片从它因此,你可以找到的Verilog在网上)模型。这对于有人想学习的指令集,看你的代码执行在门级大约是尽善尽美。要小心,就像毒品一样,你可以上瘾,然后有困难的时候,你回去硅,你必须相对能见度为零到你的代码在执行时。在某处计算器我贴参与来获取ARM10模型和其他文件或两个把它变成使用伊卡洛斯的Verilog的ARM仿真器的步骤。 gtkwave是用于检查波(VCD)文件是个好和自由的工具。

最重要的是你需要的ARM公司。 (臂建筑参考手册)。只是谷歌它,发现它在ARM的网站。没有为每个指令教你他们所做的伪码。如果您需要了解更多的(MAME在它有一个ARM内核太)使用thumbulator或ARMulator目录下面或他人。我不作任何保证了thumbulator为100%或调试精确,我把一些常见的方案和比较它们的输出来硅两者臂和非臂调试核心。

scroll top