User Tools

Site Tools


didattici:arduino

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

didattici:arduino [2019/12/08 12:20] – created profprodidattici:arduino [2020/06/08 22:20] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +======Arduino IDE======
 +
 +In realtà la compilazione si potrebbe fare anche dal terminale
 +
 +Esistono appositi file make che aggiungono un metodo //main// al codice per renderlo accettabile dal compilatore
 +
 +===Fasi Compilazione===
 +https://github.com/arduino/Arduino/wiki/Build-Process
 +
 +  * prima l'ambiente preprocessa il file .ino
 +  * aggiunge un main per poi passarlo al compilatore avr-gcc
 +  * poi produce un object file .o
 +  * poi viene linkato con le librerie arduino (digitalWrite, ecc)
 +  * produce un file .hex
 +
 +====dettagli:====
 +  - la cartella si chiama come il progetto principale, ad esempio <code> prova/prova.ino </code>
 +  - tutti gli altri file sorgente .cpp al suo interno vengono concatenati a partire da prova.ino e si concatena anche Arduino.h
 +  - si aggiungono anche delle direttive #line
 +  - la compilazione è fatta da avr-gcc e avr-g++ che si possono configurare nel file boards.txt platform.txt programmers.txt. per approfondire si veda https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification
 +  - i file temporanei sono generati in /tmp
 +
 +  - attivando **verbose output** nelle //Preferenze// di Arduino IDE si vede dove avviene il tutto
 +  - <code>/usr/share/arduino/hardware/tools/avr/bin/avr-objcopy -O ihex -R .eeprom /tmp/build1160406297178898656.tmp/prova.cpp.elf /tmp/build1160406297178898656.tmp/prova.cpp.hex </code>
 +  - upload con [[didattici:avrdude]]
 +
 +