Most of the learning objectives of introductory courses to Computer Architecture focus on those
aspects that are related to the vision an assembly language programmer has of a computer.
Generally, a particular computer architecture is used to define these objec- tives, which is
usually selected with the double objective of being as simple as possible and to motivate the
students.
The ARM architecture is an ideal candidate as a vehicle architecture in teaching computer
architecture. On the one hand, as it is based on RISC, it is relatively simple architecture. On the
other, it is a widespread and current architecture (especially on mobile devices, smartphones and
tablets), which motivates the students.
To perform practices on ARM, it is convenient to have access either to a simulator or a development
tool on an ARM machine. Since this matter is taught on the first years, the selected application
should be simple to use and flexible enough. On the other hand, it ought to be free, as in freedom,
to be able to adapt it if necessary, multiplatform and free, as in free beer, to facilitate that
any student could install it on his own computer. After evaluating different alternatives, we
finally opted for developing and releasing our own ARM simulator, ARMSim, and a GUI for this
simulator, QtARMSim. The ARMSim simulator and its interface, QtARMSim, have been used during the
first semester of 2014/15. The feedback received by students and laboratory
teachers has been very positive.