Bagaimana saya bisa mendapatkan file sumber untuk pustaka Arduino?

14

Saya telah mencari beberapa saat di dalam file Arduino untuk menemukan perpustakaan inti. Namun, saya belum menemukannya. Di mana pada hard drive saya, saya bisa mendapatkan file library inti (.cpp dan .h) yang diperlukan untuk semua kode Arduino?

Melihat-lihat di Google, saya tidak dapat menemukan cara untuk menemukan file di atas. Saya memang melihat sesuatu tentang mendapatkan file .a saat Arduino sedang mengkompilasi, bagaimanapun, bukan itu yang saya inginkan. Saya ingin menelusuri kode dan melihat fungsi-fungsi seperti menunda untuk melihat bagaimana mereka akan bereaksi ketika diberi nilai yang tidak diharapkan. (Yaitu Akankah kode saya berhenti jika saya menggunakan delay(-200);dengan tidak keluar dari loop, atau akan membuat lubang hitam dan mengganggu kontinum ruang-waktu?)

Penguin Anonim
sumber
Saya tertarik pada pertanyaan, tetapi yang saya inginkan adalah kode sumber untuk strcpy dan strcat dalam kode sumber assembler. Saya mengunduh Perpustakaan Master tetapi saya tidak dapat menemukan sesuatu yang mirip dengan strcpy atau strcat. ATAU Mungkin saya tidak bisa melihat kayu untuk pepohonan?
bobzic
@obzic Saya sarankan Anda mengajukan pertanyaan lain yang menentukan file mana yang ingin Anda temukan.
Penguin Anonim

Jawaban:

9

File sumber Arduino dasar berada di instalasi Arduino, di bawah hardware/*/cores/. Sumber untuk perpustakaan tambahan termasuk di dalamnya libraries/. File tambahan dapat ditemukan di buku sketsa di bawahnya hardware/*/cores/dan libraries/direktori.

Ignacio Vazquez-Abrams
sumber
Dan jangan lupa /usr/lib/avr/include/atau apa pun yang diterjemahkan pada sistem non-Linux.
jippie
Sayang sekali saya menginstalnya sebagai aplikasi Windows 10 dan tidak dapat mengakses folder instalasi.
Tomáš Zato - Reinstate Monica
8

Pada Mac, path ke folder kode sumber:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Saya berharap itu akan sama dari /Java/turun di OS lain.

Jalur ke sumber perpustakaan (Arduino-Mac)

JRobert
sumber
2

Ada beberapa tempat di mana Anda dapat melihat. Seperti pada IDE 1.6.4 (versi Ubuntu) beberapa di:

(install location)/libraries

Tapi ini adalah perpustakaan tingkat tinggi, khususnya:

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

Itu tidak mencakup perpustakaan tingkat rendah seperti Nada, Cetak, utama, dll. Ini ada di:

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

Di sana Anda akan menemukan perpustakaan inti Arduino seperti:

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

Namun bahkan itu tidak menemukan hal-hal seperti strcpy. File header untuk mereka dapat ditemukan di:

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

Di sana Anda akan menemukan:

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

Bahkan itu bukan cerita lengkapnya. Dalam subdirektori (avr) Anda akan menemukan hal-hal terkait avr, dengan file untuk prosesor yang berbeda, seperti (sebagian):

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

Adapun sumber strcpy, saya tidak berpikir itu dalam distribusi. Mereka termasuk perpustakaan standar, pra-kompilasi. Misalnya, jika Anda melihat:

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

Anda akan melihat berbagai perpustakaan yang telah dikompilasi sebelumnya, misalnya:

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

Untuk menemukan sumbernya, Anda perlu menemukan di mana sumber AVR libc berada (mungkin di http://www.nongnu.org/avr-libc/ ).


Sedangkan untuk Mac, semua hal ini ada beberapa level di "Paket Aplikasi" yang dapat Anda lihat dengan mengklik kanan dan memilih "Tampilkan Isi Paket". Lihat di Contents/Resources/Javafolder.


Tidak ada tempat-tempat ini di mana Anda harus meletakkan perpustakaan Anda sendiri (yang Anda tulis atau unduh). Mereka harus masuk ke librariesfolder yang merupakan subdirektori dari sketchbookfolder Anda . Buat librariesfolder jika tidak ada. Dengan cara itu, pustaka yang diinstal pengguna bertahan dari satu versi IDE ke versi berikutnya.

Nick Gammon
sumber