Best Developing with ARM Cortex-M for Embedded Systems Training
TOPICS
Training materials
This class is based on source training material developed by ARM themselves, augmented with supplemental content and labs developed by LearnChase. A global ARM Approved Training Center.
Agenda
The majority of the course content and sessions are relevant and of value for engineers developing products using platforms based on any of the current M Series family. In public class delivery contexts, the specific agenda followed may vary from that indicated below dependent on the focus and interests of the course participants attending that event. Upon registration, course participants will be asked to indicate which specific M Series core they are focusing on, which will steer the class agenda to some degree.
Note the course includes a valuable comparison of capabilities and application variance between different members of the M Series family which will be of benefit to evaluators as well as those preparing for project.
For private team-based training for software developers, the course can be focused entirely on a specific M Series core. The course descriptions for these courses can be found below:
ARM Cortex-M0 Software Design
ARM Cortex-M0+ Software Design
ARM Cortex-M3/M4 Software Design
ARM Cortex-M7 Software Design
For private team based training for system designers and integrators, there are also course options available:
ARM Cortex-M0 SoC Design
ARM Cortex-M0+ SoC Design
ARM Cortex-M3/M4 SoC Design
ARM Cortex-M7 SoC Design
Content
The following is representative of the public class agenda followed which includes participants requiring content covering M7 capability as well as M4, M3 and M0
Day 1
Introduction to ARM
ARM as a company • Processor portfolio • Supported architectures • Processor profiles
Cortex-M Overview
Block diagram • Architectural features • Instruction set • Programmer’s model • Memory map • Memory interfaces • Caches • Exception handing • Memory protection • Power management • Implementation options
ARMv7-M Programmers’ Model
Data types • Core registers • Modes, privileges and stack • Exceptions • Instruction set overview
Tools Overview for ARM Microcontrollers
Keil MDK • ULINK/DSTREAM debug adapters • Development boards • DS-5
CMSIS Overview
CMSIS-Core • CMSIS-DSP • CMSIS-RTOS • CMSIS-SVD • CMSIS-DAP
Day 2
ARMv7-M Assembly Programming
Data processing instructions • Load/Store instructions • Flow control • Miscellaneous instructions
ARMv7-M Memory Model
Memory address space • Memory types and attributes • Alignment and endianness • Barriers
ARMv7-M Exception Handling
Exception Model • Interrupts • Writing the vector table and interrupt handlers • Internal exceptions and RTOS support • Fault exception
Day 3
ARMv7-M Compiler Hints & Tips
Basic Compilation • Compiler optimisations • Coding considerations • Mixing C/C++ and assembly • Local and global data issues
ARMv7-M Linker and Libraries Hints & Tips
Linking basics • System and user libraries • Veneers • Stack issues • Linker optimisations and diagnostics • ARM supplied libraries
Embedded 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 image
Day 4
ARMv7-M Synchronization
Introduction to synchronization and semaphores • Exclusive accesses • Bit-banding
Embedded 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 image
ARMv7-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)
Extensions (M4/M7)
DSP • Floating Point
Cortex-M Level 1 Sub-Systems (M7)
Caches • Tightly coupled memory (TCM) • System considerations
ARMv7-M Memory Protection
Memory protection overview • Regions overview • Regions overlapping • Setting up the MPU
Exercises
Keil MDK Introductory Workbook • ARMv6-M and ARMv7-M Assembly Language Workbook • ARM Compiler and Linker Workbook • Embedded Software Development Workbook.