Ich habe eine Weile in Arduinos Dateien gesucht, um die Kernbibliothek zu finden. Ich habe sie jedoch noch nicht gefunden. Wo auf meiner Festplatte kann ich die für den gesamten Arduino-Code erforderlichen Kernbibliotheksdateien (.cpp und .h) abrufen?
Als ich mich bei Google umsah, konnte ich keinen Weg finden, die oben genannten Dateien zu finden. Ich habe etwas über das Abrufen einer .a-Datei gesehen, während Arduino kompiliert, aber das ist nicht das, was ich will. Ich möchte den Code durchsuchen und Funktionen wie Verzögerung betrachten, um zu sehen, wie sie reagieren würden, wenn die Werte nicht erwartet würden (dh Wird mein Code blockieren, wenn ich delay(-200);
verwende, indem ich die Schleife nicht verlasse, oder wird er ein Schwarzes Loch erzeugen und das Raum-Zeit-Kontinuum stören?)
Kommentare
- Ich war an der Frage interessiert, aber ich möchte den Quellcode für strcpy und strcat im Assembler-Quellcode. Ich habe die Master-Bibliothek heruntergeladen, kann aber nichts entferntes finden, das strcpy oder strcat ähnelt. ODER Vielleicht kann ich das Holz vor lauter Bäumen nicht sehen?
- @bobzic Ich schlage vor, dass Sie einen anderen fragen Frage, die angibt, welche Dateien Sie suchen möchten.
Antwort
Die Basis-Arduino-Quelldateien befinden sich in der Arduino-Installation unter cores/arduino/
. Die Quelle für zusätzliche Bibliotheken befindet sich in libraries/
.
Kommentare
- Und ‚
/usr/lib/avr/include/
oder was auch immer auf Nicht-Linux-Systemen übersetzt wird. Schade, dass ich es als Windows 10-App installiert habe und nicht auf den Installationsordner zugreifen kann. - Diese Informationen scheinen veraltet zu sein. Der Ordner Bibliotheken ist jetzt leer und Hardware wurde verschoben
Antwort
Der Code ist auch online verfügbar, wenn die IDE nicht installiert ist:
https://github.com/arduino/Arduino
Kommentare
- Can ‚ finde die Header-Dateien dort nicht.
- siehe meine Antwort unten: arduino.stackexchange.com/a / 68658/59512
Antwort
Auf einem Mac der Pfad zum Quellcodeordner ist:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino
. Ich würde erwarten, dass es ab /Java/
in anderen Betriebssystemen dasselbe ist.
Antwort
Die Arduino-Quelldateien finden Sie auf Github unter https://github.com/arduino/Arduino , h Die Bibliotheken wurden jedoch in ihre eigenen Repositorys verschoben:
Antwort
Es gibt mehrere Stellen, an denen Sie suchen können. Wie in IDE 1.6.4 (Ubuntu-Version) befinden sich einige in:
(install location)/libraries
Dies sind jedoch die Bibliotheken auf hoher Ebene, insbesondere:
Bridge Esplora Ethernet Firmata GSM LiquidCrystal Robot_Control RobotIRremote Robot_Motor SD Servo SpacebrewYun Stepper Temboo TFT WiFi
Dies gilt nicht für Bibliotheken auf niedriger Ebene wie Tone, Print, main usw. Diese befinden sich in:
(install location)/hardware/arduino/avr/cores/arduino
Dort finden Sie die Arduino-Kernbibliotheken wie:
abi.cpp Arduino.h binary.h CDC.cpp Client.h HardwareSerial0.cpp HardwareSerial1.cpp HardwareSerial2.cpp HardwareSerial3.cpp HardwareSerial.cpp HardwareSerial.h HardwareSerial_private.h HID.cpp hooks.c IPAddress.cpp IPAddress.h main.cpp new.cpp new.h Printable.h Print.cpp Print.h Server.h Stream.cpp Stream.h Tone.cpp Udp.h USBAPI.h USBCore.cpp USBCore.h USBDesc.h WCharacter.h WInterrupts.c wiring_analog.c wiring.c wiring_digital.c wiring_private.h wiring_pulse.c wiring_shift.c WMath.cpp WString.cpp WString.h
Aber selbst das findet keine Dinge wie strcpy. Die -Header -Dateien für sie finden Sie unter:
(install location)/hardware/tools/avr/avr/include/
Dort finden Sie:
alloca.h assert.h ctype.h errno.h inttypes.h math.h setjmp.h stdfix-avrlibc.h stdint.h stdio.h stdlib.h string.h
Auch das ist nicht die ganze Geschichte. In einem Unterverzeichnis (avr) finden Sie die avr-bezogenen Dinge mit Dateien für verschiedene Prozessoren, z. B. (teilweise):
boot.h builtins.h common.h cpufunc.h crc16.h delay.h eeprom.h fuse.h interrupt.h io1200.h io2313.h ... iox64d4.h iox8e5.h lock.h parity.h pgmspace.h portpins.h power.h sfr_defs.h signal.h signature.h sleep.h version.h wdt.h xmega.h
Die Quelle von strcpy glaube ich nicht, dass sie in der Distribution enthalten ist. Sie enthält die vorkompilierten Standardbibliotheken. Beispiel:
(install location)/hardware/tools/avr/avr/lib
Sie sehen verschiedene vorkompilierte Bibliotheken, zum Beispiel:
libc.a libm.a libprintf_flt.a libprintf_min.a libscanf_flt.a libscanf_min.a
Um die Quelle zu finden, müssen Sie herausfinden, wo sich die AVR-Quelle befindet libc ist (möglicherweise unter http://www.nongnu.org/avr-libc/ ).
Wie für den Mac, All diese Dinge befinden sich einige Ebenen tiefer im „Anwendungspaket“, das Sie anzeigen können, indem Sie mit der rechten Maustaste klicken und „Paketinhalt anzeigen“ auswählen. Schauen Sie im Ordner Contents/Resources/Java
nach.
Keine An diesen Stellen sollten Sie Ihre eigene Bibliotheken (die Sie schreiben e oder herunterladen).Sie sollten in den Ordner libraries
verschoben werden, der ein Unterverzeichnis Ihres Ordners sketchbook
ist. Erstellen Sie den Ordner libraries
, falls er nicht vorhanden ist. Auf diese Weise bleiben vom Benutzer installierte Bibliotheken von einer Version der IDE zur nächsten erhalten.