Getting started with Arm Microcontroller Resources
For a beginner new to Arm based microcontrollers, it can sometimes be a little difficult knowing where exactly to start but this post will help you.
By Joseph Yiu

1. Overview
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:
- Application processors – these are suitable for a fully featured OS, for example Linux, Windows RT, etc. They are typically used on smart phones, mobile computing devices and now even servers. The Arm Cortex-A processor family is suitable for these applications.
- Embedded processors – these typical include microcontroller products, as well as a wide range of other embedded systems. The Cortex-M processor family is very popular in the microcontroller market, and the Cortex-R processor family is typically used in specialized controllers like hard disk drives, automotive applications and baseband control.
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).
2. Arm web site documentation
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.
2.1 - Resources for Application processors
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:
| Reference | Document |
| 1 | Cortex-A Series Programmer’s Guide |
| 2 | Neon Programmer’s Guide |
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.
2.2 - Resources for Embedded processors
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:
| Processors | User Guide |
|---|---|
| Cortex-M7 | Cortex-M7 Devices Generic User Guide |
| Cortex-M4 | Cortex-M4 Devices Generic User Guide |
| Cortex-M3 | Cortex-M3 Devices Generic User Guide |
| Cortex-M0+ | Cortex-M0+ Devices Generic User Guide |
| Cortex-M0 | Cortex-M0 Devices Generic User Guide |
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.
2.3 – Resources for classic Arm processors
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.
2.4 – Resources and materials for education / teaching
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 :
| Types | Links |
|---|---|
| For students | The Arm University Program: For Students - Arm |
| For educators | The Arm University Program: For Educators - Arm |
| For researchers | The Arm University Program: For Researchers - Arm |
(See the sub-sections on the left of the page).
2.5 - Additional resources on Arm website
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.
3. Other information and materials
3.1 – Books
A list of Arm related books can be found here
3.2 – On the web
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:
| Vendors | Forum pages |
|---|---|
| Analog Devices Inc | Analog Microcontrollers | EngineerZone |
| Atmel | Atmel Community |
| Cypress | Cypress Forum |
| Infineon | Infineon forum |
| NXP | NXP forum |
| Nuvoton | Nuvoton forum |
| Silicon Laboratories | Silicon Labs Community |
| ST Microelectronics |
Welcome | STMicroelectronics Community (Community home page) STM32 MCUs Community | STMicroelectronics Community (STM32 MCU) |
| Texas Instruments |
Cortex-M - MSP Low-Power Microcontrollers - TI E2E Community , TM4C Microcontrollers - TI E2E Community Cortex-R - Hercules™ Safety Microcontrollers - TI E2E Community |
3.3 - Videos
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.
3.4 - Development tools
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.
3.5 - mbed development platform
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.
4. Summary
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.
By Joseph Yiu
Re-use is only permitted for informational and non-commerical or personal use only.
