+ +
- -
Cours en ligne
 
Calendrier  Détails
Systèmes d'Exploitation
 
Calendrier  Détails
Programmation
Calendrier  Détails
Processors
 
Calendrier  Détails
Communications
 
 
 
Calendrier  Détails
+ +
> >
- -

 
ac6 >> ac6-training >> Processors >> ARM Cores >> Architecture ARM Cortex-M Télécharger le catalogue Télécharger la page Ecrivez nous Version imprimable

AAM Architecture ARM Cortex-M

Ce cours explique l'architecture globale ARM Cortex-M

formateur
Objectifs
  • Description de l'architecture des processeurs ARM Cortex-M
  • Présenter les possibilités de mise en œuvre matérielle et logicielle pour apprendre à créer des applications basées sur le Cortex-M
  • Passer en revue les différences entre les différents cœurs Cortex-M.
  • Ce cours fournit tous les prérequis pour les cours décrivant en détail les différents cœurs et processeurs Cortex-M
Environnement du cours
  • Support de cours pratique avec espace pour prendre des notes
  • Démonstrations ciblant les MCU basés sur Cortex-M4/M33 en utilisant l'IDE AC6 System Workbench basé sur GCC6
Pré-requis
  • Familiarité avec les concepts et la programmation du C embarqué
  • Connaissance de base des processeurs embarqués

Premier jour
ARM v6M/v7M/v8M Architecture Overview
  • Introduction to the ARM Architecture
  • Cortex-M Processors
  • Programmers’ Model
    • Core Registers
    • Privileges, Modes and Stacks
    • Instruction Set
    • Datapath and pipeline, speculative branch target prefetch
  • Exception Model
  • Memory Model
    • Address Map
    • Memory Types
    • Instruction and data alignment
    • System Control Space
  • Power Management
Exercise :  Core register review and changing Mode and Stack
Exercise :  Using low power mode
Cortex-M Implementation Diversity
  • ARM Cortex-M0 processor
  • ARM Cortex-M0+ processor
  • ARM Cortex-M3 processor
  • ARM Cortex-M4 processor
  • ARMv6-M versus ARMv7-M
Cortex-M Software Development
  • Tools
    • Keil IDE and Ulink2 probe presentation
    • System Workbench for MCU
  • Standards
    • AAPCS
    • UAL
    • CMSIS
  • Code Generation
    • Variable types supported
    • Register Usage, Parameter passing
    • Aligned and Unaligned accesses
    • Endianness
  • Image Generation
    • Dealing with branches
  • Fault Tolerance
    • Stack issues
  • Determinism
  • RTOS Support
    • MPU Overview
    • Systick Timer Overview
Exercise :  AAPCS review, CMSIS utilization and Assembly language inlining
Deuxième jour
Cortex-M Optimization
  • Compiler optimizations
    • Optimization levels
    • Tail-call
    • Inlining of function
    • Loop transformation
    • Mutlifile compilation
    • Floating point
  • Bit Banding
  • Memory copy optimizations
  • Base pointer optimization
Exercise :  Bit banding implementation
Cortex-M Debug
  • ARMv6-M and ARMv7-M Debug Overview
    • Coresight presentation
  • Invasive Debug
    • Beakpoints and Watchpoints
    • Vector Catch
    • Semi-hosting
  • Non-invasive Debug
    • Data Watchpoint and trace unit
    • Instrumentation Trace Macrocell (ITM)
    • Embedded Trace Macrocell (ETM)
    • Micro Trace Buffer (MTB)
Exercise :  Debug features review through the Keil IDE
Cortex-M Startup and Linker
  • Reset Behavior
    • Vector Table
  • CMSIS-CORE Startup and System Initialization
    • Startup File
    • Exception Handlers
    • Stack and heap setup
  • Post Startup Initialization
  • Working with the linker
    • Creating code and data sections
    • Placing code and data in memory
Exercise :  Startup sequence to the main() review
Exercise :  Executing the code from a SRAM
Troisième jour
Cortex-M Advanced Features
  • Exceptions Model
    • Exception Handling
    • Exception entry and exit
    • Exception stacking
    • Nesting
    • Tail-chaining
    • Late-arriving
Exercise :  Exception entry review
    • Prioritization and Control
    • NVIC registers
    • Priority boosting
    • Priority grouping
    • Masking exceptions
    • Writing Interrupt Handlers
    • Interrupt Sensitivity
    • Internal Exceptions and Faults
    • Fault escalation
Exercise :  Managing interrupts and priorities
  • Memory Protection Unit (MPU)
    • Initialization
    • Memory types and access permissions
    • Region overlapping
Exercise :  MPU Utilization
  • SysTick Configuration and Calibration
Exercise :  Working with the Systick Timer
  • Synchronization
    • Critical section, atomicity
    • LDREX/STREX instructions
    • Lock and unlock examples
  • Memory Barriers
    • Data memory, Data Synchronization and Instruction Synchronization Barriers
    • Utilization examples
  • Further Instruction Set Information
    • Return on the Instruction Set
    • If-Then Block
    • DSP extension Overview
Exercise :  Using DSP instructions
Using a GCC Toolchain
Exercise :  Creating a Cortex-M based application using a GCC toolchain (with AC6 System Workbench for MCU)