Как получить исходные файлы для библиотек Arduino?
Я некоторое время искал в файлах Arduino, чтобы найти основную библиотеку. Однако я их еще не нашел. Где на моем жестком диске я могу получить файлы основной библиотеки (.cpp и .h), необходимые для всего кода Arduino?
Поискав в Google, я не смог найти способ найти вышеуказанные файлы. Я действительно видел кое-что о получении файла .a во время компиляции Arduino, однако это не то, чего я хочу. Я хочу Просмотреть код и посмотреть функций, таких как задержка, чтобы увидеть, как они будут реагировать, когда с учетом значений не ожидается. (т. е. будет ли мой код ларек, если я использую задержку(-200);
не чтобы выйти из цикла, или создаст черную дыру и нарушить пространственно-временной континуум?)
@Anonymous Penguin, 👍16
Обсуждение6 ответов
Лучший ответ:
Базовые исходные файлы 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
На компьютере Mac путь к папке с исходным кодом следующий:
Arduino.приложение/Содержимое/Ресурсы/Java/Оборудование/Arduino/Ядра/Arduino
. Я ожидал бы, что это будет то же самое с /Java/
и далее в других операционных системах.
Код также доступен в Интернете для тех случаев, когда у вас не установлена среда IDE:
https://github.com/arduino/Arduino
Не могу найти там файлы заголовков., @Tomáš Zato - Reinstate Monica
смотрите мой ответ ниже: https://arduinoprosto.ru/q/68658/59512, @JBaczuk
Есть несколько мест, где вы можете посмотреть. Как и в 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 к другой.
Исходные файлы 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
Я думаю, что это могло измениться в более новых версиях. На Mac Big Sur, Arduino 1.8.15, они находятся здесь: /Приложения/Arduino.app/Содержимое/Java/библиотеки
- Wire.h не найден!
- Может ли плагин Arduino Eclipse использовать библиотеки, установленные Arduino IDE?
- Невозможно использовать библиотеку клавиатуры с Arduino UNO даже после смены прошивки.
- Расположение стандартных библиотек Arduino
- Вопросы о библиотеке HMC5883L
- Существует ли простая библиотека HTTP(S), не зависящая от WiFi?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
Меня интересовал этот вопрос, но мне нужен исходный код для *strcpy* и *strcat* в исходном коде ассемблера. Я скачал Главную библиотеку, но не могу найти ничего отдаленно похожего на strcpy или strcat. ИЛИ , может быть, я не вижу леса за деревьями?, @bobzic
@bobzic Я предлагаю вам задать еще один вопрос, указав, какие файлы вы хотите найти., @Anonymous Penguin