The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.

2009年1月6日星期二

some embedded simulates

1.Xcopilot

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Screen shot

Xcopilot is a Palm Pilot emulator that runs under Unix/X11. It offers emulation of the timer, serial ports, touch pad and LCD along with Motorola 68000 emulation (m68k), specifically the Freescale DragonBall used in Palm Pilots until they switched to Intel XScale ARM processors (later DragonBalls were based on an ARM core not a 68000 but retained the same name, however were not used by Palm.) Xcopilot was originally developed by Ivan Curtis with contributions from Ian Goldberg, Jef Dionne, Kresten Krab Thorup, and Andrew Pfiffer based on the Windows program Copilot[1]. While the original Copilot application eventually turned into the Palm OS Emulator, the Unix/X11 port branched off and enjoyed its own popularity. Written in 1997, Xcopilot was aimed at developers of applications on the Palm OS platform, freeing them from the drudgery of interfacing to the real hardware during the development process.

Xcopilot found a new role in the 2000s with the development of uCLinux, a version of Linux meant for very low-end microprocessors without an MMU . Today Xcopilot is no longer maintained but is still useful for trying out uClinux. With the addition of a virtual ethernet Xcopilot would probably become more popular again, because the simulated hardware would then look very like many modern firewall and VPN devices based on Motorola processors. Networking is only available over PPP on the simulated serial port.

At linux.conf.au 2004 a Live CD was produced [2] to support the talks, one of which was on uCLinux [3]. The screenshot shows Xcopilot used on this CD to run a webserver explaining how to use the CD.

2.SkyEye : SkyEye

About SkyEye  
 http://www.ibm.com/developerworks/cn/linux/l-skyeye/part1/index.html
SkyEye is an Open Source Software Project (GPL Licence). Origin from GDB/Armulator, The goal of SkyEye is to provide an integrated simulation environment in Linux and Windows. SkyEye environment simulates typical Embedded Computer Systems (Now it supports a series ARM architecture based microprocessors and Blackfin DSP Processor). You can run some Embedded Operation System such as ARM Linux, uClinux, uc/OS-II (ucos-ii) etc. in SkyEye, and analysis or debug them at source level.

3.PSIM is a program written in extended ANSI-C that emulates the Instruction Set Architecture of the PowerPC microprocessor family. It is freely available in source code form under the terms of the GNU General Public License (version 2 or later).

The publication The PowerPC Architecture: A specification for a new family of RISC processors describes the PowerPC Instruction Set Architecture has having three levels of compliance:

  1. UEA - User Instruction Set Architecture

    ``the registers, instructions, storage model, and execution model that are available to all application programs''

  2. VEA - Virtual Environment Architecture

    ``the features of the architecture that permit application programs to create or modify code, to share data among programs in a multiprocessing system, and to optimize the performance of storage accesses''

  3. OEA - Operating Environment Architecture

    ``the features of the architecture that permit operating systems to allocate and manage storage, to handle errors encountered by application programs, to support I/O devices, and to provide the other services expected of secure, modern, multiprocessor operating systems'' 

    4.SimOs

    Machine simulation environment designed for study of both uni- and multi-processor computer systems. Simulates hardware enough to boot and run commercial operating systems. Models hardware similar to Silicon Graphics, Inc computers. Tcl scripts are written to execute whenever an event of interest occurs.

    5.Virtutech Simics

    Simics, Virtutech’s flagship product, provides software and system developers with a virtual version of their target hardware. The virtual target hardware operates completely within a virtualized environment running on a standard laptop or desktop PC, without needing any special hardware. The virtual hardware runs the same binary software as the physical target system, including firmware, device drivers, operating system, middleware stacks, and the application software. Software for the target machine runs unmodified on the virtual hardware, at a very high level of performance.

    Besides being able to simulate target microprocessors such as PowerPC, x86, ARM, and MIPS, Simics is capable of simulating any digital device and communication bus. Simics is scalable - being able to simulate anything from a simple CPU + memory, to a complex SoC, to a custom board, to a rack of multiple boards, or a network of many computer systems.

    Debugging and testing efforts are simplified through advanced capabilities normally not available with physical hardware: non-invasive debugging and tracing, saving and later resuming execution, deterministic execution and reexecution of test cases, forward and reverse execution, the ability to examine, control, and break on any internal device and to inject faults, and the ability to save system state and later replay it. Simics also provides the capability to script complex system configurations and tests. Reproducing a particular target system setup is a matter of running a script, without any need to locate or configure hardware boards. Simics runs unmodified production-quality binaries and can be used with 3rd party software development tools.

    Simics Key Capabilities

    • A complete functional virtual platform with fidelity and performance
    • Runs unchanged binaries—drivers, BSP, software stack and applications
    • Use the same build settings and compilers as the physical target hardware
    • Make custom virtual platforms broadly available
    • Provides true reverse execution and debugging
    • Deterministic execution means that bugs are trivially reproducible and easier to find
    • Create scripts for hardware fault injection during testing
    • Supports single, multicore, multiple processor, and multiple machine configurations (racks, clusters, and distributed systems)
    • Simplifies debugging of multicore and distributed systems
    • Supports networks of arbitrary topology and networks of networks 

没有评论: