Hur kan jag få källfilerna till Arduino-bibliotek?

Jag har letat ett tag inuti Arduinos filer för att hitta kärnbiblioteket. Jag har dock inte hittat dem ännu. Var på min hårddisk kan jag få de kärnbiblioteksfiler (.cpp och .h) som är nödvändiga för all Arduino-kod?

När jag tittade runt på Google kunde jag inte hitta ett sätt att hitta ovanstående filer. Jag såg något om att få en .a-fil medan Arduino kompilerar, men det är inte vad jag vill. Jag vill bläddra i koden och titta på funktioner som fördröjning för att se hur de skulle reagera när de värden som inte förväntas gavs . (dvs kommer min kod att stanna om jag använder delay(-200); genom att inte gå ut ur slingan, eller kommer det att skapa ett svart hål och störa rymdtidskontinuet?)

Kommentarer

  • Jag var intresserad av frågan, men vad jag vill är källkoden för strcpy och strcat i assembler-källkod. Jag laddade ner huvudbiblioteket men jag kan inte hitta något som liknar strcpy eller strcat. ELLER kanske jag inte kan se träden för träden?
  • @bobzic Jag föreslår att du frågar en annan fråga som anger vilka filer du vill hitta.

Svar

Arduino-baskällfilerna finns i Arduino-installationen , under cores/arduino/ . Källa för ytterligare bibliotek som ingår finns i libraries/ .

Kommentarer

  • Och glöm inte ' /usr/lib/avr/include/ eller vad som helst som översätts till på icke-Linux-system.
  • Synd att jag installerade den som Windows 10-app och kan inte komma åt installationsmappen.
  • Denna information verkar föråldrad. Mappen bibliotek är tom nu och hårdvaran har flyttats

Svar

Koden är också tillgänglig online för de tider du inte har IDE installerad:

https://github.com/arduino/Arduino

Kommentarer

Svar

På en Mac, sökvägen till källkodsmappen är:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Jag förväntar mig att det skulle vara detsamma från /Java/ och ner i andra operativsystem.

Sökväg till bibliotekskällor (Arduino-Mac)

Svar

Svar

Det finns flera platser där du kan leta. Som vid IDE 1.6.4 (Ubuntu-versionen) finns vissa i:

(install location)/libraries 

Men det här är högnivåbiblioteken, i synnerhet:

Bridge Esplora Ethernet Firmata GSM LiquidCrystal Robot_Control RobotIRremote Robot_Motor SD Servo SpacebrewYun Stepper Temboo TFT WiFi 

Det täcker inte bibliotek på låg nivå som Tone, Print, main, etc. Dessa finns i:

(install location)/hardware/arduino/avr/cores/arduino 

Där hittar du Arduino-kärnbiblioteken som:

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 

Men även det hittar inte saker som strcpy. rubrik filer för dem finns på:

(install location)/hardware/tools/avr/avr/include/ 

Där hittar du:

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 

Även det är inte hela historien. I en underkatalog (avr) hittar du de avr-relaterade sakerna, med filer för olika processorer, till exempel (delvis):

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 

När det gäller källan till strcpy tror jag inte att det finns i distributionen. De inkluderar standardbiblioteken, förkompilerade. Till exempel om du tittar i:

(install location)/hardware/tools/avr/avr/lib 

Du kommer att se olika förkompilerade bibliotek, till exempel:

libc.a libm.a libprintf_flt.a libprintf_min.a libscanf_flt.a libscanf_min.a 

För att hitta källan måste du hitta var AVR-källan libc är (möjligen http://www.nongnu.org/avr-libc/ ).


När det gäller Mac, allt detta är några nivåer nere i ”Application Package” som du kan visa genom att högerklicka och välja ”Visa paketinnehåll”. Titta i Contents/Resources/Java -mappen.


Ingen av dessa platser är där du ska placera din egna bibliotek (sådana du skriver e eller ladda ner).De ska gå in i libraries -mappen som är en underkatalog för din sketchbook -mapp. Skapa mappen libraries om den inte finns. På det sättet kvarstår användarinstallerade bibliotek från en version av IDE till nästa.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *