Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > ARM processors > Cortex-M3 implementation
Télécharger le catalogue
Télécharger le catalogue
Télécharger la page
Télécharger la page
Ecrivez nous
Ecrivez nous
Version imprimable
Version imprimable
 

R4 Cortex-M3 implementation

This course covers the Cortex-M3 ARM core


formateur
Objectives
bullet_jaune_1 This course is split into 3 important parts:
bullet_jaune_2 Cortex-M3 architecture
bullet_jaune_2 Cortex-M3 software implementation and debug
bullet_jaune_2 Cortex-M3 hardware implementation.
bullet_jaune_1 Although the Cortex-M3 seems to a simple 32-bit core, it supports sophisticated mechanisms, such as exception pre-emption, internal bus matrix and debug units.
bullet_jaune_1 Through a tutorial, the Cortex-M3 low level programming is explained, particularly the ARM linker parameterizing and some tricky assembly instructions.
bullet_jaune_1 Note that attendees can replay these labs after the training.
bullet_jaune_1 The course also details the hardware implementation and provides some guidelines to design a SoC based on Cortex-M3, taking benefit of concurrent AHB transactions
bullet_jaune_1 An overview of the Coresight specification is provided prior to describing the debug related units.
Labs can be run under 2 possible environments: Keil IDE or IAR IDE.
A more detailed course description is available on request at info@ac6-formation.com
Prerequisites
bullet_jaune_2 A basic understanding of microprocessors and microcontrollers.

Plan
ARM Cortex-M3 CORPORATE INTRODUCTION
bullet_jaune_2 ARM architectural summary
bullet_jaune_2 Meeting the challenge with profiles
bullet_jaune_2 ARM instruction set evolution
ARM Cortex-M3 INTRODUCTION
bullet_jaune_2 ARM Cortex-M3 processor macrocell
bullet_jaune_2 Programmer’s model
bullet_jaune_2 Program status registers
bullet_jaune_2 Instruction pipeline
bullet_jaune_2 Fixed memory map
bullet_jaune_2 Memory Protection Unit
bullet_jaune_2 Interrupt handling
bullet_jaune_2 Power management
ARM Cortex-M3 CORE
bullet_jaune_2 Block diagram
bullet_jaune_2 Datapath and pipeline
bullet_jaune_2 Write buffer
bullet_jaune_2 Bit-banding
bullet_jaune_2 State, privilege and stacks
bullet_jaune_2 Alignment and endianness
bullet_jaune_2 System control block
THUMB-2 INSTRUCTION SET
bullet_jaune_2 General points on syntax
bullet_jaune_2 Data processing instructions
bullet_jaune_2 Branch and control flow instructions
bullet_jaune_2 Memory access instructions
bullet_jaune_2 Exception generating instructions
bullet_jaune_2 If then conditional blocks
bullet_jaune_2 Stack in operation
bullet_jaune_2 Accessing special registers
bullet_jaune_2 Tutorial: Becoming familiar with Keil IDE
bullet_jaune_3 How to design a new project
bullet_jaune_3 Parameterizing the IDE
bullet_jaune_3 Executing simple labs to understand the operation of assembly complex instructions, such as table branch and it
INTERRUPTS
bullet_jaune_2 Basic interrupt operation
bullet_jaune_2 Interrupt entry / exit, timing diagrams
bullet_jaune_2 Tail chaining
bullet_jaune_2 Interrupt response, pre-emption
bullet_jaune_2 NVIC registers
bullet_jaune_2 Interrupt prioritization
bullet_jaune_2 Interrupt implementation configurability, impact on core size
EXCEPTIONS
bullet_jaune_2 Exception behavior, exception return
bullet_jaune_2 Non-maskable exceptions
bullet_jaune_2 Privilege, modes and stacks
bullet_jaune_2 Priority boosting
bullet_jaune_2 Vector table
MEMORY TYPES
bullet_jaune_2 Device and normal memory ordering
bullet_jaune_2 Memory type access restrictions
bullet_jaune_2 Access order
bullet_jaune_2 Memory barriers
MEMORY PROTECTION UNIT
bullet_jaune_2 Memory protection overview
bullet_jaune_2 Fault status and address registers
bullet_jaune_2 Region overview, memory type and access control, sub-regions
bullet_jaune_2 Setting up the MPU
EMBEDDED SOFTWARE DEVELOPMENT WITH Cortex-M3
bullet_jaune_2 Embedded development process
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 Building and debugging your image
bullet_jaune_2 Long branch veneers
bullet_jaune_2 Tutorial: Becoming familiar with Keil IDE
bullet_jaune_3 Scatterloading
bullet_jaune_3 Retargeting the C library
bullet_jaune_3 Handling interrupts in C language
bullet_jaune_3 Using SVC
INVASIVE DEBUG
bullet_jaune_2 Coresight debug infrastructure
bullet_jaune_2 Halt mode
bullet_jaune_2 Monitor mode
bullet_jaune_2 Debug event sources
bullet_jaune_2 Flash patch and breakpoint features
bullet_jaune_2 FPB remapping
bullet_jaune_2 Data watchpoint and trace
bullet_jaune_2 DWT registers
bullet_jaune_2 ARM debug interface specification
bullet_jaune_2 AHB-Access Port
bullet_jaune_2 Possible DP implementations
NON-INVASIVE DEBUG
bullet_jaune_2 Basic ETM operation
bullet_jaune_2 Instruction trace principles
bullet_jaune_2 ITM packets
bullet_jaune_2 DWT trace packets
bullet_jaune_2 Time-stamping packets
bullet_jaune_2 Instruction tracing
bullet_jaune_2 TPIU components
bullet_jaune_2 TPIU pinout
bullet_jaune_2 Software interface
C/C++ COMPILER HINTS AND TIPS FOR Cortex-M3
bullet_jaune_2 ARM compiler optimisations
bullet_jaune_2 Mixing C/C++ and assembly
bullet_jaune_2 Coding with ARM compiler
bullet_jaune_2 Measuring stack usage
bullet_jaune_2 Unaligned accesses
bullet_jaune_2 Local and global data issues, alignment of structures
bullet_jaune_3 Tutorial: Implementing these optimizations by using ARM/Keil compiler
AMBA3.0 INTERCONNECT SPECIFICATION
bullet_jaune_2 Purpose of this specification
bullet_jaune_2 2-bus organization
bullet_jaune_2 Example of SoC based on AMBA specification
AHB - ADVANCED HIGH PERFORMANCE BUS
bullet_jaune_2 Centralized address decoding
bullet_jaune_2 Address gating logic
bullet_jaune_2 Arbitration, bus parking
bullet_jaune_2 Single-data transactions
bullet_jaune_2 Address pipelining
bullet_jaune_2 Sequential transfers
bullet_jaune_2 AHB-lite specification
APB - ADVANCED PERIPHERAL BUS
bullet_jaune_2 Second-level address decoding
bullet_jaune_2 Operation of the AHB-to-APB bridge
bullet_jaune_2 APB3.0 new features
AHB CORTEX-M3 HARDWARE IMPLEMENTATION
bullet_jaune_2 Clocking and reset, power management
bullet_jaune_2 Bus interfaces
bullet_jaune_2 AMBA-3 compliance
bullet_jaune_2 Unifying the code buses
bullet_jaune_2 Branch Status signal
bullet_jaune_2 Unaligned access management
bullet_jaune_2 Connection to the TPIU