Как получить исходные файлы для библиотек Arduino?

Я некоторое время искал в файлах Arduino, чтобы найти основную библиотеку. Однако я их еще не нашел. Где на моем жестком диске я могу получить файлы основной библиотеки (.cpp и .h), необходимые для всего кода Arduino?

Поискав в Google, я не смог найти способ найти вышеуказанные файлы. Я действительно видел кое-что о получении файла .a во время компиляции Arduino, однако это не то, чего я хочу. Я хочу Просмотреть код и посмотреть функций, таких как задержка, чтобы увидеть, как они будут реагировать, когда с учетом значений не ожидается. (т. е. будет ли мой код ларек, если я использую задержку(-200); не чтобы выйти из цикла, или создаст черную дыру и нарушить пространственно-временной континуум?)

, 👍16

Обсуждение

Меня интересовал этот вопрос, но мне нужен исходный код для *strcpy* и *strcat* в исходном коде ассемблера. Я скачал Главную библиотеку, но не могу найти ничего отдаленно похожего на strcpy или strcat. ИЛИ , может быть, я не вижу леса за деревьями?, @bobzic

@bobzic Я предлагаю вам задать еще один вопрос, указав, какие файлы вы хотите найти., @Anonymous Penguin


6 ответов


Лучший ответ:

10

Базовые исходные файлы Arduino находятся в установке Arduino в разделе ядра/arduino/. Источник для дополнительных включенных библиотек находится в разделе библиотеки/.

,

И не забывайте "/usr/lib/avr/включить/ " или что-то еще, что переводится в системах, отличных от Linux., @jippie

Жаль, что я установил его как приложение для Windows 10 и не могу получить доступ к папке установки., @Tomáš Zato - Reinstate Monica

Эта информация кажется устаревшей. В [библиотеках](https://github.com/arduino/Arduino/tree/master/libraries) папка теперь пуста, и [оборудование переместилось](https://github.com/arduino/Arduino/tree/master/hardware), @Thomas Weller


9

На компьютере Mac путь к папке с исходным кодом следующий:
Arduino.приложение/Содержимое/Ресурсы/Java/Оборудование/Arduino/Ядра/Arduino. Я ожидал бы, что это будет то же самое с /Java/ и далее в других операционных системах.

Path to library sources (Arduino-Mac)

,

13

Код также доступен в Интернете для тех случаев, когда у вас не установлена среда IDE:

https://github.com/arduino/Arduino

,

Не могу найти там файлы заголовков., @Tomáš Zato - Reinstate Monica

смотрите мой ответ ниже: https://arduinoprosto.ru/q/68658/59512, @JBaczuk


3

Есть несколько мест, где вы можете посмотреть. Как и в 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, все это находится на несколько уровней ниже в "Пакете приложений", который вы можете просмотреть, щелкнув правой кнопкой мыши и выбрав "Показать содержимое пакета". Загляните в папку Содержимое/Ресурсы/Java.


Ни в одном из этих мест вы не должны размещать свои собственные библиотеки (те, которые вы пишете или загружаете). Они должны перейти в папку библиотеки, которая является подкаталогом папки вашего альбома для рисования. Создайте папку библиотеки, если она не существует. Таким образом, установленные пользователем библиотеки сохраняются от одной версии IDE к другой.

,

4

Исходные файлы arduino можно найти на Github по адресу https://github.com/arduino/Arduino, однако библиотеки были перемещены в свои собственные хранилища:

  • https://github.com/arduino/ArduinoCore-avr
  • https://github.com/arduino/ArduinoCore-sam
  • https://github.com/arduino/ArduinoCore-samd
,

1

Я думаю, что это могло измениться в более новых версиях. На Mac Big Sur, Arduino 1.8.15, они находятся здесь: /Приложения/Arduino.app/Содержимое/Java/библиотеки

,