cla*_*aws 21 assembly arm simulator
我熟悉X86 [-64]架构和组装.我想开始为ARM处理器开发.但与台式机处理器不同,我没有实际的ARM处理器.我想我需要一个ARM模拟器.
将需要ARM程序集编译器,最容易访问的是ARMulator.
我想到下载Armulator但是从http://forums.arm.com/index.php?showtopic=13744找到了
它没有单独出售.但是你可以下载一个RVDS评估版 - 其中包括RVISS/ARMulator
我已经下载并安装了RVDS,但它看起来非常复杂.我无法弄清楚我需要做什么来编写ARM程序集并运行它.
我总是从书本而不是教程中学习.我正在关注这两本书:
你有什么更好的建议吗?
小智 23
你需要一个工具链.工具链是一个低级工具的集合,如汇编程序,链接器,编译器,归档程序和一堆其他有用的东西.更重要的是,您需要一个跨工具链,这意味着工具链在一个系统上运行,但为另一个体系结构构建可执行文件.这样,您可以构建在ARM设备上运行的应用程序,但是在基于x86的PC上.它更快更方便.
如果您运行Windows,DevkitPro是一个相当不错的选择.对于Unix/Linux/BSD变体,您拥有CodeSourcery的免费工具链,以及来自gnuarm.com的GCC工具链.还有其他几个,但您不需要更多选项.
在infocenter.arm.com上获取所选ARM CPU的规格.无论CPU是什么,您需要的一个参考是ARM体系结构参考手册(通常缩写为ARMARM).我主持的是旧版本,它涵盖了ARM架构和指令集的版本多达用于ARMv4T, 在这里,但你会发现在当前和以后的版本infocenter.arm.com为好.如果你选择GBA,请注意CPU是ARM7TDMI,指令集版本为ARMv4T.
ARMARM包含常规细节系统编码的提示和示例,如何处理某些设计问题的提示,以及ARM指令集,Thumb指令集和MMU,MPU,DSP等协处理器的参考.的FPU.
如果你坚持使用QEMU,那就是你所需要的,因为Linux内核可以处理所有事情.QEMU还具有用户模式仿真(带有C库存根).如果你选择其中一个GBA仿真器,这里有一个很好的参考GBA硬件和硬件寄存器:CowBiteSpec.另请务必查看http://www.gbadev.org/.
任天堂DS也可能是一个选项,但我还不知道该手持设备有任何像样的模拟器.祝你好运 :-)
编辑:这是我几年前写的一些GBA代码的一个简单例子:GBA颜色填充240x160 16位示例
一些评论,不是争论海报问题的完整答案.
这款beagleboard很酷,售价150美元,但需要150美元的usb才能让它变得有用.由于缺少必须购买的东西,因此整体beagleboard总体上更便宜.但现在有一个hawkboard,也是一个基于omap的电路板,成本低于100美元,到目前为止似乎做得很好.我现在比喜欢beagleboard更喜欢它,远不那么痛苦.
开放式电路板提供远远超过该价格范围的beagleboard,如果您有玩具预算,可以查看.另外100美元的开放式电路板和附件都有一个完整的SATA连接器,因此您可以在其上放置一个笔记本电脑驱动器,而不必使用痛苦的慢速闪存设备或USB.
海报没有资源购买这些玩具.我认为,如果你继续追求并擅长嵌入式ARM,你将拥有自己的意志并找到方向.这就是为什么我提到Sparkfun和其他人有30美元到50美元的开箱即用的板子.在购买之前向stackoverflow发布一个问题,但要求哪个更好.我有很多,其中有很多我发现无法使用或太痛苦,我不希望你把所有的玩具预算花在一些不值得拥有的东西上.
我在这里有一些qemu arm集成器示例代码,让我打包并提供一个工作示例.我有很多其他的arm和gba代码,也许我会发布它.
ARM架构开始了,上次我使用名为armulator的模拟器(谷歌/维基百科)与他们的人/工具合作.因此,特别模仿手臂并不罕见.
编写自己的模拟器可能是一个有趣的项目,也可能是现有模拟器并添加自己的外围设备.qemu和mame太笨重了,无法按原样玩,你可以从mame中拔出手臂而不会有太多麻烦.