我已经在Arduino的文件中寻找了一段时间以找到核心库。但是,我还没有找到它们。我可以在硬盘上的哪个位置获取所有Arduino代码所需的核心库文件(.cpp和.h)?
在Google上四处寻找,我找不到找到上述文件的方法。我确实看到了有关在Arduino编译时获取.a文件的信息,但这不是我想要的。我想浏览代码并查看诸如延迟之类的函数,以了解在给定非预期值时它们将如何反应。(即,如果我delay(-200);
不退出循环使用,我的代码会停顿吗,还是会产生黑洞并破坏时空连续性?)
我已经在Arduino的文件中寻找了一段时间以找到核心库。但是,我还没有找到它们。我可以在硬盘上的哪个位置获取所有Arduino代码所需的核心库文件(.cpp和.h)?
在Google上四处寻找,我找不到找到上述文件的方法。我确实看到了有关在Arduino编译时获取.a文件的信息,但这不是我想要的。我想浏览代码并查看诸如延迟之类的函数,以了解在给定非预期值时它们将如何反应。(即,如果我delay(-200);
不退出循环使用,我的代码会停顿吗,还是会产生黑洞并破坏时空连续性?)
Answers:
基本的Arduino源文件位于Arduino安装中的下hardware/*/cores/
。包含的其他库的源位于中libraries/
。可以在素描本的hardware/*/cores/
和libraries/
目录下找到其他文件。
/usr/lib/avr/include/
或在非Linux系统上转换成其他形式。
尚未安装IDE的那些时间,也可以在线获得该代码:
arduino源文件可以在Github上的https://github.com/arduino/Arduino上找到,但是这些库已移至它们自己的存储库中:
有很多地方可以看。从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
文件夹的子目录中sketchbook
。libraries
如果该文件夹不存在,则创建它。这样,用户安装的库就可以从一个IDE版本一直保留到另一个版本。