ARM 32-bit Architecture (ARM v7) eLearning Course HOW eLEARNING WORKS eLEARNING FAQ View all eLearning Courses PCI Express Courses Comprehensive PCIe 5.0 eLearning Course Advanced PCIe eLearning Course Core PCIe eLearning Course Fundamentals of PCI Express eLearning Course Intro to PCI Express IO Virtualization eLearning Course PIPE 6.0 - PHY Interface for PCI Express and more USB Courses USB4 Architecture eLearning Course USB Type-C and Power Delivery eLearning Course USB 3.2 Update Comprehensive USB 3.1 eLearning Course xHCI eLearning Course x86 Architecture Courses Intel x86 Processor and Platform Architecture eLearning Course Thunderbolt 3 Fundamentals x86 Architecture eLearning Course ARM Courses Fundamentals of ARM Architecture ARMv8-M and v8.1-M eLearning Course 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-M7 Processor eLearning Course Fundamentals of ARMv8-A eLearning Course Memory Courses Modern DRAM (DDR4 / DDR3 / LPDDR3 / LPDDR2) eLearning Course DRAM Class PRE-WORK DRAM Class Supplementary Material Storage Courses SAS 3.0 Storage Technology eLearning Course Advanced Host Controller Interface (AHCI) eLearning Course NVM Express 1.4 eLearning Course SATA 3.2 Technology eLearning Course Universal Flash Storage (UFS) eLearning Course Virtualization Courses PC Virtualization eLearning Course IO Virtualization for Intel Platforms eLearning Course Firmware Courses UEFI x64 Architecture eLearning Course ARM 32-bit Architecture (ARM v7) eLearning Course Instructor(s): Paul Devriendt Number of Modules: 25 Subscription Length: 90 days Course Price $695.00 ARM 32-bit Architecture eLearning Course What's Included? ARM 32-bit eLearning modules (unlimited access for 90 days) PDF of Course Slides (yours to keep, does not expire) Who Should View? The ARM 32-bit Architecture eLearning course focuses on software-related aspects of the ARMv7 Architecture, with a specific focus on Cortex-A and Cortex-R profiles, plus common subjects like software tools. This course is aimed at embedded software and systems developers who would like to acquire a broad knowledge of ARM technology with a bias toward application processors and real-time processors. This was the only eLearning course endorsed by ARM for anyone wanting to take the ARM Accredited Engineer (AAE) certification exam when ARM was still offering their AAE certification program. 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 v7 architectures. 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 2: Sample SoCs and Multiple Processor Cores - Provides high-level descriptions of several common ARM-based SoCs and goes over the concepts of multiple cores and multi-processing (SMP vs. AMP) Module 3: ARM Processor Architectures - Goes through the ARM architecture evolution (v5, v6, v7 and v8) as well as the architecture profiles (-A, -R and -M) Module 4: Architecture Introduction - Provides a high-level overview of the instruction sets supported and introduces the concepts of privilege levels and exception levels Module 5: Integer Registers - Discusses the integer registers of the ARM architecture, the purpose and behavior of register banking and the Program Status Register Module 6a: Instructions - ARM - Provides info on the ARM assembler syntax, numerous data processing instructions including some on bit manipulation as well as saturation effects Module 6b: Instructions - ARM - Goes through the branch, conditional branch and branch/link instructions as well as how condition codes on instructions behave Module 7: Instructions - Thumb/2, Jazelle, VZP and Neon - Covers the differences between ARM and Thumb/Thumb2 instructions and then goes through several examples of conditional execution in Thumb (If/Then/Else); Jazelle, Vector Floating Point and Neon instructions are also discussed at a high level Module 8a: Memory Accesses - Discusses alignment of memory accesses, endianness and numerous LDR/STR addressing examples including a discussion on pre- versus post-indexing; memory copy examples are also covered Module 8b: Memory Accesses - Defines the supported memory types and then goes through access ordering, several memory barrier examples, a semaphore synchronization example as well as the behavior of self-modifying code; Shareability domains are also covered Module 9: Privilege, Modes, State, TrustZone and more - Covers Privilege Levels, the basic processor modes, provides an overview of TrustZone, the implemented virtualization extensions, and the concept of coprocessors Module 10: Exceptions and Interrupts - Goes over the behavior of exceptions and interrupts including some info on common interrupt controllers Module 11: Memory Management and Protection - Discusses the memory management behavior typical in the -M profile as well as the memory protection scheme commonly used in the -R profile Module 12: Paging - Provides a great introduction to managing and protecting memory using paging (typical in -A profile), includes a discussion of TLBs and their management Module 13: v7 LPAE and Hardware Virtualization - Covers the implementation of large physical addresses in the v7 architecture as well as the affects of hardware virtualization on paging Module 14: Debug and Analysis Support - Discusses the different levels of debug that can be used and how each works Module 15: Caches - Goes over the basics of caching, including cache line states, coherency and cache policies; Then shows Cortex-A9 caches as an example Module 16: The Different Processor Cores - Provides an overview of some of the older ARM processor families, including descriptions of their instruction pipelines Module 17: Cortex-M0/1/3/4 and Cortex-R4/5 - Discusses the feature set and instruction pipelines of the Cortex-M0, Cortex-M0+, Cortex-M3/-M4 as well as the Cortex-R4 and Cortex-R5 Module 18: Cortex-A8/9/5 - Discusses the feature set and instruction pipelines of the Cortex-A8, Cortex-A9 and Cortex-A5 Module 19: Cortex-A15/7/12 - Discusses the feature set and instruction pipelines of the Cortex-A15, Cortex-A7 and Cortex-A12 Module 20: AMBA - The Buses - Provides a brief discussion on AMBA 3, AMBA 4 as well as AXI and the coherency extensions added to this interconnect Module 21: Power Management and Booting - Covers an intro to power management on ARM-based systems as well as a generic boot process Module 22: Software Development - Provides an overview of the software development process which includes a discussion of the purposes of the compiler and linker as well as object files, libraries (static vs dynamic) and the ARM ABI (Application Binary Interface) Module 23: Software Optimization - Discusses what to optimize as well as the order of effort applied for code optimization; Includes topics such as: pointer aliasing, loop termination, parameter passing, compiler options, inline examples, variable types, data layout and packing of structures, base pointer optimization and more. Also briefly touches on some profiling tools and what they are useful for. Course Modules Module Length Module 1: ARM Introduction 16 minutes Module 2: Sample SoCs and Multiple Processor Cores 30 minutes Module 3: ARM Processor Architectures 29 minutes Module 4: Architecture Introduction 32 minutes Module 5: Integer Registers 42 minutes Module 6a: Instructions - ARM 47 minutes Module 6b: Instructions - ARM 33 minutes Module 7: Instructions - Thumb/2, Jazelle, VFP and Neon 35 minutes Module 8a: Memory Accesses 29 minutes Module 8b: Memory Accesses 52 minutes Module 9: Privilege, Modes, State, TrustZone and others 21 minutes Module 10: Exceptions and Interrupts 61 minutes Module 11: Memory Management and Protection 20 minutes Module 12: Paging 37 minutes Module 13: v7 LPAE and Hardware Virtualization 16 minutes Module 14: Debug and Analysis Support 56 minutes Module 15: Caches 67 minutes Module 16: The Different Processor Cores 53 minutes Module 17: Cortex-M0/1/3/4 and Cortex-R4/5 18 minutes Module 18: Cortex-A8/9/5 34 minutes Module 19: Cortex-A15/7/12 19 minutes Module 20: AMBA - The Buses 9 minutes Module 21: Power Management and Booting 31 minutes Module 22: Software Development 41 minutes Module 23: Software Optimization 57 minutes © MindShare, Inc. All rights reserved. Full Course List | About MindShare | Careers with MindShare Contact Us | Privacy Policy | Terms of Use