Ho su un Arduino NANO una vecchia versione di sketch che avevo fatto e di cui non ricordo la versione.
La versione installata è perfettamente funzionante e mi piacerebbe recuperarla anche nel formato eseguibile o alltro.
Recuperarla nel senso di scaricarla dalla memoria per poi installarla su un altro NANO.
Saluti
No, quello spiega come scrivere, compilare un programma, recuperare il .hex e clonarlo in un altro arduino senza dover ogni volta compilare.
Nel suo caso invece lui NON ha più il sorgente (sarebbe troppo facile), ma deve andare a recuperare dalla flash del ATmega328P il codice già compilato per trasferirlo su un altro ATmega328P.
Questo è possibile SOLO disponendo di un programmatore ISP da collegare al connettore ICSP e, tramite esso, recuperare dalla flash il codice (cosa oltretutto possibile solo perché lui NON lo ha protetto, perché, se lo avesse protetto dalla copia, neanché così sarebbe riuscito).
Non caro @ gpb01 Penso che tu non abbia capito bene il video, quello che fa è:
1- Creare un "modello" di uno schizzo vuoto.
2- leggi e scrivi su quel modello con il programma avrdudess il codice di lampeggiamento veloce
3- con lo stesso programma, registra quel modello in arduino con il lampeggiamento lento
4- Arduino lo accetta e inizia a funzionare con il nuovo lampeggio
Poi ha salvato il codice in esadecimale sull'hard disk per future registrazioni ed è stato in grado di registrarlo su un nuovo arduino, che è quello che penso voglia fare l'amico @anon67178573.
Saluti.
Ok, ho riguardato bene il video e ... beh ... mi hai fatto scoprire veramente una cosa nuova, avdude riesce ad usare il protocollo "arduino" non solo per programmare il chip, ma anche per leggere !!!
Ti garantisco che in tanti anni mai avevo cercato di fare questa prova ... molto interessante, grazie per l'informazione ! Correggo i miei post precedenti per eliminare la cattiva informazione ...
A questo punto si può usare sia l'interfaccia grafica "avrdudess" (strada più semplice) che direttamente avrdude da linea comando (che è poi quello che fa avrdudess dietro le quinte) e lanciare la lettura, il salvataggio del file .hex e poi la successiva scrittura e non è necessario usare un programmatore ICSP (... ovviamente vale sempre la cosa che il programma non deve essere stato protetto).
@anon67178573 : se ben ricordo tu lavori su mac (come me) e quindi la cosa si complica un tantino.
Per usare avrdudess (interfaccia grafica verso avrdude) sotto mac devi installare "Mono" ed usare il prodotto con tale piattaforma. T'avverto subito che il primo avvio è di una lentezza esasperante (almeno sulla mia macchina) ... sembra quasi che non stia funzionando, ma ... se aspetti alcuni minuti vedrai apparite la maschera di avrdudess (oltre ad un po' di segnalazioni nel terminal dove lo avrai dovuto lanciare).
L'altra strada è studiarti il manuale di avrdude e ricavare i comandi che servono ... non esattamente banale, ma fattibile.
Guglielmo
Edit: vedi più avanti ... NON serve che installi avrdudess e Mono
@gonpezzi : ... In effetti, ora che mi hai fatto notare la cosa e mi ci hai fatto pensare ... quando da IDE noi chiediamo la "verifica" del programma, l'IDE lancia prima la scrittura in flash e poi fa la verifica che la scrittura sia avvenuta correttamente, quindi ... era ovvio che la cosa era fattibile solo che ... la mia abitudine ad usare sempre programmatori esterni su ICSP non mi ha fatto notare la cosa ed ero convinto che il recupero della flash fosse possibile, appunto, solo via ICSP...
Ti meriteresti un punto "karma", ma dato che non ci sono più ... metto il ...
@anon67178573 : ... l'età e l'ora tarda giocano brutti schezi ... a mente fresca ... sempre se ben ricordo e se sei su mac, NON serve né Mono né avrdudess ... c'è un'ottima interfaccia grafica (quindi simile nell'uso ad avrdudess) nativa per mac, è AVRfuses ... che magari ti ho già consigliato in passato
Unico motivo per eventualmente installare Mono e avrdudess è che è un prodotto che mi sembra venga aggiornato con maggiore frequenza ... ma per l'uso che devi farne ... AVRfuses è più che sufficiente
Grazie dei consigli di entrambi.
Si, uso di preferenza il Mac ma in alternativa ho anche un Pc con Windows 10.
Appena rientro "at home" provo a seguire i vostri consigli.
Saluti
LelloGi
Sei hai una macchina Win sicuramente SI, altrimenti, invece che avrdudess su Win usi AVRfuses su mac ... fanno la stessa cosa, sono solo una GUI verso avrdude.
Tutto "abbastanza" chiaro.
Prima di approfondire personalmente il discorso (visto che mi ha dato gli input sui quali cercare) , faccio ulteriore domanda perchè non ho capito una cosa: pongo come esempio un ipotetico scenario :
parliamo sempre di esp32 : faccio il mio programma, lo carico, e lo do a chi deve utilizzarlo. Per potergli far fare update uso OTA, con connessione al mio server dove rilascio il .bin aggiornato.
Se io blocco l'esp nei modi indicati dal link che hai postato, il download OTA avviene lo stesso o non è possibile ?
Si parlava di blocco della lettura e non di scrittura ... ma non mi è completamente chiaro .
NO, questo è il forum di Arduino ed io mi riferisco sempre agli Arduino e, se non meglio specificato, ad Arduino UNO, ovvero ... MCU AVR ... per gli ESP32 c'è il forum di Espressif
Della serie ... NON ho la più pallida idea se questa cosa esiste e come anche su ESP32 ...
Quando fate delle richieste specificate sempre di cosa parlate !