Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > ARM cores > Cortex-M0 / Cortex-M0+ implementation

RM0 Cortex-M0 / Cortex-M0+ implementation

This course covers both Cortex-M0 and Cortex-M0+ ARM CPUs

Objectives
bullet_jaune_1 This course is split into 3 important parts:
bullet_jaune_2 Processor architecture
bullet_jaune_2 Software implementation
bullet_jaune_2 Hardware implementation.
bullet_jaune_1 A tutorial has been developed by ACSYS to facilitate the understanding of Cortex-M0 low level programming, therefore labs can be replayed after the course.
bullet_jaune_1 The course explains how to design a SoC based on Cortex-M0 / Cortex-M0+, clarifying the operation of the interconnect and the debug facilities integrated in the CPU.

bullet_jaune_1 This training has been delivered several times to companies developing SoCs for wireless / consumer market.
Labs are run under Keil

A more detailed course description is available on request at info@ac6-training.com
Prerequisites
bullet_jaune_2 Basic knowledge of processor or DSP.

Plan
First day
CORTEX-M0/M0+ ARCHITECTURE
bullet_jaune_2 Instruction pipeline
bullet_jaune_2 Internal bus matrix, fixed memory map
bullet_jaune_2 Highlighting the differences between Cortex-M0 and Cortex-M3
bullet_jaune_2 Implementation options
bullet_jaune_2 Cortex-M0+ additional features, dual privilege levels, dual stack
ARM V6-M PROGRAMMING
bullet_jaune_2 Program registers, xPSR format
bullet_jaune_2 Thumb 16-bit instruction set
bullet_jaune_2 Keil library functions, divide
bullet_jaune_2 Barrier instruction, use cases
DEBUG
bullet_jaune_2 Coresight overview
bullet_jaune_2 CPU-dependent coresight units, breakpoints, watchpoints
bullet_jaune_2 Vector catch
bullet_jaune_2 Serial Wire Debug
bullet_jaune_2 Optional Micro Trace Buffer (Cortex-M0+)
MEMORY PROTECTION UNIT - CORTEX-M0+
bullet_jaune_2 Memory protection overview, ARM v7 PMSA
bullet_jaune_2 Cortex-M0 MPU and bus faults
bullet_jaune_2 Region overview, memory type and access control, sub-regions
bullet_jaune_2 Setting up the MPU
Second day
EXCEPTION MECHANISM AND LOW POWER MODES
bullet_jaune_2 Exception vs interrupt
bullet_jaune_2 Automatic state saving on exception entry and exit, CISC approach
bullet_jaune_2 Interrupt priority levels, nesting
bullet_jaune_2 Tail-chaining and late arriving interrupts
bullet_jaune_2 Fault management
bullet_jaune_2 OS system call and task switching
LOW POWER MODES
bullet_jaune_2 Standby and deep sleep with state retention
bullet_jaune_2 Event vs interrupt
bullet_jaune_2 Optional wake-up interrupt controller
bullet_jaune_2 SysTick hardware timer
bullet_jaune_2 Requirements for the Power Management Unit
EMBEDDED SOFTWARE DESIGN
bullet_jaune_2 Application startup
bullet_jaune_2 Placing code, data, stack and heap in the memory map, scatterloading
bullet_jaune_2 Reset and initialisation
bullet_jaune_2 Placing a minimal vector table
bullet_jaune_2 Further memory map considerations, 8-byte stack alignment in handlers
bullet_jaune_2 Long branch veneers
bullet_jaune_2 CMSIS library
HARDWARE IMPLEMENTATION
bullet_jaune_2 Bus architecture, von Neuman operation
bullet_jaune_2 Single-cycle I/O port (Cortex-M0+)
bullet_jaune_2 Address pipelining
bullet_jaune_2 Sequential transfers
bullet_jaune_2 AHB-lite specification