Day 1: Cortex-M & STM32 Architecture
Cortex-M Overview
v7-M architecture, core architecture, Harvard architecture, memory hierarchy.
Bit-Banding, registers, privilege levels, system control block, SysTick timer.
Exception/interrupt mechanism, NVIC, priority management, fault handling.
Debug interface, CMSIS library.
Exercises: Debugging, exception handling, MPU configuration.
STM32F4 MCUs Overview
SoC architecture, memory organization, DMA controller, bus matrix.
Flash memory interface, real-time accelerators, boot configuration.
Exercise: Flash programming.
Day 2: Power, Clocking & Peripheral Management
Reset, Power & Clocking
Reset sources, bootloader, clock sources, PLLs, power modes.
Exercise: Configuring low-power modes and measuring power consumption.
DMA & Peripheral Overview
DMA architecture, FIFO, double buffer mode.
GPIO, ADC, external interrupts.
Exercise: Using DMA to transfer data between peripherals.
Day 3: FreeRTOS Foundations
FreeRTOS Overview
Architecture, task scheduling, preemption.
Kernel structures, hooks, tracing with Tracealyzer.
Exercise: Task creation, debugging context switches.
Memory Management
Heap strategies, stack monitoring, memory allocation.
Exercise: Stack overflow detection, heap debugging.
Day 4: FreeRTOS Synchronization & Interrupts
Queues & Inter-Task Communication
Message passing, blocking mechanisms.
Exercise: Synchronizing tasks with message queues.
Resource Management
Mutexes, priority inheritance, deadlock handling.
Exercise: Reader/writer problem, producer/consumer implementation.
Interrupt Management
Synchronization with binary semaphores, ISR-safe queues.
Exercise: Synchronizing interrupts with tasks.
Day 5: Advanced FreeRTOS & Networking with LwIP
Software Timers & FreeRTOS MPU
Timer daemon task, one-shot and auto-reload timers.
Exercise: Timer-based event handling.
STM32 Ethernet & LwIP TCP/IP Stack
Ethernet MAC architecture, buffer descriptors.
LwIP memory management, APIs (Netconn & BSD Sockets).
Exercises: Running an HTTP server, TCP echo client/server.
Course customisation can include optional modules
EmWin GUI Stack: GUI design, widgets, event handling.
Exercise: Create a touch interface.
TouchGFX: Advanced UI development for STM32.
Exercise: UI application deployment using CubeMX & FreeRTOS.