Arduino 라이브러리의 소스 파일을 어떻게 얻을 수 있습니까?


14

핵심 라이브러리를 찾기 위해 Arduino의 파일 내부에서 잠시 동안 찾고있었습니다. 그러나 아직 찾지 못했습니다. 하드 드라이브의 모든 Arduino 코드에 필요한 핵심 라이브러리 파일 (.cpp 및 .h)을 어디서 구할 수 있습니까?

Google을 둘러 보면 위의 파일을 찾는 방법을 찾지 못했습니다. 그러나 Arduino가 컴파일하는 동안 .a 파일을 얻는 것에 대한 무언가를 보았습니다. 그러나 그것은 내가 원하는 것이 아닙니다. 코드를 탐색하고 지연과 같은 함수를보고 예상하지 않은 값이 주어지면 어떻게 반응하는지 확인하고 싶습니다. (즉 delay(-200);, 루프를 종료하지 않고 사용하면 코드가 멈추 거나 블랙홀을 만들어 시공간 연속체를 방해합니까?)


질문에 관심이 있었지만 원하는 것은 어셈블러 소스 코드의 strcpystrcat 에 대한 소스 코드입니다. 마스터 라이브러리를 다운로드했지만 strcpy 또는 strcat과 원격으로 비슷한 것을 찾을 수 없습니다. 아니면 나무의 나무를 볼 수 없습니까?
bobzic

@bobzic 나는 당신이 찾고 싶은 파일을 지정하는 다른 질문을 할 것을 제안합니다.
Anonymous Penguin

답변:


9

기본 Arduino 소스 파일은 Arduino 설치의 아래에 hardware/*/cores/있습니다. 추가 라이브러리에 대한 소스는에 libraries/있습니다. 추가 파일은 스케치북의 hardware/*/cores/libraries/디렉토리에 있습니다.


그리고 /usr/lib/avr/include/Linux 이외의 시스템에서 해석되는 것을 잊지 마십시오 .
jippie

Windows 10 앱으로 설치했는데 설치 폴더에 액세스 할 수 없습니다.
Tomáš Zato-복원 모니카


8

Mac에서 소스 코드 폴더의 경로는 다음과 같습니다
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. 나는 /Java/다른 OS에서 다운 될 때와 동일 할 것으로 기대합니다 .

라이브러리 소스 경로 (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폴더의 하위 디렉토리 인 폴더 로 이동해야 sketchbook합니다. libraries폴더가 없으면 작성하십시오 . 이렇게하면 사용자 설치 라이브러리가 한 버전의 IDE에서 다음 버전으로 유지됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.