View the site in Français View the site in English (USA) Site displayed in English (GB)
You are here: ac6 > ac6-formation > ARM cores > Cortex-M0 implementation
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

RM0 Cortex-M0 implementation

This course covers the Cortex-M0 ARM core


formateur
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, clarifying the operation of the interconnect and the debug facilities integrated in the CPU.
Labs are run under RVDS

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

Outline
First day
CORTEX-M0 ARCHITECTURE
bullet_jaune_2 Instruction pipeline, single-cycle multiplier
bullet_jaune_2 Internal bus matrix, fixed memory map
bullet_jaune_2 Deterministic instruction execution timing
bullet_jaune_2 Highlighting the differences between Cortex-M0 and Cortex-M3
bullet_jaune_2 Architecture of a SOC based on Cortex-M0 : the NXP LP1100
ARM V6-M PROGRAMMING
bullet_jaune_2 Program registers, xPSR format
bullet_jaune_2 Writing the whole code in C language
bullet_jaune_2 Thumb 16-bit instruction set
bullet_jaune_3 Direct and indirect branches
bullet_jaune_3 Arithmetical instructions
bullet_jaune_3 Load and store instructions
bullet_jaune_3 Load and store multiple instructions
bullet_jaune_2 RVDS library functions, divide
bullet_jaune_2 System instruction, Thumb-2 16-bit instructions
bullet_jaune_2 Process stack pointer, supervisor call instruction
bullet_jaune_3 A tutorial developed with RVDS4.0 will be used to allow attendees to become familiar with Cortex-M0 low level programming
DEBUG
bullet_jaune_2 Coresight overview
bullet_jaune_2 CPU-dependent coresight units, breakpoints, watchpoints
bullet_jaune_2 Serial Wire Debug, extrat functionality over JTAG using 2 wire interface
bullet_jaune_2 Optional Serial Wire Trace port (SWV)
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 Nested Vectored Interrupt Controller
bullet_jaune_2 Interrupt priority levels, nesting
bullet_jaune_2 Tail-chaining and late arriving interrupts
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 Non-Maskable interrupt
bullet_jaune_2 SysTick hardware timer
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_3 A tutorial developed with RVDS4.0 will be used to allow attendees to become familiar with ARM IDE
HARDWARE IMPLEMENTATION
bullet_jaune_2 Bus architecture, von Neuman operation
bullet_jaune_2 Single-data transactions, zero-latency 32-bit interface
bullet_jaune_2 Address pipelining
bullet_jaune_2 Sequential transfers
bullet_jaune_2 AHB-lite specification