This part of our ARM tutorial includes most of the theory part you need to know about ARM. It includes Features of ARM core, History, Versions etc. If you feel like, you can skip this part and begin to learn some practical aspects of ARM programming and Interfacing from the next page onwards.
ARM is a 32-bit RISC (Reduced Instruction Set Computer) processor architecture developed by ARM corporation. It was previously known as Advanced RISC Machines and prior to that Acron RISC Machines.The ARM architecture is licensed to companies that want to manufacture ARM-based CPUs or system-on-a-chip products. This enables the licensees to develop their own processors compliant with the ARM instruction set architecture. For example, the device we are using (LPC21XX) is ARM architecture based SOC product developed by NXP semiconductors, similarly all major semiconductor manufacturers like Atmel, Samsung, TI they all make ARM based SOCs. So learning about ARM is pretty cool as once you are familiar to ARM instruction set you can easily switch between various ARM based SOCs available in market.
The ARM is a Reduced Instruction Set Computer (RISC), as it incorporates these typical RISC architecture
a large uniform register file
a load/store architecture, where data-processing operations only operate on register contents, not
directly on memory contents
simple addressing modes, with all load/store addresses being determined from register contents and
instruction fields only
uniform and fixed-length instruction fields, to simplify instruction decode.
Download ARM architecture reference manual here
For detailed version history of ARM cpu cores please visit
In this site, I will be talking about ARM7-TDMI-S cpu from ARM only, more specifically we will be working with LPC21xx SOC from NXP semiconductors.
Download ARM7-TDMI-S Reference Manual here
We will be using LPC21xx for learning ARM interfacing and programming. check user manual of LPC2148
One can get all the required information to begin with ARM hacking from the documents and information given above. Now we can proceed directly to interfacing and programming aspects with LPC21xx which is an ARM7 based SOC.