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.
Hands-on Labs
The learning is reinforced with unique Lab exercises which are run inside a self contained virtual machine environment. This allows the student to experience a real-life and project-ready development environment without the complexity of installing complex software prior to the class. This virtual machine is for the student to keep after the training class, allowing you to further experiment with embedded software development once the class has come to completion.
Software engineers writing application and system software for platforms using the ARM Cortex-M7 processor core.
This class uses training materials developed by Arm® and is complemented by Doulos' own lecture and laboratory material. This offers the students a well rounded and practical view of the topics covering both the Processor's features along with how to program it.
ARM as a company • Processor portfolio • Supported architectures • Processor profiles
Block diagram • Architectural features • Instruction set • Programmer's model • Memory map • Memory interfaces • Caches • Exception handing • Memory protection • Power management • Implementation options
Data types • Core registers • Modes, privileges and stack • Exceptions • Instruction set overview
Keil MDK • ULINK/DSTREAM debug adapters • Development boards • DS-5
CMSIS-Core • CMSIS-DSP • CMSIS-RTOS • CMSIS-SVD • CMSIS-DAP
Data processing instructions • Load/Store instructions • Flow control • Miscellaneous instructions
Memory address space • Memory types and attributes • Alignment and endianness • Barriers
Caches • Tightly coupled memory (TCM) • System considerations
Exception Model • Interrupts • Writing the vector table and interrupt handlers • Internal exceptions and RTOS support • Fault exception
Basic Compilation • Compiler optimisations • Coding considerations • Mixing C/C++ and assembly • Local and global data issues
Linking basics • System and user libraries • Veneers • Stack issues • Linker optimisations and diagnostics • ARM supplied libraries
Introduction to synchronization and semaphores • Exclusive accesses • Bit-banding
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
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
Memory protection overview • Regions overview • Regions overlapping • Setting up the MPU
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.
The learning is reinforced with practical exercises using the GCC software development tool-chain and covers advanced topics such as Arm/Thumb2 assembly, writing low level device drivers, exception handlers and linker scripts.
Complete an enquiry form and a Doulos representative will get back to you.
Enquiry FormPrice on request