Comment puis-je obtenir les fichiers source des bibliothèques Arduino?

14

Je cherche depuis un moment dans les fichiers d'Arduino pour trouver la bibliothèque principale. Cependant, je ne les ai pas encore trouvés. Où sur mon disque dur puis-je obtenir les fichiers de bibliothèque de base (.cpp et .h) nécessaires pour tout le code Arduino?

En regardant autour de Google, je n'ai pas trouvé de moyen de trouver les fichiers ci-dessus. J'ai vu quelque chose sur l'obtention d'un fichier .a pendant la compilation d'Arduino, cependant, ce n'est pas ce que je veux. Je veux parcourir le code et regarder des fonctions telles que le retard pour voir comment elles réagiraient si on leur donnait les valeurs non attendues. (c.-à-d. que mon code se bloquera si je l'utilise delay(-200);en ne quittant pas la boucle, ou créera-t-il un trou noir et perturbera le continuum espace-temps?)

Pingouin anonyme
la source
J'étais intéressé par la question, mais ce que je veux, c'est le code source de strcpy et strcat dans le code source de l'assembleur. J'ai téléchargé la bibliothèque principale mais je ne trouve rien à distance similaire à strcpy ou strcat. OU Peut-être que je ne peux pas voir le bois pour les arbres?
bobzic
@bobzic Je vous suggère de poser une autre question en précisant les fichiers que vous souhaitez trouver.
Anonymous Penguin

Réponses:

9

Les fichiers source Arduino de base se trouvent dans l'installation Arduino, sous hardware/*/cores/. La source des bibliothèques supplémentaires incluses se trouve dans libraries/. Des fichiers supplémentaires peuvent être trouvés dans le carnet de croquis sous ses répertoires hardware/*/cores/et libraries/.

Ignacio Vazquez-Abrams
la source
Et n'oubliez pas /usr/lib/avr/include/ce qui se traduit sur des systèmes non Linux.
jippie
Dommage, je l'ai installé en tant qu'application Windows 10 et je ne peux pas accéder au dossier d'installation.
Tomáš Zato - Réintègre Monica le
8

Sur un Mac, le chemin du dossier de code source est:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Je m'attends à ce que ce soit la même chose à partir /Java/de là dans d'autres systèmes d'exploitation.

Chemin d'accès aux sources de la bibliothèque (Arduino-Mac)

JRobert
la source
2

Il y a plusieurs endroits où vous pouvez regarder. Comme à IDE 1.6.4 (version Ubuntu), certains sont dans:

(install location)/libraries

Mais ce sont les bibliothèques de haut niveau, en particulier:

Bridge
Esplora
Ethernet
Firmata
GSM
LiquidCrystal
Robot_Control
RobotIRremote
Robot_Motor
SD
Servo
SpacebrewYun
Stepper
Temboo
TFT
WiFi

Cela ne couvre pas les bibliothèques de bas niveau comme Tone, Print, main, etc. Ce sont:

(install location)/hardware/arduino/avr/cores/arduino

Vous y trouverez les bibliothèques de base Arduino comme:

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

Cependant, même cela ne localise pas des choses comme strcpy. Les fichiers d'en- tête pour eux peuvent être trouvés à:

(install location)/hardware/tools/avr/avr/include/

Vous y trouverez:

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

Même ce n'est pas toute l'histoire. Dans un sous-répertoire (avr), vous trouverez les choses liées à avr, avec des fichiers pour différents processeurs, tels que (en partie):

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

Quant à la source de strcpy, je ne pense pas que ce soit dans la distribution. Ils incluent les bibliothèques standard, précompilées. Par exemple, si vous regardez dans:

(install location)/hardware/tools/avr/avr/lib

Vous verrez différentes bibliothèques précompilées, par exemple:

libc.a
libm.a
libprintf_flt.a
libprintf_min.a
libscanf_flt.a
libscanf_min.a

Pour trouver la source, vous devez trouver où se trouve la source AVR de libc (éventuellement à http://www.nongnu.org/avr-libc/ ).


En ce qui concerne le Mac, tout cela est à quelques niveaux dans le "Package d'application" que vous pouvez voir en cliquant avec le bouton droit et en sélectionnant "Afficher le contenu du package". Regardez dans le Contents/Resources/Javadossier.


Aucun de ces endroits n'est l'endroit où vous devez placer vos propres bibliothèques (celles que vous écrivez ou téléchargez). Ils doivent aller dans le librariesdossier qui est un sous-répertoire de votre sketchbookdossier. Créez le librariesdossier s'il n'existe pas. De cette façon, les bibliothèques installées par l'utilisateur persistent d'une version de l'EDI à la suivante.

Nick Gammon
la source