Getting Started
Installation
To install TEMU, the best approach is to use the RPM or DEB files. The latest versions can be downloaded from https://temu.terma.com/.
The following table illustrates which packages should be used on which operating system. Normally generic packages are available. For some older systems specific packages may be available.
OS | Package Type |
---|---|
CentOS |
.rpm |
Debian |
.deb |
RedHat Enterprise Linux (RHEL) |
.rpm |
SUSE Linux for Enterprises (SLES) |
.rpm |
Ubuntu |
.deb |
Others |
.tar.bz2 |
The following commands can be used to install the different types of
packages (where x.y.z
is the version number):
# Install RPM
$ rpm -ivh temu-x.y.z-x86_64-Linux.rpm
# Install DEB
$ dpkg -i temu-x.y.z-x86_64-Linux.deb
# Install Tarball (.tar.bz2)
$ bunzip2 temu-x.y.z-x86_64-Linux.tar.bz2
$ tar xvf temu-x.y.z-x86_64-Linux.tar
By default, the packages install TEMU in /opt/temu/4.0.0
.
The packages have also been created and bundled with all the normal dependencies they need.
This include the standard C++ libraries, so there should be no problem to install and run the emulator on any Linux system.
Note that testing is normally done on stable Debian (currently Jessie/8.0), RHEL7 and SLES11.
TEMU consist of a set of libraries and a command line tool.
The libraries are normally installed in /opt/temu/4.0.0/lib
and the tools in /opt/temu/4.0.0/bin/
.
The binaries and libraries have been liked with the RPATH
option, so there is no need to set LD_LIBRARY_PATH
.
There are also packages for a build which has asserts enabled.
Asserts have a performance penalty, which at times can be heavy.
Therefore, assert builds are opt-in.
These packages installs under: /opt/temu/4.0.0+asserts/
TEMU setup
Before you start, you need to setup TEMU.
TEMU setup is using the temu
command line tool:
$ temu --setup
This command should run with root-privileges. |
License Files
See https://temu.terma.com/ for more information on licenses. Note that you must have a valid license to run TEMU.
Installing a License
A TEMU license is installed using the temu
command line tool:
$ temu --install-license my-license-file.json
It is possible to install multiple license files for the same user (e.g. to enable multiple machines).
Revoking a License
To revoke a license in case of e.g. hardware migration, you should issue the revoke command on a license.
To get the license ID, use the --list-licenses
option to TEMU:
$ temu --list-licenses
| License ID | Status
|------------------|----------------------------------------
| 123456789abcedf0 | hardware address error, installed
| abcdef0123456789 | valid, installed
Above you can see two licenses, one which does not match the current computer (hardware address error). To revoke a license for the current computer you should revoke a valid license. Typically, invalid licenses will be either marked as hardware address error or expired for time bounded licenses.
Next step is to revoke the license using the relevant license ID as listed above:
$ temu --revoke-license abcdef0123456789
------------------------- IMPORTANT NOTICE -------------------------
You are about to revoke a license, a revoked license invalidates the
license from use on your machine. A response code will be generated that
should be sent to Terma in order to be credited one license activation
NOTE: License revokations are only intended for use when retiring hardware
Revocations cannot be used to simulate a floating license, revocatiosn are
limited in numbers and excessive use is not allowed.
NOTE: In case of catastrophic failure of hardware, it may not be
possible to revoke the license, in that case you need to contact Terma
for an activation credit
Are you sure you wish to revoke the license (yes|no)?
Answer yes if you wish to proceed:
Revokation key: '123456789abcdef0...:abcdef0123456789...'
Send the key to Terma in order to be credited with one license activation
NOTE: You cannot use revocations as floating licenses, they are intended for
hardware migration only.
Then copy the key and send it to Terma to be credited with one license activation.
Running the Emulator
To start the command line interface (CLI), simply run:
/opt/temu/4.0.0/bin/temu
or
/opt/temu/4.0.0+asserts/bin/temu
.
The command line interface exists to run the emulator in stand alone mode.
Creating a New Machine
When TEMU is running it will normally display the temu>
-prompt.
This is the command prompt.
To create a new machine, it is possible to use one of the bundled CPU configurations in /opt/temu/4.0.0/share/temu/sysconfig/
.
Common configurations that instantiate different types of systems are available.
The command line scripts can be executed using the exec command.
This can be done as illustrated in the following examples:
temu> exec leon2.temu
temu> exec leon3-dual-core.temu
Loading and Running Software
When a system has been created, it is time to load and run software in the emulator. The example here assumes that the system was created as in the previous example. To load software which may be in ELF or SREC format the load-command can be used.
When running application software directly, as in contrast to have it loaded by boot software. Then the user needs to ensure that the boot software is simulated. This includes initializing the stack and frame pointers. On some systems timer registers must be initialized. |
Execution of software in a single core system can be done by the run and step commands. The run-command runs the software for a given time (either cycles or seconds), while the step-command single steps the software instruction by instruction. The run and step commands can run and step both machines, clocks and CPUs.
temu> load obj=cpu0 file=rtems-hello.elf
info: cpu0 : loading section 1/1 0x40000000 - 0x4001ec20 pa = 0x40000000
temu> set-reg cpu=cpu0 reg="%fp" value=0x407ffff0
temu> set-reg cpu=cpu0 reg="%sp" value=0x407fff00
temu> run obj=cpu0 pc=0x40000000 time=10.0
It is assumed that the user have access to application software and / or cross compilers and is familiar with how to use these tools. |