|
|
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) |
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
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.
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
Who Should View?
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.
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 |
Module | Length | Module 1: ARM Introduction | 61 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 Microcontrollers | 18 minutes | Module 5: ARMv6-M and ARMv7-M Programmers' Model | 62 minutes | Module 6: CMSIS (Cortex Microcontroller Software Interface Standard) | 37 minutes | Module 7: Cortex-M3 / M4 Microarchitecture | 38 minutes | Module 8: Cortex-M0 Microarchitecture | 26 minutes | Module 9: Cortex-M0+ Microarchitecture | 16 minutes | Module 10a: Assembler Programming for ARMv7-M Processors | 37 minutes | Module 10b: Assembler Programming for ARMv7-M Processors | 42 minutes | Module 11: ARMv7-M Memory Model | 45 minutes | Module 12: ARMv6-M Memory Model | 4 minutes | Module 13a: ARMv7-M Exception Handling | 48 minutes | Module 13b: ARMv7-M Exception Handling | 65 minutes | Module 14: ARMv6-M Exception Handling | 16 minutes | Module 15a: C / C++ Compiler Hints and Tips | 32 minutes | Module 15b: C / C++ Compiler Hints and Tips | 44 minutes | Module 16: Linker and Library Hints and Tips | 29 minutes | Module 17: ARMv7-M Synchonization | 21 minutes | Module 18a: Embedded Software Development for Cortex-M Processors | 34 minutes | Module 18b: Embedded Software Development for Cortex-M Processors | 37 minutes | Module 19: Cortex-M3 / M4 Debug and Trace | 59 minutes | Module 20: Cortex-M0 Debug | 20 minutes | Module 21: Cortex-M0+ CoreSight Micro Trace Buffer | 30 minutes | Module 22: ARMv7-M Memory Protection | 31 minutes | Module 23: Cortex-M4 Additions | 21 minutes | |
|