Das ist leider einfacher gesagt als getan, siehe unten 🙁 Eclipse muss man natürlich nur einmal einrichten. Da das deutlich umfangreichere aber das Einrichten des Projektes ist, würde ich empfehlen, ein einmal lauffähig eingerichtetes Projekt als Template zu nutzen.
Anmerkung #1: Was momentan noch nicht funktioniert, ist die Ausgabe nach Serial 🙁 Ich habe bisher nur ein sehr rudiemntäres “Blink”-Projekt kompilieren können… offenbar fehlen da irgendwelche Includes, wobei die HardwareSerial eigentlich da ist. Ich bleibe dran.
Anmerkung #2: Im Folgenden werden OS X Lion und ein Uno verwendet
Einrichten von Eclipse:
- Eclipse IDE for C/C++ Developers installieren
- Das AVR-Plugin installieren
- Das AVR “Crosspack” installieren
- Sicherheitshalber die Pfade unter Preferences -> AVR -> Paths checken:
AVR-GCC: /usr/local/CrossPack-AVR20100115/bin
GNU make: /usr/local/CrossPack-AVR20100115/bin
AVR Header Files: /usr/local/CrossPack-AVR20100115/avr-3/include
AVRDude: AVR-GCC: /usr/local/CrossPack-AVR20100115/bin
- Dein(e) Arduino(s) unter Preferences -> AVR -> AVRDude einrichten. Anmerkung: Der default Port ist der, den man auch in der Arduino-IDE nutzt – und den man unter /dev/ findet (ls -la /dev/)
Configuration Name: <irgendwas>
Programmer Hardware: Arduino
Override default port: /dev/tty.usbmodemfa131
Override default baudrate: 115200
Einrichten eines ersten Projekts (dieses kann man hinterher kopieren, um diese Einstellungen nicht immer wieder vornehmen zu müssen):
- Neues “C” Projekt anlegen:
Project name: <irgendwas>
Project type: AVR Cross Target Application -> Empty
Finish
- In den Project properties -> AVR -> AVR Dude -> Programmer -> “Programmer configuration” die Konfiguration von oben, Punkt 5, auswählen
- Das Arduino anschliessen
- In den Project properties -> AVR ->AVR Dude -> “Target Hardware” entweder “Load from MCU” versuchen, oder für den Uno “ATmega328P” auswählen. Anmerkung: Auch, wenn arduino.cc als Microcontroller für den Uno den ATmega328 angibt, so ist es in Wirklichkeit doch der ATmega328P
- Die Arduino IDE öffnen, ein neues Projekt anlegen, und kompilieren (“Verify” genügt) (es geht darum, einmal die Core Library anzulegen)
- “Irgendwo” unter /private/var/ die Datei core.a finden – bei mir war es /private/var/folders/8f/0zf3pf294rvbrybmwh7mq1bm0000gn/T/build1871947640038466426.tmp/core.a 🙂 – und in den Projektordner kopieren
- Diese “neue” core.a in libcore.a umbenennen
- Unter den Project properties -> C/C++ Build -> Settings -> Tool Settings -> “Additional Tools in Toolchain”: “Generate HEX for Flash Memory”, “Print Size” und “AVRDude” müssen angewählt sein; “Generate HEX file for EEPROM” und “Generate Extended Listing” müssen abgewählt sein
- Unter … -> AVR Compiler -> Command von “avr-gcc” in “avr-g++” ändern
- Unter … -> AVR Compiler -> Directories den Pfad /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino (oder analog) eintragen. Anmerkung: Rechtsklick auf die Arduino-App -> Paketinhalt anzeigen hilft 😉
- Unter … -> AVR Compiler -> Debugging -> “Generate Debugging info” “No debugging info” auswählen
- Unter … -> AVR Compiler -> Optimization -> “Optimization Level” “Size Optimization (-Os)” auswählen
- Unter … -> AVR Assembler -> Debugging -> “Generate Debugging Info” “No debugging info” auswählen
- Unter … -> AVR C Linker -> Libraries eine neue Library mit dem Namen “core” anlegen. Einen neuen Library Path mit “${workspace_loc:/${ProjName}}” anlegen – damit sollte er jetzt im aktuellen Projekt nach der corelib aus Schritt 6 und 7 suchen
- Eine neue Datei mit Namen main.c anlegen
- coden 😉
Kompilieren und flashen tut man das Projekt dann mit dem “Hammer”-Button in der Menüleiste – es muss dabei im Dropdown “Release” ausgewählt sein.
Mit Hilfe von, und, und, und.