Global training solutions for engineers creating the world's electronics products

ARM Cortex-M7 Software Design

Duration: 4 days

This course is designed for engineers developing software for platforms based around the ARM® Cortex®-M7 processor. The course includes an introduction to the ARM product range and supporting IP, the processor core, programmers' model, instruction set and debug architecture. It includes a number of worked examples and hands-on CMSIS compliant exercises to reinforce the training material.

Hands-on Labs

The learning is reinforced with unique Lab exercises which are run inside a self contained virtual machine environment. This allows the student to experience a real-life and project-ready development environment without the complexity of installing complex software prior to the class. This virtual machine is for the student to keep after the training class, allowing you to further experiment with embedded software development once the class has come to completion.

Software engineers writing application and system software for platforms using the ARM Cortex-M7 processor core.

  • Some knowledge of embedded systems
  • 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® and is complemented by Doulos' own lecture and laboratory material. This offers the students a well rounded and practical view of the topics covering both the Processor's features along with how to program it.

Day 1

Introduction to ARM

ARM as a company • Processor portfolio • Supported architectures • Processor profiles 

Cortex-M7 Overview

Block diagram • Architectural features • Instruction set • Programmer's model • Memory map • Memory interfaces • Caches • Exception handing • Memory protection • Power management • Implementation options 

ARMv7-M Programmers’ Model

Data types • Core registers • Modes, privileges and stack • Exceptions • Instruction set overview 

Tools Overview for ARM Microcontrollers

Keil MDK • ULINK/DSTREAM debug adapters • Development boards • DS-5 

CMSIS Overview


Day 2

ARMv7-M Assembly Programming

Data processing instructions • Load/Store instructions • Flow control • Miscellaneous instructions 

ARMv7-M Memory Model

Memory address space • Memory types and attributes • Alignment and endianness • Barriers 

Cortex-M7 Level 1 Sub-Systems

Caches • Tightly coupled memory (TCM) • System considerations 

Day 3

ARMv7-M Exception Handling

Exception Model • Interrupts • Writing the vector table and interrupt handlers • Internal exceptions and RTOS support • Fault exception 

ARMv7-M Compiler Hints & Tips

Basic Compilation • Compiler optimisations • Coding considerations • Mixing C/C++ and assembly • Local and global data issues 

ARMv7-M Linker and Libraries Hints & Tips

Linking basics • System and user libraries • Veneers • Stack issues • Linker optimisations and diagnostics • ARM supplied libraries 

Day 4

ARMv7-M Synchronization

Introduction to synchronization and semaphores • Exclusive accesses • Bit-banding 

Embedded Software Development

Default compilation behavior • System startup • Tailoring the image memory map to a device • Post startup initialization • Tailoring the C library to a device • Building and debugging an image 

ARMv7-M Debug

Coresight and debug access port DAP • Debug event and reset • Flash patch and breakpoint unit (FPB) • Data watch point and trace unit (DWT) • Instrumentation trace macrocell (ITM) • Embedded trace macrocell (ETM) • Trace port interface unit (TPIU) • Implementation details 

ARMv7-M Memory Protection

Memory protection overview • Regions overview • Regions overlapping • Setting up the MPU 


Keil MDK Introductory Workbook • ARMv6-M and ARMv7-M Assembly Language Workbook • ARM Compiler and Linker Workbook • Embedded Software Development Workbook 

ARM® and Cortex® are registered trade marks of ARM Holdings Plc.

The learning is reinforced with practical exercises using the GCC software development tool-chain and covers advanced topics such as Arm/Thumb2 assembly, writing low level device drivers, exception handlers and linker scripts.

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