ARM Processor - A Gentle Introduction

ARM processors are ubiquitous. The are the industry standard processors where processing more than that of the 4/8 bit micro controller is desired and extremely low power consumption is not a concern.

You can read an authoritative history of ARM processors on Wikipedia. Here we are going to give you a quick overview so that you can make sense of the tremendous variety of ARM processors available and start using them in your designs.

ARM Holdings of UK designs the core processor and licenses the designs to various chip makers who design custom peripherals around the core, get the chips fabricated and sell the chips. This leads to the tremendous diversity of ARM chips available. Each licensee tries to use the core to serve its target audience. For example, Analog Devices puts high resolution analog components around the chip and Marvel puts a GPU into multi core ARM chips.

There are many varieties and versions of ARM core embedded in chips. Broadly they can be divided into ARM cores intended for the Application market and those intended for the embedded market.

The following graphic will hopefully help you make some sense of the diversity.

Some Notes

LPC2xxx series of ARM 7 chips have a Vectored Interrupt Controller as an on chip peripheral. The location of various code points to jump to when an interrupt happens are programmed in the VIC.

A side effect of this is that different types of code can reset the interrupt address registers to execute different functionality. For example, a boot loader can run on start up, set up VIC, and once it has checked the existing application code for integrity or downloaded new application code, pass execution to application code. The application code can then set up the VIC as needed by it.

This seems like a better scheme than the hard coding of the boot section via fuses as in the AVR series of 8 bit micro controllers.

Coming up

  • Architecture - Von Neuman cores, Harvard cores
  • Registers
  • Operating Modes
  • Clocking
  • Flash Access - Memory Accelerator Module
  • Getting started - first circuit
  • Getting started - gcc toolchain
  • Getting started - ARM Linux

Need More Help? Have An Opinion?

Do you need more help to solve your problem? Would you like to ask the author a question about your specific problem? Do you have a great idea about this?

We will post an answer within 2 business days. If you need more immediate assistance or you would like to discuss your issue privately, please use our contact us form or call us at 1-888-215-8557. We love solving technical issues and there is no charge if we solve your problem over email or over a short phone call.

[ ? ]

Author Information (optional)

To receive credit as the author, enter your information below.

(first or full name)

(e.g., City, State, Country)

Submit Your Contribution

  •  submission guidelines.

(You can preview and edit on the next page)