SWARM is a software model of the basic ARM processor in C++. Rather than a simple emulator, SWARM attempts to simulate the behaviour of the ARM's datapath. It also provides a model of the memory/cache/registers hierarchy for algorithm analysis.
Information regarding Project Releases and Project Resources. Note that the information here is a quote from Freecode.com page, and the downloads themselves may not be hosted on OSDN.
UART and LCD controllers have been added to the processor. A simple interractive debugger was also added, as well as a more realistic cache. SWARM now has sufficient functionality to run a version of uCLinux.
An OS timer, an interrupt controller, and memory mapped devices were added to the processor model. Mode changing was cleaned up, and the test app run-time library was fixed to reflect modes better.