ARM Cortex M7 - Software

(ref.005014A)

4 jours - 28 heures

Objectifs

  • Cette formation traite en détails les particularités des cœurs ARM, aussi bien logiciel que matériel dans le but de facilité la mise en oeuvre de cœurs Cortex-M7.
  • Elle est destiné aux :
    • Ingénieurs logiciel qui veulent non seulement obtenir des détails sur la façon d’écrire un logiciel pour processeur ARM Cortex-M7, mais qui souhaitent également comprendre l’implémentation matériel des cœurs au sein d’un microcontrôleur
    • Ingénieurs matériel qui ont besoin de comprendre comment concevoir des systèmes basés sur ARM Cortex-M7 mais également être capable de comprendre les bases de la programmation logicielle sur ces plates-formes

Partenaires

ARM ATC

Prérequis

  • Une compréhension de base des microprocesseurs et microcontrôleurs est utile mais non indispensable
  • Une compréhension de base de la logique numérique est utile mais non indispensable
  • Une compréhension de base de la programmation en assembleur ou en langage C est utile mais non indispensable
  • Des notions sur les cœurs ARM sont utiles mais non indispensables

Contenu

Block diagram

Architecture

Memory

Cache / MPU

Power management

Timers

Debug

Introduction

Data Types

Core Registers

Modes, privilege and stacks

Exceptions

Instruction Set Overview

Keil MDK

Keil MDK : µVision IDE

Keil MDK : ARM compiler

Keil MDK : µVision Debugger

ULINK

Development boards

ARM tools licensing

Introduction

CMSIS-CORE

CMSIS-DSP

CMSIS-RTOS

CMSIS-SVD

CMSIS-Pack

CMSIS-Driver

CMSIS-DAP

Processor Pipeline

Execution Pipelines

Prefetch Unit

Memory-mapped Registers

Introduction

Data Processing Instructions

Load/Store Instructions

Flow Control

Miscellaneous

Introduction

Memory Address Space

Memory Types and Attributes

Alignment and Endianness

Barriers

Caches

  • Cache Fundamentals
  • Cortex-M7 L1 Cache Sub-system

Tightly Coupled Memory (TCM)

System Considerations

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

Basic Compilation

Compiler Optimizations

Coding Considerations

Mixing C/C++ and Assembler

Local and Global Data issues

Linking Basics

System and User Libraries

Veneers

Stack Issues

Linker Optimizations and Diagnostics

ARM Supplied Libraries

Introduction to synchronization and semaphores

Exclusive accesses

Bit-banding

Default compilation tool behavior

System startup

  • CMSIS-CORE startup and system initialization code
  • C library initialization

Tailoring the image memory map to a device

  • Scatter-loading
  • Linker placement rules
  • Stack and heap management
  • Further memory map considerations

Post startup initialization

Tailoring the C library to a device

Building and debugging an image

Introduction to Debug

CoreSight and Debug Access Port (DAP) Overview

Debug Events and Reset

Flash Patch and Breakpoint Unit (FPB)

Data Watchpoint and Trace Unit (DWT)

Instrumentation Trace Macrocell (ITM)

Embedded Trace Macrocell (ETM)

  • ETM-M7 Data Trace

Trace Port Interface Unit (TPIU), Trace Packets, Timestamping & Trace Bandwidth

Implementation Details

Memory Protection Overview

Memory Regions

Region Attribute Control

Region Overlapping

Sub-region Support

Setting up the MPU

Extensions Overview

DSP Extension

Floating Point Extension

Notes

  • Les supports de cours seront fournis sur papier à chaque participant pendant la formation