Як я можу отримати вихідні файли для бібліотек Arduino?


14

Я деякий час шукав файли Arduino, щоб знайти основну бібліотеку. Однак я їх ще не знайшов. Де на своєму жорсткому диску я можу отримати основні файли бібліотеки (.cpp та .h), необхідні для всього коду Arduino?

Оглядаючи Google, я не зміг знайти способи знайти вищезазначені файли. Я бачив щось про отримання файлу .a, коли Arduino збирає, однак, це не те, що я хочу. Я хочу переглянути код і подивитися на такі функції, як затримка, щоб побачити, як вони будуть реагувати, коли задані значення не очікуються. (тобто delay(-200);чи застосує мій код, якщо я використовую , не буду виходити з циклу, або це створить чорну діру і порушить просторово-часовий континуум?)


Мене цікавило питання, але те, що я хочу, - це вихідний код strcpy та strcat у вихідному коді асемблера. Я завантажив головну бібліотеку, але не можу знайти щось віддалено схоже на strcpy або strcat. А може, я не бачу деревини для дерев?
bobzic

@bobzic Я пропоную вам задати ще одне питання із зазначенням файлів, які ви хочете знайти.
Анонімний пінгвін

Відповіді:


9

Основні вихідні файли Arduino знаходяться в установці Arduino, під hardware/*/cores/. Джерела для додаткових бібліотек, що входять у libraries/. Додаткові файли можуть бути знайдені в зошиті під його каталогами hardware/*/cores/та в libraries/каталогах.


І не забувайте про /usr/lib/avr/include/те, що це означає в системах, що не є Linux.
джиппі

Шкода, що я встановив його як додаток Windows 10 і не можу отримати доступ до папки інсталяції.
Томаш Зато -


8

На Mac, шлях до папки вихідного коду є:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Я б очікував, що це буде так само, /Java/як і в інших ОС.

Шлях до джерел бібліотеки (Arduino-Mac)



2

Є кілька місць, де можна заглянути. Що стосується IDE 1.6.4 (версія Ubuntu), деякі з них:

(install location)/libraries

Але це, зокрема, бібліотеки високого рівня:

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

Це не охоплює бібліотеки низького рівня, такі як Tone, Print, main тощо.

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

Там ви знайдете основні бібліотеки Arduino, як-от:

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

Однак навіть це не знаходить такі речі, як strcpy. У заголовні файли для них можна знайти по адресою:

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

Там ви знайдете:

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

Навіть це не повна історія. У підкаталозі (avr) ви знайдете речі, пов'язані з avr, з файлами для різних процесорів, таких як (частково):

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, я не думаю, що він знаходиться в розповсюдженні. Вони включають стандартні бібліотеки, попередньо складені. Наприклад, якщо ви шукаєте:

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

Ви побачите різні заздалегідь складені бібліотеки, наприклад:

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

Щоб знайти джерело, вам потрібно буде знайти, де знаходиться AVR-джерело libc (можливо, за адресою http://www.nongnu.org/avr-libc/ ).


Що стосується Mac, то весь цей матеріал на кілька рівнів внизу "Пакет програм", який ви можете переглянути, клацнувши правою кнопкою миші та вибравши "Показати зміст пакета". Подивіться в Contents/Resources/Javaпапку.


Жодне з цих місць не має розміщувати власні бібліотеки (ті, які ви пишете чи завантажуєте). Вони повинні зайти в librariesпапку, яка є підкаталогом вашої sketchbookпапки. Створіть librariesпапку, якщо вона не існує. Таким чином, встановлені користувачем бібліотеки зберігаються від однієї версії IDE до іншої.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.