ฉันจะรับไฟล์ต้นฉบับสำหรับไลบรารี Arduino ได้อย่างไร


14

ฉันได้รับการมองหาในขณะที่ภายในแฟ้มของ Arduino เพื่อค้นหาไลบรารีหลัก อย่างไรก็ตามฉันยังไม่พบพวกเขา ในฮาร์ดไดรฟ์ของฉันฉันสามารถรับไฟล์ core library (.cpp และ. h) ที่จำเป็นสำหรับรหัส Arduino ทั้งหมดได้อย่างไร

เมื่อมองไปรอบ ๆ บน Google ฉันไม่สามารถหาไฟล์ด้านบนได้ ฉันเห็นบางสิ่งเกี่ยวกับการรับไฟล์. a ในขณะที่ Arduino กำลังรวบรวม แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการเรียกดูรหัสและดูฟังก์ชั่นเช่นการหน่วงเวลาเพื่อดูว่าพวกเขาจะตอบสนองอย่างไรเมื่อได้รับค่าที่ไม่คาดคิด (เช่นรหัสของฉันจะแผงลอยถ้าฉันใช้delay(-200);โดยไม่ต้องออกจากลูปหรือมันจะสร้างหลุมดำและขัดขวางการต่อเนื่องของเวลาว่าง)


ฉันสนใจคำถาม แต่สิ่งที่ฉันต้องการคือซอร์สโค้ดสำหรับstrcpyและstrcatในซอร์สโค้ดแอสเซมเบลอร์ ฉันดาวน์โหลด Master Library แต่ไม่พบสิ่งใดจากระยะไกลคล้ายกับ strcpy หรือ strcat หรือบางทีฉันไม่เห็นต้นไม้สำหรับต้นไม้?
bobzic

@bobzic ฉันขอแนะนำให้คุณถามคำถามอื่นเพื่อระบุไฟล์ที่คุณต้องการค้นหา
ไม่ระบุชื่อเพนกวิน

คำตอบ:


9

ฐานไฟล์ที่มา Arduino อยู่ในการติดตั้ง Arduino hardware/*/cores/ภายใต้ libraries/แหล่งที่มาสำหรับห้องสมุดเพิ่มเติมรวมอยู่ใน อาจพบไฟล์เพิ่มเติมในสมุดร่างภายใต้hardware/*/cores/และlibraries/ไดเรกทอรี


และอย่าลืม/usr/lib/avr/include/หรือสิ่งที่แปลเป็นระบบที่ไม่ใช่ Linux
jippie

เสียดายที่ฉันติดตั้งเป็นแอพ Windows 10 และไม่สามารถเข้าถึงโฟลเดอร์การติดตั้งได้
Tomáš Zato - Reinstate Monica


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, Tone, 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 ทุกสิ่งนี้อยู่ในระดับที่ไม่มากนักใน "Application Package" ซึ่งคุณสามารถดูได้โดยคลิกขวาแล้วเลือก "Show Package Contents" ดูในContents/Resources/Javaโฟลเดอร์


ไม่มีสถานที่เหล่านี้ที่คุณควรใส่ห้องสมุดของคุณเอง (ที่คุณเขียนหรือดาวน์โหลด) พวกเขาควรเข้าไปในlibrariesโฟลเดอร์ซึ่งเป็นไดเรกทอรีย่อยของsketchbookโฟลเดอร์ของคุณ สร้างlibrariesโฟลเดอร์หากไม่มีอยู่ วิธีที่ไลบรารีที่ผู้ใช้ติดตั้งจะคงอยู่จาก IDE เวอร์ชันหนึ่งไปเป็นเวอร์ชันถัดไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.