Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Getting started with Arm Microcontroller Resources
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • Microcontroller (MCU)
  • Embedded
  • Information & resources
  • Processors
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Getting started with Arm Microcontroller Resources

Joseph Yiu
Joseph Yiu
December 6, 2016
8 minute read time.

Chinese Version

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:

  • Applications Notes and Knowledge articles
  • FAQs and Knowledge articles

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.

See more about Arm microcontrollers

Anonymous
  • myarmCommunity
    myarmCommunity over 8 years ago

    i have no more time to study it for i have to support my family !

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Reinhard Keil
    Reinhard Keil over 10 years ago

    Under www.keil.com/learn, we offer now a learning platform for Cortex-M Microcontroller users that covers tutorials, appnotes, videos, and other useful documentation.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Joseph Yiu
    Joseph Yiu over 11 years ago


    Done. mbed information added.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • George Wang
    George Wang over 11 years ago

    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.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Song Bin 宋斌
    Song Bin 宋斌 over 11 years ago

    Hello Joseph,

    Nice document for beginners. I'm now considering translate it.

    Especially the Vendors information, really useful.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
>
Architectures and Processors blog
  • Introducing GICv5: Scalable and secure interrupt management for Arm

    Christoffer Dall
    Christoffer Dall
    Introducing Arm GICv5: a scalable, hypervisor-free interrupt controller for modern multi-core systems with improved virtualization and real-time support.
    • April 28, 2025
  • Getting started with AARCHMRS Features.json using Python

    Joh
    Joh
    A high-level introduction to the Arm Architecture Machine Readable Specification (AARCHMRS) Features.json with some examples to interpret and start to work with the available data using Python.
    • April 8, 2025
  • Advancing server manageability on Arm Neoverse Compute Subsystem (CSS) with OpenBMC

    Samer El-Haj-Mahmoud
    Samer El-Haj-Mahmoud
    Arm and 9elements Cyber Security have brought a prototype of OpenBMC to the Arm Neoverse Compute Subsystem (CSS) to advancing server manageability.
    • January 28, 2025