Files
AVRDxBlink/README-DE.md
T
2026-06-16 20:13:26 +02:00

4.0 KiB

Emacs AVR IDE Template

Dieses Repository ist ein vollständiges Template, um Emacs als leichtgewichtige, aber extrem mächtige IDE für die Entwicklung von AVR Mikrocontrollern (speziell moderne AVR Dx/Ex Serien, aber auch voll abwärtskompatibel zu älteren Serien) zu nutzen.

Es verwendet CMake als Build-System und verlässt sich auf die Kombination von avr-gcc, avrdude (ELF-Support) und clangd (Language Server), um Code-Vervollständigung, schnelles Kompilieren und direktes Flashen aus dem Editor heraus zu ermöglichen.

Voraussetzungen auf Betriebssystemebene

  • avr-gcc (AVR Toolchain Compiler)
  • avrdude (Version 7.0 oder höher zwingend empfohlen für nativen ELF-Support)
  • clangd (Für Code-Vervollständigung, Warnungen und Fehleranzeige in Emacs)
  • cmake (Build-System)
  • ripgrep (Wird für die extrem schnelle Suche in Emacs verwendet)
  • Device Packs für moderne AVRs: Microchip Packs Repository

Emacs Packages

Damit das IDE-Feeling perfekt wird, greift dieses Template auf einige spezifische Emacs-Packages zurück, die sich bewährt haben:

  • Projectile: Zur Projektverwaltung (findet den Root-Ordner automatisch anhand der CMakeLists.txt).
  • Eglot: Als integrierter C/C++ Language Server Client (kommuniziert im Hintergrund mit clangd).
  • Corfu: Für das moderne Autovervollständigungs-Popup direkt am Cursor.
  • Vertico, Orderless & Consult: Für eine smarte, fehlertolerante Suche über das gesamte Projekt (inklusive Ripgrep-Anbindung).
  • Doom Themes: Für einen augenschonenden, modernen Dark Mode.

Installation der Emacs-Konfiguration

Wenn du Emacs von Grund auf neu einrichtest, kannst du die beiliegende Beispieldatei verwenden:

  1. Kopiere die Datei init-example.el in dein Emacs-Konfigurationsverzeichnis (meist ~/.emacs.d/ oder ~/.config/emacs/).
  2. Benenne sie in init.el um.
    cp init-example.el ~/.emacs.d/init.el
    
  3. Starte Emacs neu. Beim ersten Start werden alle fehlenden Pakete automatisch von MELPA heruntergeladen und installiert.

Mikrocontroller (MCU) wechseln

Dieses Projekt ist standardmäßig für den AVR128DB28 konfiguriert. Wenn du einen anderen Chip verwenden möchtest:

  1. Öffne die Datei CMakeLists.txt.
  2. Ändere den Wert der Variable MCU (z.B. auf atmega328p oder avr128da28).
  3. Ändere bei Bedarf das DEVICE_PACK_DIR. (Für moderne AVR Dx/EA Serien wird das Device Pack von Microchip benötigt. Für ältere Modelle wie den ATmega kannst du diesen Pfad oft leer lassen).
  4. Drücke F5 in Emacs, um das Projekt frisch zu konfigurieren und zu bauen. (CMake erzeugt die Datei compile_commands.json dabei neu, wodurch clangd sofort die Register und Pins des neuen Chips in der Autovervollständigung kennt!)

Entwicklungsworkflow & Shortcuts

Sobald du eine .c oder .h Datei im Projekt öffnest, erkennt Projectile das Projekt automatisch und Eglot startet im Hintergrund den Language Server.

Die wichtigsten Tastenkürzel für die Projektverwaltung (via Projectile & Consult):

  • C-c p f: Datei im Projekt finden (Fuzzy Search).
  • C-r: Projektweit nach Text suchen (Consult Ripgrep - extrem schnell!).
  • C-c p p: Zwischen verschiedenen, lokal gespeicherten Projekten wechseln.

Die Tastenkürzel zum Bauen und Flashen (eingestellt über F-Tasten in der init.el):

  • F5: Clean Build. Löscht den Cache radikal und baut das Projekt komplett neu (Kompiliert inkl. Linker Garbage Collection für minimale Größe).
  • F6: Flash Code. Flasht nur den Programmcode (Flash-Speicher) via Avrdude. (Standardbefehl während der Entwicklung)
  • Strg + F6: Flash Code & EEPROM. Flasht den Code und die EEPROM-Daten.
  • F7: Read Fuses. Liest die Fuses vom Mikrocontroller und zeigt sie im Emacs Compile-Fenster an.
  • Strg + F7: Flash Fuses. Schreibt die direkt in der C-Software definierten Fuses (via <avr/fuse.h>) auf den Chip.

Hinweis: Da wir das moderne ELF-Format nutzen, entfällt das manuelle Generieren von alten .hex-Dateien vollständig.