Hvordan kan jeg få kildefilene til Arduino-biblioteker?

Jeg har lett etter en stund i Arduinos filer for å finne kjernebiblioteket. Imidlertid har jeg ikke funnet dem ennå. Hvor på harddisken min kan jeg få de viktigste biblioteksfilene (.cpp og .h) som er nødvendige for all Arduino-kode?

Når jeg så meg rundt på Google, kunne jeg ikke finne en måte å finne filene ovenfor. Jeg så noe om å få en .a-fil mens Arduino kompilerer, men det er ikke det jeg vil ha. Jeg vil bla i koden og se på funksjoner som forsinkelse for å se hvordan de vil reagere når verdiene ikke forventes . (dvs. vil koden min stanse hvis jeg bruker delay(-200); ved ikke å gå ut av sløyfen, eller vil den skape et svart hull og forstyrre romtidskontinuumet?)

Kommentarer

  • Jeg var interessert i spørsmålet, men det jeg ønsker er kildekoden for strcpy og strcat i assembler kildekode. Jeg lastet ned hovedbiblioteket, men kan ikke finne noe som ligner på strcpy eller strcat. ELLER kan jeg ikke se treet til treet?
  • @bobzic Jeg foreslår at du spør en annen spørsmål som spesifiserer hvilke filer du vil finne.

Svar

De basale Arduino-kildefilene er i Arduino-installasjonen , under cores/arduino/ . Kilde for tilleggsbiblioteker som er inkludert, er i libraries/ .

Kommentarer

  • Og ikke ' t glem /usr/lib/avr/include/ eller hva som helst som oversettes til på ikke-Linux-systemer.
  • Synd at jeg installerte den som Windows 10-app og har ikke tilgang til installasjonsmappen.
  • Denne informasjonen virker utdatert. biblioteker -mappen er tom nå og maskinvaren har flyttet

Svar

Koden er også tilgjengelig online for de gangene du ikke har IDE installert:

https://github.com/arduino/Arduino

Kommentarer

Svar

På en Mac, stien til kildekodemappen er:
Arduino.app/Contents/Resources/Java/Hardware/Arduino/Cores/Arduino. Jeg forventer at det ville være det samme fra /Java/ og ned i andre operativsystemer.

Sti til bibliotekilder (Arduino-Mac)

Svar

Svar

Det er flere steder du kan lete. Som på IDE 1.6.4 (Ubuntu-versjonen) er noen i:

(install location)/libraries 

Men dette er biblioteker på høyt nivå, spesielt:

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

Det dekker ikke bibliotekene på lavt nivå som Tone, Print, main osv. Disse er i:

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

Der vil du finne Arduino-kjernebibliotekene 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 selv det finner ikke ting som strcpy. header filene for dem finner du på:

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

Der finner 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 

Selv det er ikke hele historien. I en underkatalog (avr) finner du de avr-relaterte tingene, med filer for forskjellige prosessorer, for eksempel (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 gjelder kilden til strcpy, tror jeg ikke det er i distribusjonen. De inkluderer standardbibliotekene, forhåndskompilert. Hvis du for eksempel ser i:

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

Du vil se forskjellige forhåndskompilerte biblioteker, for eksempel:

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

For å finne kilden må du finne hvor AVR-kilden til libc er (muligens på http://www.nongnu.org/avr-libc/ ).


Når det gjelder Mac, alt dette er noen nivåer nede i «Application Package» som du kan se ved å høyreklikke og velge «Show Package Contents». Se i Contents/Resources/Java -mappen.


Ingen av disse stedene er der du bør plassere eier biblioteker (de du skriver e eller last ned).De bør gå inn i libraries -mappen, som er en underkatalog til sketchbook -mappen. Opprett libraries -mappen hvis den ikke eksisterer. På den måten vedvarer brukerinstallerte biblioteker fra en versjon av IDE til den neste.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *