What is Emul8?
Emul8, as the name suggests, is an emulator of various embedded systems. With Emul8 you can develop embedded software entirely in a virtual environment that runs within your PC.
If that still doesn't tell you much, visit the Emul8 website to learn more.
- ARM Cortex-A and Cortex-M
- x86 (experimental)
The installation procedure on Mac is fairly straightforward, as you can use an official Mono release.
If not already present, install homebrew and then:
brew install binutils gnu-sed coreutils homebrew/versions/gcc49 dialog
The package names for prerequisites are given for Ubuntu 14.04 (please adjust those w/r to your distribution and version):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list sudo apt-get update sudo apt-get install git mono-complete automake autoconf libtool g++ realpath \ gksu libgtk2.0-dev dialog screen uml-utilities gtk-sharp2
Emul8 requires mono version 5.0 or newer.
If you want to modify or extend the source code of Emul8, it is recommended to install the MonoDevelop IDE.
For a detailed information on the required packages, please consult the System requirements section in the documentation.
Getting the source
The Emul8 source code is available from GitHub:
git clone https://github.com/emul8/emul8.git
No need to init any submodules - this will be done automatically at a later stage.
Since Emul8 can be used for various purposes and not everyone needs all the modules and platforms, a simple bootstrapping system was created to make it easy to select the elements you need.
In order to create a solution file integrating the selected projects (.csproj files), use the Bootstrap tool:
and follow the instructions displayed on the screen. As a result a target directory with an Emul8.sln file will be created, ready to be built.
If you just want to build everything, or for scripting purposes, instead of running in interactive mode, you can generate a solution containing all projects by executing:
After bootstrapping the configuration (i.e., when an Emul8.sln file is created) it is possible to build it using:
Build scripts is configurable with additional flags, most useful of which are presented below:
-v verbose mode -d build in debug configuration -c clean instead of building -p create deb/rpm/arch packages
In order to run Emul8 use:
[file] is an optional argument - path to a script that should be loaded on startup.
Run scripts is configurable with additional flags, most useful of which are presented below:
-d debug mode (requires prior build in debug configuration) -e COMMAND execute command on startup (does not allow the [file] argument) -p remove steering codes (e.g., colours) from output -P PORT listen on a port for monitor commands instead of opening a window -h help & usage
The source of the documentation, available in compiled form on Read The Docs, is located in the doc folder. It is written in Sphinx, which can be installed as follows:
sudo apt-get install python-pip sudo pip install sphinx
To compile the documentation, use:
make html # build HTML output
make latexpdf # build PDF output, also requires LaTeX
Emul8 is released under the permissive MIT license. For details, See the LICENSE file.
Contributions can be made using the GitHub pull requests mechanism and are very welcome! For details, see the CONTRIBUTING file.