打印
[ARM程序分析与设计]

Open-source ARM simulators

[复制链接]
3142|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
galaxy9229|  楼主 | 2010-3-22 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 galaxy9229 于 2010-3-22 18:43 编辑

Open-source ARM simulators Martin Guy, 17 Jan 2006

What's new?
2 May 2008
   There is a more recent list of ARM simulators here.
17 Jan 2006
   Added QEMU and SimpleScalar
4 Nov 2005
   Added "ARMem" ARMulator derivative and ARMphetamine processor simulators

Summary
For internal development and for customers' use it would be useful to be able to simulate Sim-One in software. The project that is closest to simulating the Sim-One is "skyeye" (see below), which succeeds in simulating the EP9312 development board, the big brother of our own EP9307, to run uclinux, armlinux and ucosii.
This document is a survey of all the simulators that I have looked at.

Types of simulator
The simulators fall into three categories:

  • Processor simulators: Those capable of running an ARM executable (an application) within an operating system running on a non-ARM processor by simulating a single-process memory space and the logical operation of the processor upon it. These permit the testing of single ARM programs.
    Examples are: GNU ARM simulator, Simit-ARM.

  • System simulators: Those capable of running an ARM operating system on a non-ARM processor within a different operating system by simulating the processor, physical RAM banks and the logical operation of peripheral devices. These permit the testing of entire operating systems on simulated development boards or computers.
    Examples are: skyeye, SID.

  • Physical simulators: Those that take a list of components and the connections between them and simulate their operation at an electrical level. The simulation may be digital, analog or a mixture of the two. These permit the testing of hardware designs from their schematics.
    Examples are ngspice.

1. Processor simulators

(1):GNU Arm Simulator

   Also called "GNUPRO Arm Simulator" or "ARMulator".
   gdb contains an ARM simulator, which simulates ARM7TDMI   
   architecture and probably others. You run binaries produced by gcc by  
   using gdb and saying:
   gdb> target sima
   a derivative is ArcEm which also simulates the hardware of the Acorn   
   Archimedes computer.

(2): Simit-arm

   Produced by the Gigascale Research Centre, it compiles to binaries called
  • ema ARM instruction set simulator
  • ema_count ARM instruction set simulator, counting use of each type of instruction
  • sima ARM cycle-accurate simulator
    It does indeed run ARM linux executables in an x86 linux environment.  
    It does:
  • read ELF32 little-endian arm-linux binaries,
  • emulate the SA-1100 processor,
  • emulate ARM floating-point instructions (by Netwinder FPE library)
  • cycle-accurate timing

  It doesn't do:
  • Thumb instructions
    There is (or was) a multi-processor version of it called "arm-sim" from  
    the same organisation, but it is no longer actively developed and you  
    need a gigascale login to get it, which is only available to the
    organisations that fund Gigascale Research.

(3):ARMphetamine

   is an on-going project by **n Brown to develop a fast ARM emulator,  
   including dynamic recompilation of ARM instructions to the host
   processor, currently x86. The source code is available under the GNU GPL."



(4): SimpleScalar

  An open-source commercial product with free license for non-commercial
  use. Emulation is said to produce highly detailed timing reports, widely
  used ni academic community for research projects.



(5): QEMUA

  free open-source simulator that can run as a processor simulator or as a   
  system simulator. It runs under Linux or Windows and and simulates
   several types of processor including x86, x86_64, ARM, SPARC and
  PowerPC. Under it you can run (among others) FreeDOS, GNU/Linux,
  OS/2, NetBSD and Windows 3.11, 95, 98SE, ME, 2000 and XP.


2. System simulators

(1):skyey

eProduced in China, it seems to be based on the GNU ARM simulator, and includes support for the Cirrus Logic EP9312 chip which is the same as Sim-One's main chip, the EP9307, plus an IDE interface. It runs uclinux, armlinux, uC/OS-II ond FreeBSD, and they provide drivers for simulated LCD panel, n2k network device and more for these operating systems. I have succeeded in compiling and running skyeye-0.8.7 (5 Jun 2003), but I have not tried running an OS on it.


(2):SID

Available from sources.redhat.com/sid SID is a complete pin-level system simulator containing a library of system components including the ARM7T architecture (Thumb instructions only, no 32-bit ARM, and no Floating Point). I found this more understandable than skyeye (which remains a mystery to me) but it would need a lot more work to emulate Sim-One's ARM920 and our peripherals.

3. Circuit simulators

ngspiceBased on the venerable Spice circuit simulator from Berkeley, now entirely open-source. Available from Part of the gEDA project. Does mixed digital and analog-mode simulation. Higher-level suitesSeveral projects aim at uniting the circuit design and simulation programs into a single design environment. All are based on ngspice as the circuit simulator and PCB as the layout tool.
gEDA

Convergencehttp://bach.ece.jhu.edu/~tim/programs/convergence/convergence.html

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

69

帖子

0

粉丝