Global training solutions for engineers creating the world's electronics

ARM Cortex-M23 Software Design

Standard Level - 4 days

This course is designed for engineers developing software for platforms based around the Arm® Cortex®-M23 processor. The course includes an introduction to the Arm product range and supporting IP, the Cortex-M23 core, 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 system software for platforms using the Cortex-M23 processor.

  • 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

This class uses training materials developed by ARM®

Day 1

  • Introduction to Arm
  • Cortex-M23 Overview
  • Architectural Features • Register View • Modes of Execution • System Interfaces • Memory Map • Exceptions • Security Attribution • Power Management • Debug Features
  • Armv8-M Baseline Programmers’ Model
  • Introduction • Data Types • Core Registers • Modes, privilege and stacks • Exceptions • Instruction Set Overview
  • Tools Overview for Arm Microcontrollers
  • Arm Compilation Tools • Keil MDK • DS-5 Arm • Fast Models
  • Cortex-M23 Processor Core
  • Pipeline block diagram/Overview • Fetch, Decode/Execute, Complex Executes • Unaligned access penalties
  • CMSIS Overview
  • Introduction • CMSIS-Core • CMSIS-DSP • CMSIS-Driver • CMSIS-RTOS • CMSIS-SVD • CMSIS-Pack • CMSIS-DAP


Day 2

  • Armv8-M Baseline Assembly Programming
  • Introduction • Data Processing Instructions • Load/Store Instructions • Flow Control • Miscellaneous
  • Armv8-M Baseline 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
  • Armv8-M Memory Protection
  • Memory Map • Memory Regions • Memory Attributes • MPU Programmer's model • Configuring the MPU • Memory Management Faults


Day 3

  • Armv8-M Synchronization
  • Introduction to synchronization and semaphores • Exclusive accesses • Memory ordering
  • Armv8-M Baseline Compiler Hints and Tips
  • Compiler Support for Armv8-M • Language and Procedure Call Standards • Compiler Optimizations • Coding Considerations • Mixing C/C++ and Assembler • Local and Global Data issues
  • Armv8-M Baseline Linker Hints and Tips
  • Linking Basics • System and User Libraries • Veneers • Stack Issues • Linker Optimizations and Diagnostics • Arm Supplied Libraries
  • Armv8-M Embedded Software Development
  • Default compilation tool behavior • System startup • CMSIS-CORE startup and system initialization code • C library initialization • Tailoring the image memory map to a device • Scatter-loading • Linker placement rules • Stack and heap management • Further memory map considerations • Post startup initialization • Tailoring the C library to a device • Building and debugging an image


Day 4

  • Armv8-M Debug
  • Introduction to Debug • Debug Modes and Security • Debug Events and Reset • Flash Patch and Breakpoint Unit - FPB • Data Watchpoint and Trace Unit - DWT • Micro Trace Buffer - MTB (optional) • Embedded Trace Macrocell - ETMv4.2 (optional) • Trace Port Interface Unit - TPIU (if ETM is implemented)
  • Armv8-M DSP Extension
  • Extensions Overview • DSP Extension
  • Armv8-M Security Extension
  • Overview • Memory Configuration • Function Calls & Toolchain Support • Exceptions

Arm and Cortex, are registered trade marks of Arm Holdings Plc.

The exercises cover a large spectrum of topics; Starting with assembly programming, data transfers, data processing, flow control, digital signal processing. Exception handling with the implementation priority schemes and pre-emption. Mixing C and assembly to provide a semi-hosted solution. Implementing secure applications using the TrustZone-M features.

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