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 synthetic 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, QEMU, and VirtualBox?. QEMU? provides PC emulation and is often used to test RTEMS. MinGW:Grub2:VMWare Development Environment Setup describes how to setup a development host environment with MinGW, Grub2 and VMWare to build, boot and simulate RTEMS on Windows, and Simulate Serial Communication Application demonstrates how to use such environment to develop applications involving peripherals. And an example of how remote debugging works with VMWare can be found at RTEMS Eclipse Plug-in.
- 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 Instruction Simulator (SIS) in gdb.
- arm/edb7312 -- SkyEye Skyeye is a highly configurable multi-architecture 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 using that BSP. See the RTEMS Wiki page SkyEye for more information on the various BSPs we hope can run on it.
- bfin/ezKit553 -- The Blackfin toolchain builds contain a gdb simulator with documentation on booting an ELF file. SkyEye Skyeye also supports the Blackfin architecture and this BSP should be able to run on it. It is still preliminary though. See the RTEMS Wiki page SkyEye for more information on the various BSPs we hope can run on it.
- arm/beagle -- BSP for the Beagle family of boards (Beagleboard, Beagleboard XM, Beaglebone, Beaglebone Black). Out of those, the Beagleboard XM is emulated well by the Linaro fork of Qemu. It can be built using the RSB with non-mainlined code, a description can be found here. Or look at the Linaro site. Unfortunately no emulator is known for the beaglebones.
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.
- 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). With RTEMS-4.11 there is now a qemuprep? BSP available for early testing. You can also use Qemu for running LEON3 BSP. You will need to apply few patches to it thought. For more information about it follow this thread
- SkyEye -- supports a variety of ARM CPU models. Shuld be possible to create a set of simple BSPs using this. Seek the RTEMS Wiki Page SkyEye for more information.
- xcopilot- Palm Pilot simulator. Should be a MC68328 Dragonball. Looks very nice at David McCollough?'s page at http://www.cyberguard.info/snapgear/tb20020807.html
- http://pearpc.sf.net -- the other PowerPC emulator, which suport Mac OS X and Darwin OS
- 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.