Sming Host Emulator

Summary

Allows Sming applications to be built as an executable to run on the development host (Windows or Linux).

This is a source-level emulator for developing and testing new framework code prior to flashing a real device.

This is not a machine emulator; if you need something operating at a lower level take a look at QEMU.

Requirements

CMake is required to build LWIP

Ensure you are using relatively recent compilers, with 32-bit libraries available.

For Linux, you may require the gcc-multilib and g++-multilib packages to build 32-bit executables on a 64-bit OS.

For Windows, make sure your MinGW distro is up to date. See Manual Windows Installation for further details.

Building

Build the framework and application as usual, specifying SMING_ARCH =Host. For example:

cd $SMING_HOME
make SMING_ARCH=Host
cd $SMING_HOME/../samples/Basic_Serial
make SMING_ARCH=Host

This builds the application as an executable in, for example, out/Host/firmware/app.exe. Various command-line options are supported, use --help for details.

The easiest way to run the emulator is via make run. Variables are used to pass the appropriate options to the command line.

To find out what options are in force, use make list-config.

todo

  • Add passthrough support for real serial ports to permit connection of physical devices.
  • Consider how this mechanism might be used to support emulation of other devices (SPI, I2C, etc).
  • Development platforms with SPI or I2C (e.g. Raspberry Pi) could be supported.
  • Are there any generic device emulators available? For example, to simulate specific types of SPI slave.