我是ARM世界的全新手。我需要能够编写C代码,编译它,然后下载到ARM仿真器中,然后执行。我需要使用GCC 4.1.2编译器进行C代码编译。
有人能指出我对以下问题的正确指示吗?
使用什么工具链?
使用什么模拟器?
是否有关于设置工具链的教程或指南?
答案 0 :(得分:2)
工具链,您可以使用Yagarto http://www.yagarto.de/
您可以使用Proteus ISIS http://www.labcenter.com/index.cfm的模拟器 (有一个演示版)
和教程,好吧,google他们=)
祝你好运!答案 1 :(得分:2)
自己构建一个gcc交叉编译器非常简单。 gcc库和C库以及其他东西没有那么多,嵌入式库和这样一点点难度。取决于你想要获得的嵌入方式。我几乎没有使用gcclib或c库,所以滚动你自己的作品对我来说很棒。
经过多年的努力,也许这是一个时代的事情,我现在只是去获取代码源代码工具。精简版很有用。 yagarto,devkitarm,winarm或类似的东西(这个网站有很多例子)一切正常。 emdebian也有一个很好的预制工具链。如果不是所有这些地方都有关于他们如何从gnu来源构建工具链的信息。
你问过gcc,但请记住llvm是一个强有力的竞争对手,就交叉编译而言,因为它总是交叉编译,所以下载和构建比gcc更容易交叉编译器。最近的版本现在正在生成与gcc竞争性能的代码(for arm)。 gcc绝不是性能方面的领导者,我用过的其他编译器围绕它运行,但是每个版本都有所改进(3.x版本有时产生比4.x版本更好的代码,但是你需要4个版本.x用于较新的核心和thumb2)。即使你使用gcc,也要不时尝试稳定释放llvm。
qemu是一个很好的模拟器,取决于你正在做什么gba模拟器虚拟gameboy前进是好的。还有几个nds模拟器。 GDB和其他地方似乎有ARM自己的armulator。我发现很难提取和使用,所以我写了自己的,但懒惰只实现了拇指指令集,我称我的是缩略图。使用方便。比qemu和armulator更容易添加外围设备,并观察和调试您的代码。因人而异。嗯,我最近给某人发了类似的答案。谷歌:arm verilog和umich你会发现一个文件isc.tgz,其中是一个arm10行为(因为你无法从中制作芯片因此你可以在网上找到verilog)模型。对于想要学习指令集的人来说,观察你在门级执行的代码就好了。要小心,就像药物一样,你可能会上瘾,然后当你回到硅片时很难在你执行代码时对代码的可见度相对较低。在stackoverflow的某个地方,我发布了使用icarus verilog将arm10模型和另一个文件转换为arm模拟器所涉及的步骤。 gtkwave是一个很好的免费工具,用于检查wave(vcd)文件。
最重要的是,您将需要ARM ARM。 (ARM体系结构参考手册)。只需谷歌并在ARM的网站上找到它。每条指令都有伪代码,教你做什么。如果您需要了解更多信息,请使用缩推器或装甲器或其他人(mame也有手臂核心)。我不保证拇指缩放器是100%调试或准确的,我采用了一些常见的程序,并将它们的输出与手臂和非臂的硅进行比较以调试核心。