buongiorno a tutti.
Avrei una domanda da rivolgere a qualche guru.
Ogni tanto mi capitano situazioni del tipo:
a seguito di qualche modifica, il progetto si compila, si carica ma non parte
il progetto va in run regolarmente ma dopo qualche tempo si blocca tutto
altri problemi simili....
Probabilmente sono problemi di puntatori non correttamente valorizzati, sfondamento di scritture il qualche matrice, divisioni per 0 o roba simile.
Anche alzando il livello di warning non vengono fornite info in più a livello di compilazione.
Esiste qualche modalità per avere qualche informazione su che cosa è capitato?
Switch di compilazione, tools esterni, altro .....
grazie
scusa Guglielmo, che cretino che sono!
Arduino UNO R3.
Nell'IDE 1.8.19 non ho trovato nulla.
Ho visto invece che nell'IDE 2.0 in realtà è prevista una modalità DEBUG,
che però non sono riuscito a configurare:
per provare ho messo un BP nel setup() ma senza esito...
Ha compilato regolarmente, nessun tipo di warning nella box OUTPUT.
Forse è in evoluzione, visto quanto mi dicevi sulla versione 2.0!!!
si si
ho usato pure io questi metodi "artigianali", non sempre sono efficaci
Speravo ci fosse qualche cosa di più organizzato e che non conosco.
Ad esempio mi è capitato che lo schetch venisse caricato regolarmente ma poi non partiva,
non si vedeva neppure il logo Adafruit su di un display OLD SH1106.
In questo caso si può solo andare per tentativi/supposizioni:
qualcosa è costruito "male" ed il sistema va in crash.
non sempre è facile scoprirlo
L'IDE di Arduino NON prevede alcuna possibilità di debug per la vecchia famiglia AVR ... o si fa con i metodi classici che sono già stati esposti o ... occorre cambiare totalmente ambiente di sviluppo e le possibilità sono diverse ...
Usare come IDE Visual Studio ed usare il pluging per il debug sviluppato da Visual Micro
Passare ad un ambiente di sviluppo professionale a pagamento tipo CodeVisionAVR
Passare ad un ambiente di sviluppo professionale NON dedicato solo agli AVR, ma per tutte le MCU fatte da Microchip, ovvero MPLAB X ... sicuramemnte la strada più potente, ma anche la più complessa.
... se si vuole fare VERAMENTE debug ... le strade sono molto poche ... essenzialmente le ultime due che ho indicato, il resto sono "trucchi" che comunque aiutano
Ad oggi ONLY per la board Arduino Zero (che in pratica ha sopra l'HW aggiuntivo per fare debug, se prendi una cinese "compatibile" Zero NON ha quell'hardware e non hai debug; Arduino Zero 50 euro circa, le cinesi 20 euro circa)
Senza hw aggiuntivo è l'unica.
Da pagina ide 2, debug: The Arduino Zero board can be used without any external hardware
Con programmatore/debugger a parte (Segger J-Link o Atmel-ICE che costano molto) solo con alcune board Arduino con SAMD funziona: MKR Zero, MKR WiFi 1010,MKR FOX 1200, MKR WAN 1300, MKR WAN 1310, MKR GSM 1400, MKR NB 1500, MKR VIDOR 4000, Nano 33 IoT
Una soluzione "intermedia" è usare la piattaforma di sviluppo STM32 con le schede della famiglia Nucleo 32/64 che hanno già integrato a bordo il programmatore/debugger STLink V2.
Non è di sicuro una soluzione che copre ogni esigenza, ma per testare algoritmi "generici" non legati all'hardware oppure librerie che supportano più famiglie di microntrollori può essere utile.
Io ad esempio lo uso ogni tanto con Platformio che è molto facile da configurare per il debug.
Ovviamente ci sono anche altre famiglie di micro e altri debugger (ad esempio l'arci noto Segger Jlink) ma questa soluzione non è troppo costosa.
Se dobbiamo uscire dalle schede Arduino, allora preticamente tutte le "Curiosity Nano" di Microchip hanno i debugger integrato e si trovano sia per AVR che per SAM D ... dopo di che. gratuitamente, si usa MPLAB X che le gestisce nativamente tutte, su tutte le piattaforme (macOS, Win, Linux).
... SE e ribadisco il SE lo si sa fare, anche in MPLAB X ... è solo meno intuitivo e più farraginoso arrivarci, ma lo si fa (provato personalmete ... all'epoca c'avevo organizzato anche un corso ).
Inoltre, se ben ricordo, hanno anche rilasciato un plugin per importare in MPLAB X i lavori Arduino ... però questo non l'ho mai provato ...