Debug per Arduino

In quest'ultimo periodo Drizzt ci sta facendo interessare allo sviluppo di piccole applicazioni con Arduino ed e' subito venuto fuori che il debug con l'IDE di Arduino e' impossibile. ho voluto allora provare l'IDE della Microchip, ossia l' Atmel Studio

formatting link
e' fatto per il sistema si sviluppo della Microchip, MA.... ... c'e' una estensione all'IDE che permette di utilizzare gli sketch .ino di Arduino, e di fare un debug, che per la verita' e' solo software, ma in molti semplici sketch e' gia' di aiuto.
formatting link

045/)

Ecco uno screenshot:

come funziona lo sketch si compila e si invia sulla scheda Arduino esattamente come si fa con l' IDE Arduino, ma se prima di inviarlo definiamo i break-point (i pallini rossi nello screenshot), l' Atmel Studio crea per noi del codice

nascosto con cui e' possibile fermare e riavviare il programma e visualizzare il valore di variabili. purtroppo questi breakpoint, come ho gia' detto, sono solo del codice nascosto aggiunto dal Atmel Studio, per cui se durante il debug vogliamo

aggiungerne altri o visualizzare altre variabili, dobbiamo per forza fermare tutto, ricompilare e reinviare sulla scheda, e ovviamente occupano spazio in memoria, per cui sketch molto grossi rischiano di non poter essere debuggati in questo modo. ammetto che non e' molto, ma un po' aiuta.

provatelo!

Reply to
alfio
Loading thread data ...

Il 06/09/2019 14:12, alfio ha scritto:

Direi che e' gia' un ottimo risultato. Cosa si deve installare? l'Atmel Studio e basta? G.

Reply to
Giorgio

o devo cercarlo craccato? :D

--
- Ciao, ho visto le tue foto su Facebook 
   chiamami al 347******9 
 Click to see the full signature
Reply to
Archaeopteryx

E' comunque una bella scuola per riflettere su ogni linea

--
- Ciao, ho visto le tue foto su Facebook 
   chiamami al 347******9 
 Click to see the full signature
Reply to
Archaeopteryx

Il 06/09/2019 14:12, alfio ha scritto:

Gia' e' qualcosa meglio di niente Perche' con l'ide Arduino si fa proprio zero (che non sia roba di tre righe)

Reply to
RobertoA

Esagerato! ho appena terminato un "firmware" da 1200 linee di codice col solo "monitor". G

Reply to
Giorgio

Il 06/09/2019 19:00, Giorgio ha scritto:

E come hai fatto? La semplice esecuzione passo-passo del codice, che in alcune zone di programma e' indispensabile aver, come l'hai fatto? Un programma di queste dimensioni, 1200 righe sono notevoli, fatto su ide Arduino, o lo prendi da spezzoni gia' pronti e funzionanti oppure e' impossibile funzioni come pensi possa fare Oppure ci metti un tempo irragionevolmente alto rispetto alle soluzioni classiche compilatore+debugger

Reply to
RobertoA

Il 06/09/19 20:17, RobertoA ha scritto:

Se sei abituato a scrivere in modo molto modulare e ordinato (tante piccole funzioni), e scrivi e testi una singola funzione per volta (quindi una ventina di righe per volta che e` quanto dovrebbe essere grande al massimo una funzione), grandi problemi non ce ne sono. In genere se qualche risultato non e` corretto il problema si circoscrive con pochissime print dei risultati delle funzioni. Personalmente mai usato un debugger neppure per programmi di 2000 righe in qualsiasi linguaggio.

Reply to
Claudio_F

che passa come il reference assoluto sul tema

simile, e ovviamente dava le stesse linee guida che hai

dichiarazione e inizializzazione variabili :D

--
- Ciao, ho visto le tue foto su Facebook 
   chiamami al 347******9 
 Click to see the full signature
Reply to
Archaeopteryx

Il 07/09/19 07:44, Archaeopteryx ha scritto:

Il C e` un linguaggio particolarmente sfortunato in questo senso.

Reply to
Claudio_F

Dici? Io ho sempre trovato comoda la formattazione libera, per esempio io dichiaro le variabili singolarmente e ciascuna su una linea, e cerco di scrivere in modo

ad esempio con lo stile:

for( i = 0 ; i < 42 ; i++ ) { // .... }

for( i = 0 ; i < 42 ; i++ ) { // .... }

ricordo a distanza di tempo cosa ho fatto.

Del resto a fare le cose per bene per un minuto dedicato a scrivere codice ne servirebbero 10 per documentarlo e io

odio-amore con l'informatica).

--
- Ciao, ho visto le tue foto su Facebook 
   chiamami al 347******9 
 Click to see the full signature
Reply to
Archaeopteryx

Il 06/09/2019 23:27, Claudio_F ha scritto:

Si, immagino che mettendoci nell'ipotesi di conoscere perfettamente il linguaggio e le librerie esterne usate allora un debug con messaggi sulla porta seriale puo' anche essere sufficiente Personalmente ho provato ad usare l'ide Arduino, provenendo dalla classica programmazione su ambiente sviluppo ed emulatore/debugger Ma non riesco proprio a farmi andar giu' l'idea di aggiungere istruzioni per far capire all'esterno cosa sta succedendo L'impossibilita' poi di fermare il flusso programma per analizzare le variabili del programma, lo rende davvero l'ultima spiaggia

Reply to
RobertoA

Il 07/09/19 09:04, Archaeopteryx ha scritto:

Intendo dire che in C e` normale espandersi su tantissime righe per cui le "lunghezze raccomandate" secondo me dipendono anche dal linguaggio usato. Certo e` che sarebbe sempre meglio vedere inizio e fine di ogni struttura nella stessa pagina, e che ci si dovrebbe limitare se possibile a un paio di livelli di indentazione.

Questa e` anche una specifica raccomadata. Immagino conoscerai il barr group

Reply to
Claudio_F

Il 07/09/19 09:26, RobertoA ha scritto:

C'e` anche un altro motivo, il realtime. Se un programma controlla un processo in tempo reale, allora avere dei punti di stop puo` impedire al processo di funzionare, mentre una trasmissione seriale che lavora in background senza interferire con le temporizzazioni mi permette di vedere cosa succede a "paziente sveglio".

Reply to
Claudio_F

"alfio" ha scritto nel messaggio news:qktt8s$g2s$ snipped-for-privacy@gioia.aioe.org...

questo era ieri. :-) oggi e' apparso questo: ho cliccato Close e non ho notato malfunzionamenti.

mi pare che sia proprio l'estensione a chiedere una licenza qui:

formatting link
dice: "Visual Micro is free for students (alongside daily nag screen) otherwise starts at $65. A 90 day evaluation of the software is allowed prior to purchase."

quindi per ora sono nei 90 giorni di prova, devo capire come dirgli che sono un studente (fuori corso) :-)

Reply to
alfio

Il 07/09/2019 09:39, Claudio_F ha scritto:

Parli come se tra avere la possibilita di fare una cosa e non avere la possibilita di farla, tu preferisca la seconda, e' strana questa cosa Ovvio che se mi serve controllare il grado di accensione di un tiristore sulla rete a 50Hz, ogni 10mS (semifase) devo mettermi a contare e poi accendere, non e' che puoi fermare il codice per vedere cosa succede Quello che non e' ovvio e' come sia 'sopportabile' un sistema che non ti permette di 'debuggare in modo efficiente' il codice del programma La mia perplessita' nasce dal fatto che vedo/leggo tanti Arduinisti che si accontentano cosi' Forse e' solo perche' non hanno mai provato altri sistemi

Reply to
RobertoA

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.