Arduino kütüphanelerinin kaynak dosyalarını nasıl alabilirim?


14

Çekirdek kütüphaneyi bulmak için Arduino'nun dosyalarında bir süredir arıyordum. Ancak, henüz bulamadım. Sabit diskimdeki tüm Arduino kodu için gerekli olan temel kütüphane dosyalarını (.cpp ve .h) nereden edinebilirim?

Google'a baktığımda, yukarıdaki dosyaları bulmanın bir yolunu bulamadım. Arduino derlenirken bir .a dosyası alma hakkında bir şey gördüm, ancak istediğim bu değil. Ben kod göz atmak ve beklenmedik değerleri verildiğinde nasıl tepki görmek için gecikme gibi işlevlere bakmak istiyorum. (yani delay(-200);döngüden çıkarak kullanmam durumunda kodum durur mu yoksa bir kara delik oluşturur ve uzay-zaman sürekliliğini bozar mı?)


Soru ile ilgileniyordum, ama istediğim şey derleyici kaynak kodu strcpy ve strcat için kaynak kodu. Ana Kütüphane'yi indirdim ancak strcpy veya strcat'e benzer bir şeyi bulamıyorum. VEYA Belki ağaçların ahşabını göremiyorum?
bobzic

@bobzic Bulmak istediğiniz dosyaları belirten başka bir soru sormanızı öneririm.
Anonim Penguen

Yanıtlar:


9

Temel Arduino kaynak dosyaları, altında Arduino kurulumundadır hardware/*/cores/. Ek kütüphaneler için kaynak bulunmaktadır libraries/. Ek dosyalar, eskiz defterinde hardware/*/cores/ve libraries/dizinleri altında bulunabilir .


Unutmayın /usr/lib/avr/include/ya da Linux dışındaki sistemlerde ne anlama geliyorsa.
jippie

Çok kötü Windows 10 uygulaması olarak yükledim ve yükleme klasörüne erişemiyorum.
Tomáš Zato - Monica'yı eski haline getirin


8

Mac üzerinde, kaynak kodu klasör yoludur:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. /Java/Diğer işletim sistemlerinde de durumun aynı olacağını düşünürdüm .

Kütüphane kaynaklarına giden yol (Arduino-Mac)



2

Bakabileceğiniz birden fazla yer var. IDE 1.6.4 (Ubuntu sürümü) 'de olduğu gibi:

(install location)/libraries

Ancak bunlar, özellikle üst düzey kütüphanelerdir:

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

Ton, Yazdır, ana vb. Alt düzey kitaplıkları kapsamaz. Bunlar:

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

Orada Arduino çekirdek kütüphanelerini aşağıdaki gibi bulacaksınız:

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

Ancak bu bile strcpy gibi şeyleri bulmaz. Onlar için başlık dosyaları şu adreste bulunabilir:

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

Orada bulacaksınız:

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

Bu bile tam hikaye değil. Bir alt dizinde (avr), (kısmen) gibi farklı işlemciler için dosyalar içeren avr ile ilgili şeyleri bulacaksınız:

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

Strcpy kaynağına gelince, bunun dağıtımda olduğunu düşünmüyorum. Bunlar, önceden derlenmiş standart kütüphaneleri içerir. Örneğin, şunlara bakarsanız:

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

Önceden derlenmiş çeşitli kütüphaneler göreceksiniz, örneğin:

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

Kaynağı bulmak için libc'nin AVR kaynağının nerede olduğunu bulmanız gerekir (muhtemelen http://www.nongnu.org/avr-libc/ ).


Mac'e gelince, tüm bunlar "Uygulama Paketi" nde sağ tıklayıp "Paket İçeriğini Göster" i seçerek görüntüleyebileceğiniz birkaç seviye aşağıdadır. Bak Contents/Resources/Javaklasörde.


Bu yerlerin hiçbiri kendi kitaplıklarınızı (yazdığınız veya indirdiğiniz) koymanız gereken yer değildir . librariesKlasörünüzün bir alt dizini olan klasöre gitmelidirler sketchbook. librariesKlasörü yoksa oluşturun . Bu şekilde, kullanıcı tarafından yüklenen kütüphaneler IDE'nin bir sürümünden diğerine devam eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.