Global training solutions for engineers creating the world's electronics

Arm Cortex-M3/M4 Software Design

Standard Level - 3 days

This course is designed for engineers developing software for platforms based around the Arm® Cortex®-M3 and Cortex-M4 processors, including an introduction to the Cortex Microcontroller Software Interface Standard (CMSIS) library. The course covers the Arm core range, programmer's model and Thumb-2 instruction set as well as the Cortex-M3/M4 Coresight debug architecture. It includes a number of worked examples and hands-on CMSIS compliant exercises to reinforce the lecture material. 

Software developers who wish to develop system and application software for Arm Cortex-M3 and Cortex-M4 processor based systems.

An in-depth knowledge of microprocessors is not essential, but would be advantageous. However, all participants must be computer literate and should have a basic understanding of the programming language C.

The training materials for this class are based on Arm®'s own material. Doulos is a global Arm Approved Training Center.

Day 1

Introduction to Arm

Cortex-M3/M4 Core Overview

Block Diagram • Programmer’s Model • Datapath and Pipeline • Memory Map • Bit-Banding • System Timer (SysTick) • State, Privilege, and Stacks • Alignment and Endianness • System Control Block 

Tools Overview for Arm Microcontrollers

Toolchain • Models • Debug & Trace • Development Boards 

v7-M Programmer’s Model

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

v7-M Assembly Programming

General Points on Syntax • Data processing Instructions • Branch and Control Flow Instructions • Memory Access Instructions • Exception Generating Instructions • Accessing Special Registers • Coprocessor Instructions • Memory Barriers and Synchronization 

Day 2

v7-M Memory Model

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

v7-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 

Software Engineer's Guide to Cortex-M3/M4

Implementation Options • Modes and Stacks • Special Purpose Registers • System Memory Interface • Memory Map • Systick Timer • Floating Point Unit • Power Management 

v7-M Compiler Hints and Tips

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

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

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

Day 3

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 

CMSIS Overview


Cortex-M3/M4 Debug

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


Arm, Cortex-M3, and Cortex-M4 are registered trade marks of Arm Holdings Plc.

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

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