Loading
ARM MCU Architecture eLearning Course

View all eLearning Courses

PCI Express Courses
Fundamentals of PCI Express eLearning Course
Comprehensive PCI Express 3.1 eLearning Course
PCI Express Config Space and Transaction Routing eLearning Course
PCI Express Physical Layer and Link Initialization and Training eLearning Course
PCI Express Interrupt Handling eLearning Course
PCI Express Error Handling eLearning Course
PCI Express Power Management eLearning Course
PCI Express Hot Plug and Resets eLearning Course
PCI Express 2.x and 3.x ECNs eLearning Course
Intro to PCI Express IO Virtualization eLearning Course
Mobile PCI Express (M-PCIe) eLearning Course
USB Courses
xHCI eLearning Course
USB Type-C and Power Delivery eLearning Course
Comprehensive USB 3.0 eLearning Course
Comprehensive USB 2.0 Embedded System Architecture
x86 Architecture Courses
Intel x86 Processor and Platform Architecture eLearning Course
Intro to 32/64-bit x86 Architecture eLearning Course
Fundamentals of Intel QPI eLearning Course
ARM Courses
ARM 64-bit Architecture (ARM v8-A) eLearning Course
ARM v8-A Registers and Instruction Set eLearning Course
ARM v8-A Memory Management eLearning Course
ARM v8-A Exceptions and Interrupts eLearning Course
Comprehensive ARM Architecture eLearning Course
ARM v7 Registers and Instruction Set eLearning Course
ARM v7 Memory Management eLearning Course
ARM v7 Exceptions and Interrupts eLearning Course
Fundamentals of AMBA eLearning Course
ARM 32-bit Architecture (ARM v7) eLearning Course
ARM v8-A Porting and Software Optimization eLearning Course
ARM v8-A (64-bit) Pipelines eLearning Course
ARM MCU Architecture eLearning Course
ARM Cortex-M0 and M0+ Hardware Design eLearning Course
ARM Cortex-M3 and M4 Hardware Design eLearning Course
ARM Cortex-M7 Processor eLearning Course
Fundamentals of ARM Architecture
Fundamentals of ARMv8-A eLearning Course
Introduction to ARM AMBA eLearning Course
Introduction to ARM TrustZone eLearning Course
Memory Courses
Modern DRAM (DDR4 / DDR3 / LPDDR3 / LPDDR2) eLearning Course
Storage Courses
SAS 3.0 Storage Technology eLearning Course
NVM Express 1.2a eLearning Course
SATA 3.2 Technology eLearning Course
Advanced Host Controller Interface (AHCI) eLearning Course
Universal Flash Storage (UFS) eLearning Course
Virtualization Courses
Comprehensive PC Virtualization eLearning Course
Intro to Virtualization Technology eLearning Course



ARM MCU Architecture eLearning Course

Instructor(s): Paul Devriendt
Number of Modules: 28
Subscription Length: 90 days

Course Price
$695.00



ARM MCU Architecture eLearning Course

What's Included?

ARM MCU eLearning modules
(unlimited access for 90 days)
PDF of Course Slides
(yours to keep, does not expire)

Who Is This Course For?

The ARM MCU Architecture eLearning course focuses on software aspects of the ARMv6-M and ARMv7-M Architecture profiles (Cortex-M). This course is aimed at embedded software and systems developers who wish to acquire a broad knowledge of ARM technology with a bias toward the microcontroller market.

This was the only eLearning course endorsed by ARM for anyone wanting to take the ARM MCU Certification exam when ARM was still offering their AAME certification program (AAME - ARM Approved MCU Engineer). That program has been discontinued by ARM, but the information in this course is still very relevant and extremely valuable for anyone working with ARM microcontrollers.

ARM Endorsement

“On the strength of MindShare’s position as an industry leader in technology training, particularly in the area of microprocessor architecture, we were happy to welcome them to the AAE program as an ARM Accreditation Training Partner (AATP). Their expertise in delivering engaging self-paced eLearning courses should make MindShare's ARM Accredited Engineer Certification eLearning course a very good way to efficiently and cost-effectively prepare for the ARM Accredited Engineer (AAE) exam”.
- Daniel Dearing, AAE Program Manager

Benefits of eLearning:

  • Access to the Instructor - Ask questions to the MindShare Instructor that taught the course
  • Cost Effective - Get the same information delivered in a live MindShare class at a fraction of the cost
  • Available 24/7 - MindShare eLearning courses are available when and where you need them
  • Learn at Your Pace - MindShare eLearning courses are self-paced, so you can proceed when you're ready

Course Outline:

  • Module 1: ARM Introduction
    - Discusses the contents of the course and provides an intro to ARM the company
  • Module 2a: Cortex-M3 / M4 Overview (v7-M)
    - Cortex-M3 / M4 block diagram, feature set, M-Profile instructions and cycle counting
  • Module 2b: Cortex-M3 / M4 Overview (v7-M)
    - Overview of register set, processor pipeline, memory map, bit-banding, modes, privileges, stacks, interrupts and exceptions, power management, implementation options
  • Module 3: Cortex-M0 / M0+ Overview (v6-M)
    - Overview of register set, processor pipeline, memory map, interrupts and exceptions, power management, RTL configuration options, debug options, system interfaces
  • Module 4: Tools Overview for ARM Microcontrollers
    - Keil MDK components, ULINK debug adapters, development boards, DSTREAM debug and trace unit, fast models, ARM tools licensing, legacy tools: RVDS, RVI, RVT(2), MPS
  • Module 5: ARMv6-M and ARMv7-M Programmers' Model
    - Integer register set, Cortex-M4 FP extensions, Program Counter (PC), Link Register (LR), Stack Pointer (SP), v7M and v6M Program Status Register (PSR), Privileged vs unprivileged execution, exception handling, v7M vs v6M instruction set, instruction classes: branch instructions, data processing instructions, load and store instructions, status register access instructions, and more, conditional execution
  • Module 6: CMSIS (Cortex Microcontroller Software Interface Standard)
    - CMSIS structure, CMSIS-CORE, CMSIS-DSP, CMSIS-RTOS, CMSIS-SVD, CMSIS-Pack, CMSIS-Driver, CMSIS-DAP
  • Module 7: Cortex-M3 / M4 Microarchitecture
    - Processor block diagram, pipeline details (fetch, decode, execute), several pipeline examples with instructions, instruction folding, LDR and STR examples, write buffer
  • Module 8: Cortex-M0 Microarchitecture
    - Processor block diagram, prefetch buffer, hardware multiplier, pipeline details, several pipeline examples with instructions, execution determinism, instruction cycle timing
  • Module 9: Cortex-M0+ Microarchitecture
    - Processor block diagram, prefetch buffer, hardware multiplier, pipeline details, several pipeline examples with instructions, IO Port, execution determinism, instruction cycle timing
  • Module 10a: Assembler Programming for ARMv7-M Processors
    - Instruction set basics, Unified Assembler Language (UAL), assembly file explanation, numerous C to assembly examples, operand options
  • Module 10b: Assembler Programming for ARMv7-M Processors
    - Multiply, divide, bit manipulations, memory accesses, pre- vs. post-indexing, using the stack, If-Then blocks, condition codes and flags, exclusive access instructions, multi-thread mutex, power management instructions, Thumb-2 improvements, converting legacy assembler
  • Module 11: ARMv7-M Memory Model
    - System address map, memory segments, Private Peripheral Bus (PPB), System Control Space (SCS), System Control Block (SCB), memory types and properties, instruction and data alignment, endianness, memory barrier instructions (DMB, DSB, ISB), system caches and caching behavior, normal memory vs device memory, memory access ordering
  • Module 12: ARMv6-M Memory Model
    - System address map, memory segments, Private Peripheral Bus (PPB), System Control Space (SCS), System Control Block (SCB)
  • Module 13a: ARMv7-M Exception Handling
    - Exception overhead, exception types, external interrupts, exception model, vector table, exception priorities, interrupt entry and exit timing, NMI, nesting, tail chaining
  • Module 13b: ARMv7-M Exception Handling
    - Priority boosting, disabling interrupts, priority groups, interrupt control and status fields, pulse vs level-sensitive interrupts, writing interrupt handlers, System Service Call (SVC), fault exceptions, lockup state, precise vs imprecise exceptions
  • Module 14: ARMv6-M Exception Handling
    - Vector table, exception priorities, returning from interrupt, NMI, supported priority groups, disabling interrupts, interrupt control and status bits, fault exceptions, lockup state
  • Module 15a: C / C++ Compiler Hints and Tips
    - Variable types supported, optimization levels, automatic optimizations, use of "volatile", instruction scheduling, inlining of functions, loop unrolling, branch target optimizations, multi-file compilation
  • Module 15b: C / C++ Compiler Hints and Tips
    - Register usage, parameter passing, loop termination, division operations, floating point, Cortex-M3 / M4 bit-banding, C++ support, mixing C and Assembly, CMSIS, intrinsics, named register variables, embedded assembler, inline assembler, variable types, global data, packing of structures, aligment of pointers, optimization of memcpy(), base pointer optimization
  • Module 16: Linker and Library Hints and Tips
    - Purpose of linker, object files, libraries, creating and maintaining libraries, scatter-loading, veneers, stack issues, unused section elimination, raw data compression, small function inlining, linking for specific target, debug issues, useful linker diagnostics
  • Module 17: ARMv7-M Synchonization
    - Need for atomicity, critical sections, LDREX and STREX instructions, lock() and unlock() examples, context switching, memory attributes, multiprocessor mutex, synchronization primitives, legacy SWP instruction
  • Module 18a: Embedded Software Development for Cortex-M Processors
    - Embedded development process, default memory map, default C library, reset and initialization, CMSIS statup and initialization, scatter-loading, linker placement rules, root regions
  • Module 18b: Embedded Software Development for Cortex-M Processors
    - Run-time memory management, stack and heap, MPU initialization, extending functions, Thumb C libraries, retargeting the C library, debugging ROM images
  • Module 19: Cortex-M3 / M4 Debug and Trace
    - Debug features, CoreSight overview, debug access paths, halted debug mode, vector catch, semihosting, Flash Patch and Breakpoint unit (FPB), Data Watchpoint and Trace (DWT), Instrumentation Trace Macrocell (ITM), Embedded Trace Macrocell (ETM), TPIU interface, physical interfaces
  • Module 20: Cortex-M0 Debug
    - CoreSight, non-invasive debug, debug state, debug events, Debug Access Port (DAP), ROM Tables, breakpoints and watchpoints, Breakpoint Unit (BPU), Data Watchpoint and Trace (DWT), vector catch, debug vs non-debug version, registers and fields related to debug
  • Module 21: Cortex-M0+ CoreSight Micro Trace Buffer
    - CoreSight MTB-M0+, MTB interfaces, MTB operation, MTB packet format, memory model, POSITION register, MASTER register, FLOW register, BASE register, using TSTART and TSTOP signals, AHB-Lite interface, SRAM memory interface, trace enable and disable sequence
  • Module 22: ARMv7-M Memory Protection
    - Memory map and protection overview, MPU and bus faults, regions, sub-regions, memory types, access permissions, region overlapping (overlaying), MPU-related registers
  • Module 23: Cortex-M4 Additions
    - Cortex-M4 features, PPA, gate count summary, DSP capability and instruction set, SIMD instructions, single precision floating point
Course Modules
ModuleLength
Module 1: ARM Introduction61 minutes
Module 2a: Cortex-M3 / M4 Overview (v7-M)33 minutes
Module 2b: Cortex-M3 / M4 Overview (v7-M)35 minutes
Module 3: Cortex-M0 / M0+ Overview (v6-M)44 minutes
Module 4: Tools Overview for ARM Microcontrollers18 minutes
Module 5: ARMv6-M and ARMv7-M Programmers' Model62 minutes
Module 6: CMSIS (Cortex Microcontroller Software Interface Standard)37 minutes
Module 7: Cortex-M3 / M4 Microarchitecture38 minutes
Module 8: Cortex-M0 Microarchitecture26 minutes
Module 9: Cortex-M0+ Microarchitecture16 minutes
Module 10a: Assembler Programming for ARMv7-M Processors37 minutes
Module 10b: Assembler Programming for ARMv7-M Processors42 minutes
Module 11: ARMv7-M Memory Model45 minutes
Module 12: ARMv6-M Memory Model4 minutes
Module 13a: ARMv7-M Exception Handling48 minutes
Module 13b: ARMv7-M Exception Handling65 minutes
Module 14: ARMv6-M Exception Handling16 minutes
Module 15a: C / C++ Compiler Hints and Tips32 minutes
Module 15b: C / C++ Compiler Hints and Tips44 minutes
Module 16: Linker and Library Hints and Tips29 minutes
Module 17: ARMv7-M Synchonization21 minutes
Module 18a: Embedded Software Development for Cortex-M Processors34 minutes
Module 18b: Embedded Software Development for Cortex-M Processors37 minutes
Module 19: Cortex-M3 / M4 Debug and Trace59 minutes
Module 20: Cortex-M0 Debug20 minutes
Module 21: Cortex-M0+ CoreSight Micro Trace Buffer30 minutes
Module 22: ARMv7-M Memory Protection31 minutes
Module 23: Cortex-M4 Additions21 minutes