Come posso ottenere i file di origine per le librerie Arduino?


14

Ho cercato per un po 'di tempo nei file di Arduino per trovare la libreria principale. Tuttavia, non li ho ancora trovati. Dove posso trovare i file della libreria principale (.cpp e .h) sul mio disco rigido necessari per tutto il codice Arduino?

Guardando in giro su Google, non sono riuscito a trovare un modo per trovare i file sopra. Ho visto qualcosa su come ottenere un file .a mentre Arduino sta compilando, tuttavia, non è quello che voglio. Voglio sfogliare il codice e guardare funzioni come il ritardo per vedere come reagirebbero se dati i valori non previsti. (cioè il mio codice si bloccherà se lo uso delay(-200);per non uscire dal loop o creerà un buco nero e interromperà il continuum spazio-temporale?)


Ero interessato alla domanda, ma quello che voglio è il codice sorgente per strcpy e strcat nel codice sorgente dell'assembler. Ho scaricato la Master Library ma non riesco a trovare nulla di simile a strcpy o strcat da remoto. O forse non riesco a vedere il bosco per gli alberi?
bobzic,

@bobzic Ti suggerisco di porre un'altra domanda specificando quali file vuoi trovare.
Pinguino anonimo l'

Risposte:


9

I file di origine di Arduino di base si trovano nell'installazione di Arduino, sotto hardware/*/cores/. La fonte per ulteriori librerie incluse è in libraries/. File aggiuntivi possono essere trovati nello sketchbook nella sua directory hardware/*/cores/e libraries/.


E non dimenticare /usr/lib/avr/include/o quello che si traduce in sistemi non Linux.
jippie,

Peccato che l'ho installato come app di Windows 10 e non riesco ad accedere alla cartella di installazione.
Tomáš Zato - Ripristina Monica il


8

Su un Mac, il percorso della cartella codice sorgente è:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Mi aspetto che sarebbe lo stesso da /Java/giù in altri sistemi operativi.

Percorso delle fonti della biblioteca (Arduino-Mac)



2

Ci sono più posti dove puoi guardare. Come in IDE 1.6.4 (versione Ubuntu) alcuni sono in:

(install location)/libraries

Ma queste sono le librerie di alto livello, in particolare:

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

Ciò non copre le librerie di basso livello come Tone, Print, main, ecc. Queste sono in:

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

Lì troverai le librerie core di Arduino come:

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

Tuttavia, anche questo non trova cose come strcpy. I file di intestazione per loro sono disponibili all'indirizzo:

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

Lì troverai:

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

Anche questa non è la storia completa. In una sottodirectory (avr) troverai le cose relative ad avr, con file per processori diversi, come (in parte):

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

Per quanto riguarda la fonte di Strcpy, non penso che sia nella distribuzione. Includono le librerie standard, pre-compilate. Ad esempio, se cerchi:

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

Vedrai varie librerie precompilate, ad esempio:

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

Per trovare la fonte dovresti trovare dove si trova la fonte AVR di libc (possibilmente su http://www.nongnu.org/avr-libc/ ).


Per quanto riguarda il Mac, tutta questa roba è di alcuni livelli nel "Pacchetto applicazione" che puoi visualizzare facendo clic con il tasto destro e selezionando "Mostra contenuto pacchetto". Guarda nella Contents/Resources/Javacartella.


Nessuno di questi posti sono dove si dovrebbe mettere le proprie librerie (quelli che scrivete o download). Dovrebbero andare nella librariescartella che è una sottodirectory della tua sketchbookcartella. Crea la librariescartella se non esiste. In questo modo le librerie installate dall'utente persistono da una versione dell'IDE alla successiva.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.