ARM Based Development
ARM Based Development. Instructor: S. Chandramouleeswaran, Embedded Systems Professional. The goal of this course is to teach all the assembly instructions of ARM7TDMI processor and its internal functioning, enabling students to understand any other processor architectures at ease. This course provides good understanding of how coprocessors are interfaced with ARM core and how coprocessors can be programmed; provides an in-depth understanding of the Floating point representation and the VFP coprocessor implementation in particular; covers the details of cache architectures, AMBA bus, virtual memory management concepts with the detailed explanation on the Memory Management Unit (MMU) and Memory Protection Unit (MPU); gives good overview of various peripherals used with ARM core and it basic functioning; and touches upon later versions of ARM7 processor and their features and new developments.
(from nptel.ac.in )
Lecture 28 - Physical vs Virtual Memory, Paging, Segmentation
VIDEO
Go to the Course Home or watch other lectures:
ARM Instruction and Pipeline Structures
Lecture 01 - Types of Computer Architectures, ISA's and ARM History
Lecture 02 - Embedded System Software and Hardware, Stack Implementation in ARM, Endianness, Condition Codes
Lecture 03 - Processor Core vs CPU Core, ARM7TDMI Interface Signals, Memory Interface, Bus Cycle Types, Register Set, Operational Modes
Lecture 04 - Instruction Format, ARM Core Data Flow Model, ARM 3 Stage Pipeline, ARM Family Attribute Comparison
Lecture 05 - ARM 5 Stage Pipeline, Pipeline Hazards, Data Forwarding - a Hardware Solution
ARM7TDMI Assembly Instructions and Modes
Lecture 06 - ARM ISA and Processor Variants, Different Types of Instructions, ARM Instruction Set, Data Processing Instructions
Lecture 07 - Shift Operations, Shift Operations using RS Lower Byte, Immediate Value Encoding
Lecture 08 - Data Processing Instructions
Lecture 09 - Addressing Mode 1, Addressing Mode 2
Lecture 10 - Addressing Mode 2, LDR/STR, Addressing Mode 3 with Examples
Lecture 11 - Instruction Timing, Addressing Mode 4 with Examples
Lecture 12 - Swap Instructions, Swap Register related Instructions, Loading Constants
Lecture 13 - Program Control Flow, Control Flow Instructions, B and BL Instructions, BX Instruction
Lecture 14 - Interrupts and Exceptions, Exception Handlers, Reset Handling
Lecture 15 - Aborts, Software Interrupt Instruction, Undefined Instruction Exception
Lecture 16 - Interrupt Latency, Multiply Instructions, Instruction Set Examples
Lecture 17 - Thumb State, Thumb Programmers Model, Thumb Implementation, Thumb Applications
Lecture 18 - Thumb Instructions, Interrupt Processing
Lecture 19 - Interrupt Handling Schemes, Examples of Interrupt Handlers
ARM Coprocessor Interface and VFP
Lecture 20 - Coprocessors
Lecture 21 - Coprocessor Instructions, Data Processing Instruction, Data Transfers, Register Transfers
Lecture 22 - Number Representations, Floating Point Representation
Lecture 23 - Flynn's Taxonomy, SIMD and Vector Processors, Vector Floating Point Processor (VFP), VFP and ARM Interactions
Cache and Memory Management and Protection
Lecture 24 - Memory Technologies, Need for Memory Hierarchy, Hierarchical Memory Organization, Virtual Memory
Lecture 25 - Cache Memory, Mapping Functions
Lecture 26 - Cache Design, Unified or Split Cache, Multiple Level of Caches, ARM Cache Features, Coprocessor 15 for System Control
Lecture 27 - Processes, Memory Map, Protected Systems, ARM Systems with MPU, Memory Protection Unit (MPU)
Lecture 28 - Physical vs Virtual Memory, Paging, Segmentation
Lecture 29 - MMU Advantage, Virtual Memory Translation, Multitasking with MMU, MMU Organization, Tightly Coupled Memory (TCM)
ARM Tools and Peripherals
Lecture 30 - ARM Development Environment, ARM Procedure Call Standard (APCS)
Lecture 31 - Example C Program
Lecture 32 - Embedded Software Development, Image Structure, Linker Inputs and Outputs, Memory Map, Application Startup
Lecture 33 - AMBA Overview, Typical AMBA based Microcontroller, AHB Bus Features, AHB Bus Transfers, APB Bridge
Lecture 34 - DMA, Peripherals, Programming Peripherals in ARM
Lecture 35 - DMA: Direct Memory Access
Lecture 36 - Protocols (I2C, SPI), UART, GPIO
Lecture 37 - ARM ISAs, ARMv5, ARMv6, ARMv7, Big/Little Technology, ARMv8