Global training solutions for engineers creating the world's electronics products

Arm Cortex-M7 Software Design ONLINE

Duration: 5 sessions (7 hours per session)

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 and the hardware development board 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.

  • 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 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 Cortex-M7 Overview

Block diagram • Micro-architectural features • Instruction set • Memory interfaces • System buses • TCM/Caches • Memory protection • Pipeline features • Lock-step operation

Armv7-M Programmers' Model

Introduction • Data Types • Core Registers • Modes, privilege and stacks • Exceptions • Instruction Set Overview • Programming standards

Armv7-M Assembly Programming

Introduction • Data Processing Instructions • Load/Store Instructions • Flow Control • Miscellaneous

Armv7-M Memory Model

Introduction • Memory Address Space • Memory Types and Attributes • Alignment and Endianness • Barriers

Armv7-M Memory Protection

Memory Protection Overview • Memory Regions • Region Attribute Control • Region Overlapping • Sub-region Support • Setting up the MPU

Embedded Software Development

Semihosting / retargeting • Mixing C/C++ and assembly • Application Startup • Tailoring image memory map to your target • Accessing memory mapped peripherals • Additional considerations

GNU Compiler Hints and Tips

Basic Compilation • Compiler Optimizations • Coding Considerations • Local and Global Data Issues 

GNU Linker Hints and Tips

Linking Basics • System and User Libraries • Linker Script • Veneer and Interworking • Linker Optimizations and Diagnostics • GNU Embedded Development Libraries

Armv7-M 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

Cortex Microcontroller Software Interface Standard (CMSIS)

Introduction • CMSIS-Core • CMSIS-DSP • CMSIS-Driver • CMSIS-RTOS • CMSIS-SVD • CMSIS-Pack • CMSIS-DAP

Cortex-M7 Level 1 Sub-Systems

Caches • Cache Fundamentals • Cortex-M7 L1 Cache Sub-system • Tightly Coupled Memory (TCM) • System Considerations

Armv7-M Debug

Introduction to Debug • Debug • Events and Reset • Flash Patch and Breakpoint Unit (FPB) • Data Watchpoint and Trace Unit (DWT) • Instrumentation Trace Macrocell (ITM) • Embedded Trace Macrocell (ETM) • Trace Port Interface Unit (TPIU), Trace Packets, Timestamping & Trace Bandwidth

Appendix

Cortex-M7 Processor Core

Processor Pipeline • Execution Pipelines • Prefetch Unit • Memory-mapped Registers

Armv7-M Extensions

Extensions Overview • DSP Extension • Floating-point Extension

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 and the hardware development board 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.

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