Global training solutions for engineers creating the world's electronics

Arm Cortex-M0+ Software Design

Standard Level - 2 days

Arm® Cortex®-M0+ Software Design is a 2-day class for software engineers developing software for platforms based around the Arm Cortex-M0+ processor core. Including an introduction to the Arm product range and supporting IP, the course covers the Arm Cortex-M0+ programmer's model, instruction set architecture and software development tools.

The class includes a number of worked examples developed by Arm to reinforce the lecture material.

Software engineers writing application and system software for platforms using the Arm Cortex-M0+ processor core.

  • Some knowledge of embedded systems.
  • A basic awareness of Arm is useful but not essential.
  • Knowledge of programming in C.
  • Experience of assembler programming is not required but would be beneficial.

This class uses training materials developed by Arm®

Day 1

Introduction to Arm

Cortex-M0+ Overview

Tools Overview for Arm Microcontrollers

Toolchain • Models • Debug & Trace • Development Boards 

v6-M Programmer’s Model

Data types • Core registers • Modes • Exceptions • Instruction • Set Overview 

CMSIS Overview

CMSIS-CORE • CMSIS-DSP • CMSIS-RTOS • CMSIS-SVD • CMSIS-DAP 

v6-M Compiler Hints and Tips

Basic Compilation • Compiler Optimizations • Coding Considerations • Mixing C/C++ and Assembler • Local and Global Data issues 

v6-M Memory Model

System Caches • Write Buffers • TCMs • Memory Types • Endianness • Address Map 

Day 2

v6-M Exception Handling

Exception Model • Interrupts • Interrupt Handling • Prioritization and Control • Writing the Vector Table and Interrupt Handlers • Internal Interrupts and RTOS Support • Fault Exceptions 

Embedded Software Development for Cortex-M Processors

Tailoring the C library to your target • Tailoring image memory map to your target • Reset and Initialization • Further memory map considerations • Building and debugging your image 

Linker & Libraries Hints & Tips for Arm Architecture v6-M

Linking Basics • System and User Libraries • Veneers • Stack Issues • Linker Optimizations and Diagnostics • Arm Supplied Libraries • Scatter-loading 

Cortex-M0+ Debug

Introduction to Debug • Debug Access Port (DAP) • Breakpoints/Watchpoints & Vector Catch • Cortex-M0+ Debug • System Control 


Arm and Cortex-M0+ are registered trade marks of Arm Holdings Plc.

Keil MDK Introductory Workbook • Arm Compiler Workbook • Embedded Software Development Workbook 

This course content is fully covered by the scheduled Doulos training class "Developing with Arm Cortex-M"

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request