EduAVR course outline¶
EduAVR teaches AVR from the hardware upward, with Assembly and C side by side.
Single source of truth
This Markdown file and the course lessons are the course source. GitHub Pages generates the HTML edition directly from the Markdown sources.
Current core course¶
- Course principles
- Open AVR toolchain
- AVR architecture
- GPIO
- Stack and functions
- Timers and interrupts
- PWM
- USART
- Dual-UART bridge
- SPI
- TWI / I2C
- EEPROM
- ADC
- Pointers, buffers and structs
- volatile, interrupts and atomicity
- SRAM and stack resource budgets
Planned core expansion¶
M6 extension — optimization and code analysis¶
Lesson 17 adds optimization-level comparison and generated-assembly analysis, backed by paired C/Assembly examples and Q1 evidence.
Milestone mapping: M7 = networking/Home Assistant, M8 = capstone projects. These remain roadmap scope until the lessons, examples and qualification evidence are complete.
The original curriculum also identifies these topics for dedicated lessons as the course grows:
- compiler optimization/disassembly
- small reusable drivers
- systems integration
- capstone project
These are roadmap items rather than published core lessons until their Markdown lesson, examples and appropriate qualification evidence exist.
Working method¶
Each lesson combines theory with practical inspection of the machine. Build C and Assembly, inspect disassembly, use simulation wherever it provides valid evidence, and move to physical hardware only when the claim depends on electrical or other non-modeled behavior.
Reference appendices¶
Published appendices currently cover:
- A — AVR and Arduino
- B — Debugging AVR
- C — Disassembly and reverse engineering
- D — C ↔ Assembly and compiler behaviour
- E — Memory internals
- F — Programming and bootloaders
- G — Electronics for AVR programmers
- H — Protocol analysis
- I — Performance and optimization
- J — Testing and qualification
- K — Build your own AVR board
- L — AVR for retro computing
- M — Datasheet survival guide
- Extended guide — Reading AVR datasheets
These sources now exist in both language tracks. Semantic parity is reviewed separately from mere file presence.
The appendices are reference material and advanced practice. They can mature while EduBoard-AVR hardware is being stabilized because most are not tied to a moving board revision.
M6 extension — code size and SRAM analysis¶
Lesson 18 turns ELF section and symbol data into a reproducible Flash/SRAM report, while keeping dynamic stack usage as a separate runtime measurement.