Как я могу получить исходные файлы для библиотек 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)

JRobert
источник
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 к другой.

Ник Гаммон
источник