Sunday 24 May 2020

Developing & Delivering KnowHow

Home > Training > Arm Cortex-M3/M4 Software Design

Arm Cortex-M3/M4 Software Design

Standard Level - 3 days

view dates and locations

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.

Who should attend?

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.

Training materials

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


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

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

This course content is fully covered by the scheduled Doulos training class "Developing with Arm Cortex-M". Please enquire using the links below or contact your local Doulos office to discuss your specific requirements.
Course Dates:
September 14th, 2020 Munich, DE Enquire
September 21st, 2020 Paris, FR Enquire
September 29th, 2020 Ringwood, UK Enquire
October 13th, 2020 Stockholm, SE Enquire
October 13th, 2020 Copenhagen, DK Enquire
indicates CONFIRMED TO RUN courses.

Looking for team-based training, or other locations?

Complete an on-line form and a Doulos representative will get back to you »

Back to top
Privacy Policy Site Map Contact Us