ARMSim# HOME :: PLUGINS        


Plugins are an exciting feature of the ARMSim# simulator. They enable the user to extend the functionality by adding simulated external hardware with GUIs, adding hypothetical hardware and/or instructions (e.g. the 64 bit register given below), or by adding hypothetical instructions alone.


In order to install any Plugin you must have ARMSim# itself installed. The installation of version 1.91 comes packaged with 2 Plugins: the PlugIn for the I/O SWI instructions codes and the Plugin for the emulation of the board view based on the Embest board's I/O devices (see below for more details).

Installing Plugins

All that is required to install a Plugin is to copy the corresponding .dll files to the same directory as the ARMSim# executable. The Plugin is automatically enabled when ARMSim# starts. Each Plugin is composed of two .dll files:

  • ARMPluginInterfaces.dll - this is the main interface to any other Plugin and is required at all times.
  • PluginName.dll - this is the local Plugin for a particular example.

Running Plugins

Once a Plugin is installed in the same directory as the ARMSim# executable, they are automatically available in the list found at File/Preferences ->Plugins tab. A Plugin is not however automatically enabled. The checkbox must be ticked next to its name in the File/Preferences ->Plugins tab list. See also the user manual.

Writing New Plugins

Some initial instructions are available from the documentation page.

Example Plugins

Each example Plugin provided will soon include the full source code and the binaries. Studying the source code of the example Plugins together with the Writing Plugins document, should provide sufficient information enable the user to implement new plugins.

I/O instructions using SWI Codes

This plugin simulates the most useful and common I/O operations. Examples are reading an integer from Stdin or from a file, printing integers or strings, etc. The operations are enabled through the use of a pre-assigned extension codes for SWI instructions. Examples of use are provided in the local ARM user manual.
  • This Plugin is included in the ARMSim# 1.91 version

Embest Development Board

This plugin simulates the major devices of the Embest S3CEV40 development board. Specifically it simulates the Eight-Segment display, LED's, buttons, keyboard and LCD display. Users can write code to drive these devices and this plugin will display their state, using a set of SWI instruction extensions (for the SWI code see the ARMSim# manual).
  • This Plugin is included in the ARMSim# 1.91 version

Traffic Light

This plugin simulates a traffic intersection with traffic lights and pedestrian crossing buttons. Users can program the logic to simulate the changing of lights, timing counters and reacting to pedestrians requesting a light change.

Eight Segment Display

This plugin simulates an Eight-Segment display. Users interact with the display via the ARM swi instruction extensions (see also the document for the I/O SWI Plugin). This example demonstrates extending the ARM instruction set as well as extending the ARMSim# user interface.

Register 64

This plugin simulates a hypothetical 64-bit general register in the ARM processor. The plugin simulates 8 instructions to manipulate this register and demonstrates the ease of creating new ARM instructions for research.


This plugin simulates a timer with interrupts (coming soon).
  • Download Timer Binaries
  • Download Timer Sources
ARMSim# has been developed by members of the Department of Computer Science at the University of Victoria, in Victoria, British Columbia, Canada. It is distributed free for academic use. For commercial use, please contact the authors.