Saturday 24 February 2018

Developing & Delivering KnowHow

Home > Training > ARM Cortex-M7 Software Design

ARM Cortex-M7 Software Design

Standard Level - 4 days

view dates and locations

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.

Who should attend?

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

Training materials

This class uses training materials developed by ARM.


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.

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.

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