ARM Cortex-M7 Software Design
Standard Level - 4 daysview 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
This class uses training materials developed by ARM.
Introduction to ARMARM as a company • Processor portfolio • Supported architectures • Processor profiles
Cortex-M7 OverviewBlock diagram • Architectural features • Instruction set • Programmer's model • Memory map • Memory interfaces • Caches • Exception handing • Memory protection • Power management • Implementation options
ARMv7-M Programmersí ModelData types • Core registers • Modes, privileges and stack • Exceptions • Instruction set overview
Tools Overview for ARM MicrocontrollersKeil MDK • ULINK/DSTREAM debug adapters • Development boards • DS-5
CMSIS OverviewCMSIS-Core • CMSIS-DSP • CMSIS-RTOS • CMSIS-SVD • CMSIS-DAP
ARMv7-M Assembly ProgrammingData processing instructions • Load/Store instructions • Flow control • Miscellaneous instructions
ARMv7-M Memory ModelMemory address space • Memory types and attributes • Alignment and endianness • Barriers
Cortex-M7 Level 1 Sub-SystemsCaches • Tightly coupled memory (TCM) • System considerations
ARMv7-M Exception HandlingException Model • Interrupts • Writing the vector table and interrupt handlers • Internal exceptions and RTOS support • Fault exception
ARMv7-M Compiler Hints & TipsBasic Compilation • Compiler optimisations • Coding considerations • Mixing C/C++ and assembly • Local and global data issues
ARMv7-M Linker and Libraries Hints & TipsLinking basics • System and user libraries • Veneers • Stack issues • Linker optimisations and diagnostics • ARM supplied libraries
ARMv7-M SynchronizationIntroduction to synchronization and semaphores • Exclusive accesses • Bit-banding
Embedded Software DevelopmentDefault 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 DebugCoresight 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 ProtectionMemory protection overview • Regions overview • Regions overlapping • Setting up the MPU
ExercisesKeil 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