This course is designed for those who are involved in designing systems based around the ARM Cortex-M3 or Cortex-M4 processor core. Including an introduction to the ARM product range and supporting IP, the course covers the Cortex-M3 core architecture, programmers' model, instruction set and bus architecture. The CoreSight debug architecture is also covered as relevant to the Cortex-M3/M4.
Prerequisites:
Some knowledge of embedded systems
Familiarity with digital logic and hardware/ASIC design issues
Knowledge of programming in C
Experience of programming in assembler is useful but not essential
A basic awareness of ARM is useful but not essential
Audience:
This course is intended for hardware design engineers who need to understand the issues involved when designing SoC's around the Cortex-M3/M4 processor core. It is also intended for software engineers developing for systems designed around the Cortex-M0 core. The software development parts of this course refer to ARM development tools such as Keil MDK-ARM. However, much of this material is relevant to users of 3rd party ARM tools.
Modules:
Introduction to ARM
Cortex-M3/M4 Introduction
Tools Overview for ARM Microcontrollers
v7-M Programmers Model
v7-M Assembly Programming
Cortex-M3/M4 Processor Core
Cortex-M4 Details (optional)
AHB-Lite
APB
Cortex-M3/M4 System Interfaces
SysTick Timer
Software Engineer’s Guide to Cortex-M3/M4
Exception Handling for ARM Architecture v7-M
Cortex-M3/M4 Clocks, Reset & Power
Cortex-M3/M4 Multi-processor Synchronization
Cortex-M3/M4 Memory Types
Cortex-M3/M4 Memory Protection Unit
Embedded Software Development
Migrating Legacy ARM/Thumb Code to Cortex-M3 (Thumb-2)