For a beginner new to Arm-based microcontrollers, it can sometimes be a little difficult knowing where exactly to start finding all the useful information that will help with a new design. There are many resources available on the Internet, and a good place to start by choosing the correct Arm processor for your application can be the first hurdle.
To start with, there are two major types of Arm processors:
In recent years, an increasingly growing number of low cost microcontrollers based on the Cortex-A processors have been introduced. These microcontrollers enable embedded systems to run full Linux or Android at a fraction of the cost of a traditional COM (computer-on-module).
For processor information, Arm Developer is the place to start. From there you can find introductory product information of various Arm products. For more detail information, the InfoCenter is an area on the Arm web site that holds a large range of Arm product documentation.
If you are an Application processor developer, or if you are planning to use a microcontroller based on the Cortex-A processor, will find the following document useful:
These documents provide in depth introduction of the architecture of the Cortex-A processors. The product pages also have an overview of the processor products and other relevant information.
If you are developing applications (Apps) for smart phones, Android, Linux, or WindowsRT, the documentation for the corresponding SDK (Software Development Kit) could be better starting place. Very often in these programming environments, the application code makes use of device drivers or OS APIs and has no direct access to the underlying hardware.
If you are interested in low cost, low power microcontroller devices, the Cortex-M processors will likely to fit your needs. A beginner's guide for Arm Cortex-M processors can be found here:
Note: This document is now updated to include Cortex-M23 and Cortex-M33 processor. The latest version of this document is available in
English version Cortex M whitepaper
Chinese version Cortex M whitepaper
Arm now offers a learning platform for Cortex-M Microcontroller user that covers tutorials, appnotes, videos, and other useful documentation.
In Cortex-M – Arm Developer and Cortex-M resources pages, you can find technical information for various Cortex-M processors. For those of you interested in Armv8-M Architecture, the following page provides a technical overview and pointers to various document:
In the InfoCenter there are many documents for the embedded processors. For example, there are several User Guides for the Cortex-M processors:
These documents cover the programming model, the processor’s built-in peripherals (e.g. interrupt controller) and instruction set information. However, you still need to read the microcontroller documentation from the microcontroller vendors to understand the peripherals, memory map and various features for each of the microcontroller devices and/or families.
For MCU users that are migrating from Arm7 to Cortex-M, the following (slightly old) document might also be useful: Arm Cortex-M3 Processor Software Development for Arm7TDMI Processor Programmers
For MCU users that are using Cortex-M4 and migrating to Cortex-M7, there is also an application note covering a range of useful information.
A document on the use of Cortex-M processors for DSP applications can be found here: Arm white paper - DSP capabilities of Cortex-M4 and Cortex-M7
There is also a Programming Guide for the Cortex-R Processors.
You can also find additional product information for the Cortex-M and Cortex-R processors on the Arm web pages too.
If you are using a classic Arm processor such as the Arm7TDMI or Arm926EJ-S, you can also find all the documents on Arm website and InfoCenter. Again, there are a number of microcontroller devices build on Arm7TDMI and Arm9 processors. On the Arm website, you can find a number of Technical Reference Manuals (TRM) for these processors.
There are also several good third party guides for studying Arm7 based microcontrollers. For example, Hitex Insider’s Guides are free e-books which cover several microcontroller products based on Arm7.
Various resources are available for academic organisations through our university program.
For example, Arm provides various free materials and tutorials for academia. These can be download from :
(See the sub-sections on the left of the page).
In the Arm InfoCenter, in addition to product specifications and users guides, you can also find a number of:
Also, on the Keil website, there are application notes and tutorials on how to start programming with some of the popular microcontroller boards.
A list of Arm related books can be found here
Beyond the Arm web site, there are also numerous sources of further information:
On the Arm Community, please see the page of MCU resources.
stephancadene has kindly compiled a list of useful documents and posted it on the LinkedIn Arm based group: Some links and books to begin in Arm Architectures
Microcontroller vendors also have a lot of documentation, tutorials, application notes, etc. Some of them also have their own user forums:
Welcome | STMicroelectronics Community (Community home page)
STM32 MCUs Community | STMicroelectronics Community (STM32 MCU)
Cortex-M - MSP Low-Power Microcontrollers - TI E2E Community , TM4C Microcontrollers - TI E2E Community
Cortex-R - Hercules™ Safety Microcontrollers - TI E2E Community
A number of Arm related videos can be found on YouTube, for example, the Arm dedicated channel. The Arm YouTube channel contains many useful tutorials for learning Arm architecture and development tools including a great introduction covering the Arm Architecture Fundamentals presented by chrisshore.
When you install a development suite, typically it will also include documentation (some also have a quick start guide) and example projects. These allow you to get an understanding of the software development flow very quickly and enable you to start working on your project almost immediately.
Don’t forget to check out additional application notes and tutorial on the tool vendor’s web site.
mbed is a easy to use and low cost microcontroller software development platform for Arm microcontrollers. The mbed boards are designed to be very easy to use, and the development environment provide wide range of peripheral and middleware APIs so you can prototype your system very quickly. Starting from version 2 of the mbed SDK, the SDK is open source.
There are many resources available to help users start using Arm-based microcontrollers. Hopefully this article gives you a good starting point. If you find any additional useful information please let us know by adding a comment and we will update the list.
See more about Arm microcontrollers
I think it is also worth mentioning ARM mBed product. Well, it has its own abstraction, but it is a really good tool to prototype an idea and get started with ARM microcontroller.