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
- Kan ' t finn headerfilene der.
- se svaret mitt nedenfor: arduino.stackexchange.com/a / 68658/59512
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.
Svar
Kildefilene til arduino finner du på Github på https://github.com/arduino/Arduino , h skyld bibliotekene er flyttet til sine egne arkiver:
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.