Ich habe kürzlich ein neues Projekt mit meinem Arduino gestartet, das seit einiger Zeit Staub sammelt. Zusammen mit der physischen Platine, die Staub sammelt, hat auch meine Kopie von avr-gcc und den Arduino-Bibliotheken. Ich kann die Aktualisierung von avr-gcc verwalten, kann mich aber nicht erinnern, wie ich die Arduino-Bibliotheken kompiliert habe. Bei der Arduino-Quelle gibt es aufgelistete Quelldateien und dergleichen, aber kein Makefile (das ich sehen kann) zum tatsächlichen Erstellen der Bibliothek. Das Erstellen der IDE ist mir egal, ich möchte nur die Bibliothek im Binärformat und die Header-Dateien, die ich benötige. Gibt es dafür eine Dokumentation oder ähnliches?
Ich möchte die Arduino IDE nicht verwenden, ich bevorzuge die Verwendung meines eigenen Texteditors und eines Makefiles.
Antworten:
Ich habe ein kleines Projekt mit einem benutzerdefinierten Build-System (mit Ruby) erstellt, das dies ziemlich einfach macht, ohne die Arduino IDE installieren zu müssen. Grundsätzlich werden eine Vorlage Makefile und ein Ruby-Skript verwendet, um das Kompilieren der Arduino-Bibliotheken extrem einfach zu machen. Sie können es unter https://github.com/Earlz/make-wiring sehen
Ich lasse jedoch die alte Antwort hier, um Informationen zum Rollen Ihrer eigenen zu erhalten. Es ist allerdings ziemlich umständlich und nervig:
Richtungen:
hardware/arduino/cores/arduino
in ein neues Verzeichnis, das ich als arduino_build bezeichnen werdepins_arduino.h
Datei aus der Arduino-Variantehardware/arduino/variants
(überprüfen Sie board.txt, wenn Sie sich nicht sicher sind) nach arduino_build.
Und dann einfach rennen
Und um dann die kompilierten Bibliotheken und dergleichen zu nutzen, können Sie ein einfaches Makefile wie das folgende verwenden:
Wenn Sie versuchen, die Bibliotheken in zu kompilieren
libraries/
, wird ein Linkerfehler angezeigt, wenn Sie die Dinge nicht in der richtigen Reihenfolge ausführen. Zum Beispiel musste ich dies tun, um SoftwareSerial zu verwenden:Dies
-larduino
muss die letzte Bibliothek in der Befehlszeile seinAuf jeden Fall war dies eine ziemlich einfache Möglichkeit, es für mich zu kompilieren. Wenn zukünftige Versionen des Ardunio herauskommen, sollte dieses Makefile ziemlich zukunftssicher sein und nur wenige Änderungen an OBJS und HDRS erfordern. Außerdem sollte dieses Makefile sowohl mit BSD make als auch mit GNU make funktionieren
Siehe auch eine leicht modifizierte Version dieser Antwort in meinem Blog mit einer bereits kompilierten Binärdatei der Bibliothek (kompiliert mit dem "Standard" pins_arduino.h).
** BEARBEITEN **
Ich fand heraus, dass das Hinzufügen der folgenden Compiler-Optimierungsflags sowohl zum Makefile der Bibliothekserstellung als auch zu jedem einzelnen Projekt-Makefile die Größe der endgültigen kompilierten Binärdatei erheblich reduziert. Dies macht die endgültige Binärgröße vergleichbar mit der der IDE.
.
Also, für das Makefile zum Erstellen der Bibliothek:
und für jedes Projekt-Makefile:
.
Ref: http://arduino.cc/forum/index.php?topic=153186.0
quelle
Wenn Sie bereit sind, die Arduino-IDE einmal (oder einmal pro Gerätetyp) zu verwenden, ist dies der einfachste Weg, eine statische Bibliothek zu erstellen und die Bibliotheksquellen abzurufen. Danach können Sie die für Sie geeigneten Entwicklungstools verwenden.
In diesem Arduino-Artikel (geschrieben für Benutzer, die zur Eclipse-IDE wechseln) wird das Erstellen der Arduino-Bibliothek beschrieben, indem eine Skizze mit der Arduino-IDE erstellt und die Bibliothek aus dem temporären Verzeichnis von Arduino abgerufen wird. Scrollen Sie etwa 1/4 der Seite nach unten zum Abschnitt
quelle
Wenn Sie nur ein Build-System benötigen, das auch Ihren Mikrocontroller-Programmierer steuern kann, ist platformio Ihr Freund.
quelle