Sunday 25 August 2019

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

Lab Exercises:

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.
Course Dates:
October 29th, 2019 Stockholm, SE Enquire
October 29th, 2019 Copenhagen, DK Enquire
November 5th, 2019 Munich, DE 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