如何获取Arduino库的源文件?


14

我已经在Arduino的文件中寻找了一段时间以找到核心库。但是,我还没有找到它们。我可以在硬盘上的哪个位置获取所有Arduino代码所需的核心库文件(.cpp和.h)?

在Google上四处寻找,我找不到找到上述文件的方法。我确实看到了有关在Arduino编译时获取.a文件的信息,但这不是我想要的。我想浏览代码并查看诸如延迟之类的函数,以了解在给定非预期值时它们将如何反应。(即,如果我delay(-200);不退出循环使用,我的代码会停顿吗,还是会产生黑洞并破坏时空连续性?)


我对这个问题很感兴趣,但是我想要的是汇编器源代码中的strcpystrcat的源代码。我下载了主库,但是找不到与strcpy或strcat类似的远程文件。或者也许我看不到树木的木头?
bobzic 2014年

@bobzic我建议您问另一个问题,指定要查找的文件。
匿名企鹅2014年

Answers:




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

要找到源,您需要找到libc的AVR源在哪里(可能在http://www.nongnu.org/avr-libc/)。


对于Mac,所有这些东西都在“应用程序包”中几级,您可以通过右键单击并选择“显示包内容”来查看。在Contents/Resources/Java文件夹中查找。


没有这些地方是你应该把你自己的库(你写的那些或下载)。他们应该进入libraries文件夹的子目录中sketchbooklibraries如果该文件夹不存在,则创建它。这样,用户安装的库就可以从一个IDE版本一直保留到另一个版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.