我是ARM世界的完全新手。 我需要能够编写C代码,编译它,然后下载到ARM模拟器中,然后执行。 我需要使用GCC 4.1.2编译器进行C代码编译。
有谁能指出我在以下问题的正确方向?
什么工具链使用?
什么模拟器使用?
是否有设置工具链的教程或指南?
自己构建一个gcc交叉编译器非常简单。 gcc库和C库等其他东西没有那么多,一个嵌入式库和这么一点难点。 取决于你想如何嵌入。 我对gcclib或者ac库没什么用处,所以把自己的作品推荐给我。
经过这么多年,也许这是一个年龄的事情,我现在只是去获得代码源工具。 精简版的作品很棒。 yagarto,devkitarm,winarm或类似的东西(网站有一个亿元的例子)都工作正常。 emdebian也有一个很好的预建工具链。 如果不是所有这些地方都有他们如何建立他们的工具链来自牛羚源的信息。
你问过关于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更容易添加外围设备,并观看和调试您的代码。 因人而异。
嗯,我最近发布了一个类似的答案。 Google:arm verilog,在umich中你会发现一个文件isc.tgz,这个文件是一个arm10的行为模式(因为你无法从芯片中获得芯片,所以你可以在网上找到verilog)。 对于想要学习指令集的人来说,看门代码执行的代码大致上就是如此。 要小心,像药物一样,你可能会沉迷于上瘾,那么当你回到硅片上时,如果你的代码在执行过程中对代码的可见性比较零,那么就很难。 在stackoverflow某处,我张贴了涉及到的步骤,以获得该arm10模型和另一个文件或两个使用伊卡洛斯verilog把它变成一个手臂模拟器。 gtkwave是一个很好的免费工具,用于检查wave(vcd)文件。
最重要的是你将需要ARM ARM。 (“ARM体系结构参考手册”)。 只要谷歌,并在ARM的网站上找到它。 每条教学都有一些伪代码,教你如何做。 如果你需要了解更多的话,可以使用拇指或者手臂或者其他的东西(mame还有一个手臂核心)。 我没有保证手写板是100%调试或准确的,我拿了一些常用的程序,把它们的输出比较成双臂和非手臂来调试核心。
工具链,你可以使用Yagarto http://www.yagarto.de/
模拟器你可以使用Proteus ISIS http://www.labcenter.com/index.cfm (有一个演示版本)
和教程,好吧,谷歌他们=)
祝你好运!