Skip to content

EduAVR — kursoversikt

EduAVR lærer AVR fra maskinvaren og opp, med Assembly og C side om side.

Single source of truth

Denne Markdown-filen og de øvrige leksjonene er selve kurset. GitHub Pages genererer HTML direkte fra Markdown-kildene.

Grunnløp

  1. Kursprinsipper
  2. Åpen AVR-verktøykjede
  3. AVR-arkitektur
  4. GPIO
  5. Stack og funksjoner
  6. Timere og avbrudd
  7. PWM
  8. USART
  9. Dual-UART-bro
  10. SPI
  11. TWI / I²C
  12. EEPROM
  13. ADC
  14. Pekere, buffere og structs
  15. volatile, interrupts og atomicitet
  16. SRAM- og stackbudsjett

M6-utvidelse — optimalisering og kodeanalyse

Leksjon 17 legger til sammenligning av optimaliseringsnivåer og analyse av generert Assembly, med parede C/Assembly-eksempler og Q1-evidens.

Planlagt utvidelse

Milepæl-kobling: M7 = nettverk/Home Assistant, M8 = capstone-prosjekter. Dette er fortsatt roadmap-stoff til leksjoner, eksempler og kvalifikasjonsevidens er ferdig.

Følgende emner er ikke ferdige publiserte kjerneleksjoner ennå:

  • compiler-optimalisering/disassembly
  • små gjenbrukbare drivere
  • systemintegrasjon
  • capstone-prosjekt

Arbeidsmåte

Hver leksjon kombinerer teori med praktisk inspeksjon av maskinen. Bygg C og Assembly, undersøk disassembly, bruk simulatoren i størst praktisk mulig grad der den gir gyldig evidens, og gå til fysisk maskinvare bare når oppgaven avhenger av elektrisk eller annen ikke-modellert oppførsel.

Referanseappendikser

Publiserte appendikser:

Disse kildene finnes nå i begge språkspor. Semantisk paritet vurderes separat fra at filene bare finnes.

M6-utvidelse — analyse av kodestørrelse og SRAM

Leksjon 18 gjør ELF-seksjons- og symboldata om til en reproduserbar Flash/SRAM-rapport, mens dynamisk stackbruk holdes som en separat runtime-måling.