Global training solutions for engineers creating the world's electronics

Arm Cortex-M23/M33 Software Design ONLINE

Standard Level: 5 sessions (7 hours per session)

PLEASE NOTE: This is a LIVE INSTRUCTOR-LED training event delivered ONLINE. Please note for this course, daily sessions are up to 7 hours including breaks.

This course is designed for engineers developing software for platforms based around the Arm® Cortex®-M23 and Cortex®-M33 processors.

The course includes an introduction to the Arm product range and supporting IP, the Cortex-M23/M33 cores, programmers' model, TrustZone-M security features, instruction set and debug architecture. The course includes a number of hands-on practical exercises covering both assembly and C programming to reinforce the lecture material.

This course is designed for software engineers writing application and firmware for platforms using the Cortex-M23/M33 processors.

  • How to program Arm Cortex-M23/M33 microcontrollers
  • How to deal with interrupts and aborts
  • Cortex- M23/M33 initialization procedure
  • How the SAU and IDAU interact
  • How to get into and out of TrustZone security states
  • Understanding how registers are affected and where programmers need to take care
  • Reducing overhead with CSME compliant compilers
  • Reducing security impacts to non-secure software
  • How to build non-secure software
  • Impacts to latency caused by transitions
  • Configure the Security Attribution Unit
  • How violations are caught
  • Practical debugging of secure applications
  • C programming for Embedded Systems training (or equivalent C programming knowledge)
  • Experience of assembler programming is not required but would be beneficial
  • Some knowledge of embedded systems
  • A basic awareness of Arm is useful but not essential

Doulos training materials are renowened for being the most comprehensive and user-friendly available. Their style, content and coverage are unique in the EMbedded Systems training world, and have made them sought after resources in their own right. The materials include:

    • Fully indexed class notes creating a complete reference manual
    • Workbook full of practical examples and solutions to help you apply your knowledge

The training materials for this class are based on Arm's own material and supplemented by Doulos' own lecture modules and hands-on experiences to provide students with the most practical and thorough information to achieve a well-rounded knowledge of the subject. Doulos is a global Arm Approved Training Partner.

Arm v8-M Introduction

  • Arm-v8M background
  • Safety consideration
  • TrustZone in a nutshell
  • System level security features


Cortex-M23/33 Processor Core

  • Cortex-M23/33 Processor
  • Cortex-M23/33 Pipeline
  • Cortex-M23/33 Hardware features


Armv8-M Programmers Model

  • Introduction
  • Data Types
  • Core Registers
  • Modes, privilege and stacks
  • Exceptions
  • Instruction Set Overview


Armv8-M Memory Protection

  • Memory Map
  • Memory Regions
  • Memory Attributes
  • MPU Programmer's model
  • Configuring the MPU
  • Memory Management Faults


Armv8-M Assembly Programming

  • Introduction
  • Data Processing Instructions
  • Load/Store Instructions
  • Flow Control
  • Miscellaneous


Armv8-M Synchronization

  • Introduction to synchronization and semaphores
  • Exclusive accesses
  • Memory ordering


Armv8-M Memory Model

  • Introduction
  • Memory Address Space
  • Memory Types and Attributes
  • Endianness
  • Barriers


Embedded Software Development

  • Semihosting / retargeting
  • Mixing C/C++ and assembly
  • Application Startup
  • Tailoring image memory map to your target
  • Accessing memory mapped peripherals
  • Additional considerations


GNU Compiler Hints and Tips

  • Basic Compilation
  • Compiler Optimizations
  • Coding Considerations
  • Local and Global Data Issues


GNU Linker Hints and Tips

  • Linking Basics
  • System and User Libraries
  • Linker Script
  • Veneer and Interworking
  • Linker Optimizations and Diagnostics
  • GNU Embedded Development Libraries


Armv8-M Exception Handling

  • Introduction
  • Exception Model
  • Exception Entry and Exit Behavior
  • Prioritization and Control
  • Interrupt Sensitivity
  • Writing the Vector Table and Interrupt Handlers
  • Internal Exceptions and RTOS Support
  • Fault Exceptions
  • Appendix


Armv8-M Security Extension

  • Overview
  • Memory Configuration
  • Function Calls & Toolchain Support
  • Exceptions

The tool-chain required for the exercises are provided within a self-contained virtual machine. The student is only required to install the VirtualBox software on her/his Windows/Linux/Mac host machine. The remaining tools and exercises files are pre-configured and located inside the Virtual Machine to be run locally. The VM can be used for day do day embedded software development and allows the student to continue or redo his exercises even after the course has ended.

The exercises are designed to run on the provided NUCLEO STM32L552 board. This board is kept by the student at the end of the class.

The exercises cover a large spectrum of topics amongst those:

  • Assembly programming
  • Exception handling with the implementation priority schemes and pre-emption
  • Mixing C and assembly to provide a semi-hosted solution
  • Creating linker scripts


The security related hands-on exercises are:

  • Part 1: Tool Flow
  • Part 2: Security Attribution Unit Configuration
  • Part 3: Configuring the non-secure world
  • Part 4: Transition to the non-secure world
  • Part 5: Using Arm cmse attributes for non-secure calls
  • Part 6: Using Arm cmse attributes for secure calls
  • Part 7: Identifying the source of a function call
  • Part 8: Checking a data array address range
  • Part 9: Accessing secure data from a non-secure application
  • Part 10: Illegal access to a secure function from the non-secure word

Course Dates

05 Aug 2024 ONLINE EurAsia Enquire
30 Sep 2024 ONLINE EurAsia Enquire
02 Dec 2024 ONLINE EurAsia Enquire

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

Next dates for this course