0% found this document useful (0 votes)
5 views4 pages

Core Ca+emb

The document outlines a systematic roadmap for learning embedded computer architecture over six phases, starting with memory fundamentals and progressing through advanced peripherals, interrupts, RTOS, and embedded Linux. Each phase includes specific goals, key topics, and practical projects to reinforce learning. The final phase focuses on capstone projects that integrate all concepts into comprehensive system-level embedded applications.

Uploaded by

ahmedsmg9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

Core Ca+emb

The document outlines a systematic roadmap for learning embedded computer architecture over six phases, starting with memory fundamentals and progressing through advanced peripherals, interrupts, RTOS, and embedded Linux. Each phase includes specific goals, key topics, and practical projects to reinforce learning. The final phase focuses on capstone projects that integrate all concepts into comprehensive system-level embedded applications.

Uploaded by

ahmedsmg9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Systematic Roadmap for Embedded Computer

Architecture

Phase 1 – Memory Fundamentals (Weeks 1–4)


Goal: Build strong foundations in memory + move into embedded-specific memory usage.

1. Classical Basics
- Memory hierarchy: registers → cache → RAM → Flash → external memory.
- Direct-mapped, set-associative, fully-associative caches.
- Virtual vs physical memory.

Resource: Patterson & Hennessy (Computer Organization and Design, ARM edition).

2. Embedded Memory Management


- STM32 memory map: Flash, SRAM, peripheral address space.
- Linker scripts: how .text, .data, .bss, .heap, .stack are placed.
- Stack frames: how function calls + interrupts use the stack.
- Memory Protection Unit (MPU) vs Memory Management Unit (MMU).

Projects:
- Modify STM32 linker script → place variables in specific memory regions.
- Write a small program showing stack growth during nested calls + interrupts.

Phase 2 – Advanced Peripherals & Interconnects (Weeks 5–8)


Goal: Go beyond GPIO/SPI/I²C into system-level bus & peripheral interactions.

1. Bus Architectures
- AMBA family: AXI, AHB, APB.
- How peripherals connect to memory/CPU.
- DMA and bus arbitration (CPU vs DMA).

2. Peripheral Interfaces at System Level


- Memory-mapped I/O vs IO-mapped I/O (you already know 8255/8259 → now focus on ARM’s
AMBA).
- Performance impact of bus contention.

Projects:
- Implement a DMA-based SPI transfer. Measure CPU load with and without DMA.
- Draw STM32 bus matrix map and analyze which peripherals share the same bus.

Phase 3 – Interrupts (Weeks 9–10)


Goal: Move from “what an interrupt is” → “how it’s managed in depth.”

1. Advanced Interrupt Controllers


- NVIC (Nested Vectored Interrupt Controller).
- Interrupt priorities, nesting, latency.
- Context saving: how CPU saves registers on stack during an ISR.

2. Advanced Concepts
- Vector tables in Flash vs RAM relocation.
- ARM GIC (Generic Interrupt Controller) for Cortex-A multicore systems.
Projects:
- Configure STM32 with nested interrupts (e.g., USART interrupt pre-empted by a timer interrupt).
- Measure ISR latency using GPIO toggles + logic analyzer/oscilloscope.

Phase 4 – RTOS Memory & Scheduling (Weeks 11–16)


Goal: Combine basics (what an RTOS is) with internals (how memory is managed).

1. RTOS Basics
- Tasks, scheduling policies, context switching.
- Task stacks and their memory requirements.

2. RTOS Internals (Advanced)


- FreeRTOS heap allocators (heap_1–heap_5).
- MPU-based task isolation.
- Context switching: saving/restoring registers + PC + SP.

Projects:
- Write a FreeRTOS application with 3 tasks using different heap allocators → compare RAM
usage.
- Enable MPU in FreeRTOS, isolate task stacks → try an illegal access, watch system trap it.
- Implement your own simple round-robin scheduler (no RTOS).

Phase 5 – OS & Embedded Linux (Weeks 17–22)


Goal: Bridge the gap from RTOS to embedded Linux (Cortex-A class).

1. OS Memory Management (Basics)


- Virtual memory, paging, page tables.
- Address translation.

2. Embedded Linux
- Device tree: how memory & peripherals are described.
- Writing kernel modules → memory-mapped drivers.
- MMU and page table setup in ARMv7/ARMv8.

Projects:
- Run Linux on a Raspberry Pi or QEMU.
- Write a kernel module that memory-maps a hardware register to user space.
- Explore /proc/[pid]/maps → see how Linux manages process memory.

Phase 6 – Capstone Projects (Weeks 23–28)


Goal: Integrate all concepts into system-level embedded projects.

- Build a custom memory allocator (malloc/free) for STM32.


- Implement a bare-metal bootloader (reset vector → relocate vector table → jump to app).
- Run FreeRTOS + DMA peripherals → analyze bus contention and memory usage.
- Write a Linux kernel driver for a peripheral (using memory-mapped I/O).

Final Flow:
1. Memory basics (both paths)
2. Peripherals (second path)
3. Interrupts (second path)
4. RTOS (both paths)
5. OS/Linux (both paths)
6. Capstone projects (second path)
Roadmap Flowchart

You might also like