Friday 27 November 2015

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.

This is also an excellent preparatory course for engineers looking to become an ARM Accredited MCU Engineer. Find out how Doulos can help you work towards an AAE qualification »


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


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.

Back to top
Privacy Policy Site Map Contact Us