ARM的ARMulator:
ARMulator 是一个在 ARM 公司推出的集成开发环境 ADS (ARM Developer Suite)中提供的指令集模拟器。它与运行在通用计算机(通常是x86体系结构)上的调试器相连接,模拟 ARM 微处理器体系结构和指令集,提供了开发和调试 ARM 程序的软件仿真环境。ARMulator 不仅可以仿真 ARM 处理器的体系结构和指令集,还可以仿真存储器和处理器外围设备,例如中断控制器和定时器等,这样就模拟了一个进行嵌入式开发的最小子系统,另外使用者还可以扩展添加自己的外设。
简介:
ARMulator 同时支持全部的标准C库函数,这样所有的C程序都可以在仿真器上运行。ARMulator 通过 Semihosting 方式来实现程序中输入/输出功能。Semihosting是指在 ARM 程序开发调试的过程中,目标系统还不具备输入/输出的功能,通过调试代理向调试器请求 I/O。ARMulator 就是这里所说的调试代理之一,其他还有 Angel、Multi-ICE也通过类似的方式来实现 I/O 功能。ARMulator 在 Windows 平台上实现为动态链接库文件(.dll),在 Linux 或者 Solaris 系统上实现为共享库文件(.so)。前者的使用一般是通过 ARM 公司提供的图形界面调试器 AXD 中,选择目标系统为 ARMulate.dll,这样就设置了 ARMulator 作为调试代理。用户在进行调试开发时,对于底层使用的调试代理是透明的。
SkyEye:
SkyEye是一个开源软件(OpenSource Software)项目,中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定"仿真"和"模拟"的意思基本相同);可在SkyEye上运行μCLinux以及μC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。
GNU的ARMulator:
Softgun:
Softgun 是 ARM 嵌入式系统的仿真器,可模拟 ARM9 CPU ,支持 MMU、很多Netsilicon NS9750外设,PCI总线、网络控制器、闪存以及 CAN总线。 它的目的是帮助没有真实硬件的嵌入式系统开发。
realboard:
csdn:
realboard是高速稳定的开发板平台仿真软件,包括CPU核,硬件外设,以及必要的调试支持。它运行在win32平台,能够代替真实的硬件开发板和调试器,使整个嵌入式项目能够在PC端独立完成开发调试,既能降低门槛,又能节省成本。
到目前为止,realboard能够支持的外设,基本上覆盖了s3c44b0x的所有功能:
其他嵌入式模拟器:
QEMU:
著名的android emulator就是基于QEMU的。
QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由kqemu这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模倾:
-
- 模拟模式,亦即是使用者模式。QEMU 能启动那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。
- System mode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。
QEMU的主体部份是在LGPL下发布的,而其系统模式模拟与kqemu加速器则是在GPL下发布。使用kqemu可使QEMU能模拟至接近实机速度,但其在虚拟的操作系统是Microsoft Windows 98或以下的情况下是无用的。
优点:
-
- 可以模拟 IA-32 (x86)个人电脑,AMD64个人电脑, MIPS R4000, 升阳的 SPARC sun3 与 PowerPC (PReP 及 Power Macintosh)架构
- 支持其他架构,不论在主机或虚拟系统上(请参看QEMU主页以获取完整的清单)
- 增加了模拟速度,某些程式甚至可以实时运行
- 可以在其他平台上运行Linux的程式
- 可以储存及还原运行状态(如运行中的程式)
- 可以虚拟网络卡
- 可模拟多CPU