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

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

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

9 голосов | спросил Anonymous Penguin 21 MarpmFri, 21 Mar 2014 21:48:44 +04002014-03-21T21:48:44+04:0009 2014, 21:48:44

4 ответа


8

Базовые исходные файлы Arduino находятся в установке Arduino в разделе hardware/*/cores/. Источник для дополнительных библиотек включен в библиотеки libraries/. Дополнительные файлы можно найти в альбомной книге в каталогах hardware/*/cores/ и libraries/.

ответил Ignacio Vazquez-Abrams 21 MarpmFri, 21 Mar 2014 22:00:33 +04002014-03-21T22:00:33+04:0010 2014, 22:00:33
8

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

https://github.com/arduino/Arduino

ответил Cybergibbons 22 MaramSat, 22 Mar 2014 11:19:33 +04002014-03-22T11:19:33+04:0011 2014, 11:19:33
5

На Mac путь к папке исходного кода: Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Я ожидаю, что он будет тем же самым из /Java/ в других ОС.

Путь к библиотечным источникам (Arduino-Mac)

ответил JRobert 21 MarpmFri, 21 Mar 2014 22:53:33 +04002014-03-21T22:53:33+04:0010 2014, 22:53:33
1

Есть несколько мест, где вы можете посмотреть. Как и в 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 до следующей.

ответил Nick Gammon 30 J0000006Europe/Moscow 2015, 01:27:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132