Jeg har ledt et stykke tid inde i Arduinos filer for at finde kernebiblioteket. Imidlertid har jeg ikke fundet dem endnu. Hvor på min harddisk kan jeg få de centrale biblioteksfiler (.cpp og .h), der er nødvendige for al Arduino-kode?
Når jeg kiggede rundt på Google, kunne jeg ikke finde en måde at finde ovenstående filer på. Jeg så noget om at få en .a-fil, mens Arduino kompilerer, men det er ikke det, jeg ønsker. Jeg vil gennemse koden og se på funktioner såsom forsinkelse for at se, hvordan de ville reagere, når de værdier, der ikke forventes, blev givet (dvs. vil min kode gå i stå, hvis jeg bruger delay(-200);
ved ikke at forlade sløjfen, eller skaber den et sort hul og forstyrrer rumtidskontinuumet?)
Kommentarer
- Jeg var interesseret i spørgsmålet, men hvad jeg ønsker er kildekoden til strcpy og strcat i samlerkildekode. Jeg downloadede Masterbiblioteket, men jeg kan ikke finde noget, der ligner strcpy eller strcat. ELLER måske ikke kan jeg se træet til træerne? spørgsmål, der angiver, hvilke filer du vil finde.
Svar
Basen Arduino-kildefiler findes i Arduino-installationen under cores/arduino/
. Kilde til yderligere inkluderede biblioteker findes i libraries/
.
Kommentarer
- Og don ' glem ikke
/usr/lib/avr/include/
eller hvad det end oversætter til på ikke-Linux-systemer. - Ærgerligt, at jeg installerede den som Windows 10-app og ikke har adgang til installationsmappen.
- Disse oplysninger virker forældede. biblioteker mappen er tom nu, og hardware er flyttet
Svar
Koden er også tilgængelig online for de tidspunkter, du ikke har IDE installeret:
https://github.com/arduino/Arduino
Kommentarer
- Kan ' t find header-filerne der.
- se mit svar nedenfor: arduino.stackexchange.com/a / 68658/59512
Svar
På en Mac er 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
Arduino-kildefilerne kan findes på Github på https://github.com/arduino/Arduino , h skyld bibliotekerne er flyttet til deres egne arkiver:
Svar
Der er flere steder, hvor du kan søge. Som på IDE 1.6.4 (Ubuntu-version) er nogle i:
(install location)/libraries
Men det er bibliotekerne på højt niveau, især:
Bridge Esplora Ethernet Firmata GSM LiquidCrystal Robot_Control RobotIRremote Robot_Motor SD Servo SpacebrewYun Stepper Temboo TFT WiFi
Det dækker ikke biblioteker på lavt niveau som Tone, Print, main osv. Disse er i:
(install location)/hardware/arduino/avr/cores/arduino
Der vil du finde Arduino-kernebiblioteker 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 finder ikke ting som strcpy. header filer til dem kan findes på:
(install location)/hardware/tools/avr/avr/include/
Der finder 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 den fulde historie. I en underkatalog (avr) finder du de avr-relaterede ting med filer til forskellige processorer, såsom (delvist):
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
Hvad angår kilden til strcpy, tror jeg ikke, det er i distributionen. De inkluderer standardbibliotekerne, præ-kompileret. Hvis du f.eks. Kigger ind:
(install location)/hardware/tools/avr/avr/lib
Du vil se forskellige præ-kompilerede biblioteker, for eksempel:
libc.a libm.a libprintf_flt.a libprintf_min.a libscanf_flt.a libscanf_min.a
For at finde kilden skal du finde, hvor AVR-kilden til libc er (muligvis ved http://www.nongnu.org/avr-libc/ ).
Hvad angår Mac, alt dette er et par niveauer nede i “Application Package”, som du kan se ved at højreklikke og vælge “Show Package Contents”. Se i Contents/Resources/Java
-mappen.
Ingen af disse steder er, hvor du skal placere din ejer biblioteker (dem du skriver e eller download).De skal gå ind i libraries
-mappen, som er en underkatalog til din sketchbook
-mappe. Opret libraries
-mappen, hvis den ikke findes. På den måde fortsætter brugerinstallerede biblioteker fra den ene version af IDE til den næste.