ARM Cortex-M7 Software Design
Standard Level - 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.
Who should attend?
Software engineers writing application and system software for platforms using the ARM Cortex-M7 processor core.
Pre-requisites
- 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.
Content
Day 1
Introduction to ARM
ARM as a company • Processor portfolio • Supported architectures • Processor profilesCortex-M7 Overview
Block diagram • Architectural features • Instruction set • Programmer's model • Memory map • Memory interfaces • Caches • Exception handing • Memory protection • Power management • Implementation optionsARMv7-M Programmers’ Model
Data types • Core registers • Modes, privileges and stack • Exceptions • Instruction set overviewTools Overview for ARM Microcontrollers
Keil MDK • ULINK/DSTREAM debug adapters • Development boards • DS-5CMSIS Overview
CMSIS-Core • CMSIS-DSP • CMSIS-RTOS • CMSIS-SVD • CMSIS-DAPDay 2
ARMv7-M Assembly Programming
Data processing instructions • Load/Store instructions • Flow control • Miscellaneous instructionsARMv7-M Memory Model
Memory address space • Memory types and attributes • Alignment and endianness • BarriersCortex-M7 Level 1 Sub-Systems
Caches • Tightly coupled memory (TCM) • System considerationsDay 3
ARMv7-M Exception Handling
Exception Model • Interrupts • Writing the vector table and interrupt handlers • Internal exceptions and RTOS support • Fault exceptionARMv7-M Compiler Hints & Tips
Basic Compilation • Compiler optimisations • Coding considerations • Mixing C/C++ and assembly • Local and global data issuesARMv7-M Linker and Libraries Hints & Tips
Linking basics • System and user libraries • Veneers • Stack issues • Linker optimisations and diagnostics • ARM supplied librariesDay 4
ARMv7-M Synchronization
Introduction to synchronization and semaphores • Exclusive accesses • Bit-bandingEmbedded 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 imageARMv7-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 detailsARMv7-M Memory Protection
Memory protection overview • Regions overview • Regions overlapping • Setting up the MPUExercises
Keil MDK Introductory Workbook • ARMv6-M and ARMv7-M Assembly Language Workbook • ARM Compiler and Linker Workbook • Embedded Software Development WorkbookARM® 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: | |||
---|---|---|---|
April 9th, 2019 | Copenhagen, DK | Enquire | |
April 9th, 2019 | Stockholm, SE | Enquire | |
May 14th, 2019 | Munich, DE | Enquire | |
September 9th, 2019 | Ringwood, UK | 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 »
