wiki:TBR/UserManual/Simulators

Version 10 (modified by JoelSherrill, on 05/31/07 at 02:14:26) (diff)

Categorized by fixable and not worth fixing

Simulators

Like other operating systems targetting the embedded application domain space, RTEMS is designed to be run on a wide variety of target boards. Some of Board Support Packages provided with RTEMS correspond to simulated boards. Some of these simulators simulate real target hardware including all peripherals while others provide a basic synthethic target environment which corresponds to a basic CPU with simple simulator peripherals.

Simulators Known to Work Well

  • i386/pc386 -- This is a BSP for PCs which can be tested by simulators and virtual environments such as Bochs, VMWare, and QEMU. QEMU? provides PC emulation and is often used to test RTEMS.
  • mips/jmr3904 - Toshiba MIPS TX3904 simulator in gdb.
  • powerpc/psim -- synthetic PPC603 based-board simulated in gdb. See PSIM BSP for more information
  • sparc/erc32 -- BSP for ERC32 with and without floating point unit which is simulated by TSIM.
  • sparc/sis -- BSP for ERC32 with and without floating point unit which is simulated by the SPARC onstruction Simulator (SIS) in gdb.
  • arm/edb7312 -- SkyEye This has worked at times but as of May 2008 did not run the current code. It would be nice to get this one working again. Highly configurable ARM emulator capable of supporting various ARM chip families (w/ or w/o MMU support), LCD and network (ne2k like). Very configurable by simple editing skyeye.conf in the current directory. See edb7312 for details on how to run this simulator.

Simulators with Issues

These are simulators which are known to work with RTEMS but require something that is above and beyond the call of duty. The simulator may be using unsubmitted patches, slower than molasses running uphill, not enough features, or something even more unique. If you can help one of these out, pitch in. It would be appreciated.

Fixable

  • h8300/h8sim -- synthetic board simulated in gdb. Does not appear to support clock tick interrupts.
  • m68k/mcf5206elite -- free Coldfire simulator. It is VERY slow and does not appear to be easy to automate running of tests but it does work and is worth spot checking the BSP with. It may be merged into SkyEye? eventually. Version 0.3.0 of this emulator is capable of running mcf5206elite BSP hello world example. For more details see: http://www.rtems.com/ml/rtems-users/2006/january/msg00060.html This would be a good project.
  • m68k/sim68000 and m68k/simcpu32 -- BSP for mc68000 configuration of BSVC simulator. Simulator is no longer supports, has licensing which prevented it from merging into gdb and requires a third-party patch to support CPU32 and redirecting console to stdout.
  • sh/shsim and sh/simsh7045 -- BSP for sh7032 as simulated in gdb. Joel has not used these and recalls there being an unmerged patch against an old gdb version.

Unlikely to be Worth Fixing

  • arm/armulator -- synthetic board simulated in gdb. Does not appear to support clock tick interrupts.
  • c4x/c3xsim and c4x/c4xsim -- simulator for C30/C31/c32 CPU models and all peripherals in gdb with appropriate patch against a very old gdb.
  • hppa1.1/simhppa -- HP proprietary simulator of HP7100 CPU.
  • i960/i960sim -- synthetic board simulated in gdb. Does not appear to support clock tick interrupts.
  • or32/orp -- simulator provided by OpenCores? project. OpenCores? CPU has been dropped from current RTEMS sources due to apparent inactivity of CPU developers.

Simulators Which Need Further Investigation

There are several free/open source software emulators out there which might be capable of running RTEMS. These are not supported and we would like to hear about any user success/failure to get them running with RTEMS, even better if you provide appropriate BSP changes to get recent RTEMS running on one of them. The list of emulators looks:

  • qemu -- the most promising: provides system emulation for x86/amd64/powerpc/sparc, recent code base added coldfire, sparc64 and mips.It is possible to use pc386 BSP running succesfully on top of Qemu/x86 emulator including full network emulation. Some users might even consider trying RTEMS PowerPC port running on top of Qemu/PowerPC system emulation layer. Probably PREP mode is the most close, since it support one of the RTEMS supported board (eMesquite MCP750)
  • - SkyEye -- supports a variety of ARM CPU models. Shuld be possible to create a set of simple BSPs using this.
  • http://gavare.se/gxemul/ -- this emulator provides a lot of MIPS hardware emulation, but also starts with ARM/PowerPC in recent releases. It seems it might be interesting target also because of simulated dec21134 NIC and because of its ability to load ELFs directly. Partially tested are mcp750 BSP binaries where at least part of initialization works well.