Verona
Offline
Newbie
Karma: 0
Posts: 28
|
 |
« on: February 01, 2013, 08:31:58 am » |
Hola a tutti
Sono un novizzio di arduino e con avvanzata eta'!!!
Mi sono posto un problema! con l'interfaccia IDE si puo digitare e compilare un programma e poi trasferlo, ma se io avessi bisogno di fare l'opposto? ossia leggere un atmega238 e il suo contenuto trasferiolo sulla interffacci IDE e poterlo salvare e modificare!
Si puo' e come?
Grazie a tutti di ogni risposta.......!!!!!
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #1 on: February 01, 2013, 08:39:55 am » |
No non puoi, l'unica cosa che puoi fare, forse, è ricavare l'assembler generato dall'ide e caricato nel chip. Ma ci vogliono strumenti particolari.
|
|
|
|
|
Logged
|
|
|
|
|
Verona
Offline
Newbie
Karma: 0
Posts: 28
|
 |
« Reply #2 on: February 01, 2013, 09:12:35 am » |
Hola Erpomata Ma si puo' leggere la rom interna dell'atmega238 con IDE , perche' io non vedo il file binario che genera IDE o se lo genera dove lo trovo? se queste cose non si possono fare e abbastanza limitato IDE, bisognora trovare un'altra alternativa e cosa eventualmente? Grazie 
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7382
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #3 on: February 01, 2013, 09:19:31 am » |
ma se io avessi bisogno di fare l'opposto? ossia leggere un atmega238 e il suo contenuto trasferiolo sulla interffacci IDE e poterlo salvare e modificare!
Non si può fare, dentro l'Atmega non c'è lo sketch, c'è il file binario prodotto dal compilatore. Al massimo puoi leggere la flash, si fa anche tramite AvrDude, e ottenere il relativo file .hex, ma da questo non puoi ottenere lo sketch, puoi avere solo il listato assembly senza nessun riferimento e nomi di variabili.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 16
Posts: 1805
|
 |
« Reply #4 on: February 01, 2013, 09:33:18 am » |
nota:ATMEGA 238 è nuovo? 
|
|
|
|
|
Logged
|
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7382
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #5 on: February 01, 2013, 09:45:08 am » |
nota:ATMEGA 238 è nuovo?  Si è il nuovissimo Atmega 328-90 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 10
Posts: 2199
Arduino rocks
|
 |
« Reply #6 on: February 01, 2013, 10:46:34 am » |
Hola Erpomata Ma si puo' leggere la rom interna dell'atmega238 con IDE , perche' io non vedo il file binario che genera IDE o se lo genera dove lo trovo? se queste cose non si possono fare e abbastanza limitato IDE, bisognora trovare un'altra alternativa e cosa eventualmente? Grazie  Le limitazioni sono altre semmai. L'obbiettivo primario dell'ide è quello di fornire all'utente un modo per scrivere il codice sorgente, compilarlo e trasferirlo nella memoria flash del microcontroller. Leggere il codice presente in flash non ha alcuna utilità se non quella di recuperare un codice sorgente che hai precedentemente trasferito nella flash e che accidentalmente hai cancellato dal PC. Tutti i file generati durante il processo di build si trovano in una directory temporanea, il percorso di questa dipende dal sistema operativo, posso dirti che su GNU/Linux si trova sotto /tmp/dir_temporanea. Cerca sotto /tmp qualcosa che abbia a che fare con arduino, il nome della dir è sempre diverso ma ci dovrebbe essere un prefisso inequivocabile o forse no non ricordo. Li dentro ci trovi il file .hex in formato intel hex, ci trovi il file binario ".elf" ecc. Ciao.
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #7 on: February 01, 2013, 10:48:49 am » |
Ci dovrebbe essere nell proprietà dell'ide qualcosa da impostare per fare una compilazione "verbosa".
In questo modo, alla fine della compilazione, viene anche detto quale file è stato generato e dove.
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7382
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #8 on: February 01, 2013, 10:49:00 am » |
Leggere il codice presente in flash non ha alcuna utilità se non quella di recuperare un codice sorgente che hai precedentemente trasferito nella flash
Nella flash non hai nessun sorgente, hai solo l'eseguibile in codice macchina in formato binario.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16535
Don't know what I do
|
 |
« Reply #9 on: February 01, 2013, 10:55:29 am » |
Hola Erpomata
Ma si puo' leggere la rom interna dell'atmega238 con IDE , perche' io non vedo il file binario che genera IDE o se lo genera dove lo trovo?
Il binario generato dall'IDE prima dell'upload viene salvato in una cartella temporanea. Se vuoi vedere quale e dove è (cambia in base al SO utilizzato) abilita i messaggi durante la compilazione attraverso File/Preferenze. In ogni caso quel file binario è in linguaggio macchina. Non te ne fai nulla. Per gli "umani" il file di riferimento è quello del sorgente dello sketch. se queste cose non si possono fare e abbastanza limitato IDE, bisognora trovare un'altra alternativa e cosa eventualmente?
Il concetto applicato ai PC non è diverso: da un file compilato non puoi ricavare un sorgente intellegibile. Se perdi i sorgenti di un programma, sei nell'acqua motosa sia programmando i microcontrollori che programmando i computer 
|
|
|
|
|
Logged
|
|
|
|
|
Verona
Offline
Newbie
Karma: 0
Posts: 28
|
 |
« Reply #10 on: February 03, 2013, 03:22:13 am » |
Hola a tutti
E doveroso dire grazie a tutte le risposte che mi avete dato in merito!
Se usassi un compilatore diverso in quale formato dovrei usare per poterlo poi trasferire sulla IDE e programmare il 328 ( erroneamente avevo scritto 238 )
Grazie
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16535
Don't know what I do
|
 |
« Reply #11 on: February 03, 2013, 08:51:39 am » |
Se usassi un compilatore diverso in quale formato dovrei usare per poterlo poi trasferire sulla IDE e programmare il 328
Un IDE è un ambiente di sviluppo, esso serve a scrivere il sorgente di un programma. Una volta scritto e salvato il file, è il compilatore che si prende la briga di trasformare il sorgente in linguaggio macchina. Il compito dell'IDE termina lì. Quindi, l'IDE non può aprire file binari, può solo aprire sorgenti. Il sorgente puoi scriverlo o con l'IDE stesso oppure con un qualunque editor di testi. Non afferro quale sia il problema, scusami... 
|
|
|
|
|
Logged
|
|
|
|
|
Verona
Offline
Newbie
Karma: 0
Posts: 28
|
 |
« Reply #12 on: February 04, 2013, 03:07:41 am » |
Hola Leo72 Grazie della tua spiegazione! ora ti spiego il mio problema, ho preso in germania un kit che usa un atmel , esattamente Atmega 328 gia programmato, non so' se mi fornira' il file origine o del file bin dal momento che non e' piu' im produzione, io glielo chiesto e lui gentilmente mi ha detto che me lo fara' avere, per non sapere ne scrivere e di leggere vorrei poter avere la possibilita' di averene una coppia per ovvi motivi di sicurezza nel caso in cui lo bruci! Questo e il mio problema, ora sto' vedendo di utilizzare la IDE della Atmel AVR studio 5.1 , quel che ho capito genera tutti file che a me necessitano, ovvio che non ha un decompillatore , pero in rete so' che si trovano. Grazie e se hai qualche idea in merito fammi un fischio...Ciao 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16535
Don't know what I do
|
 |
« Reply #13 on: February 04, 2013, 03:37:17 am » |
Hola Leo72
Grazie della tua spiegazione! ora ti spiego il mio problema, ho preso in germania un kit che usa un atmel , esattamente Atmega 328 gia programmato, non so' se mi fornira' il file origine o del file bin dal momento che non e' piu' im produzione, io glielo chiesto e lui gentilmente mi ha detto che me lo fara' avere, per non sapere ne scrivere e di leggere vorrei poter avere la possibilita' di averene una coppia per ovvi motivi di sicurezza nel caso in cui lo bruci!
Un microcontrollore ha dei "blocchi" hardware per cui può essere protetto in lettura. Se non è stato protetto in lettura, puoi estrarre il firmware in formato binario. Questo firmware puoi riscriverlo su altri micro. Non puoi recuperare il sorgente da questo file, come ti è già stato spiegato. Al massimo, usando un disassemblatore, puoi ottenere il sorgente assembly, ma quest'ultimo ha poco da spartire con un sorgente in C Questo e il mio problema, ora sto' vedendo di utilizzare la IDE della Atmel AVR studio 5.1 , quel che ho capito genera tutti file che a me necessitano, ovvio che non ha un decompillatore , pero in rete so' che si trovano. Grazie e se hai qualche idea in merito fammi un fischio...Ciao  Non te ne fai nulla ugualmente. Neanche AvrStudio può ricostruirti un sorgente in C partendo da un binario.
|
|
|
|
|
Logged
|
|
|
|
|
Verona
Offline
Newbie
Karma: 0
Posts: 28
|
 |
« Reply #14 on: February 04, 2013, 11:09:06 am » |
Grazie leo72 Spero che il fornitore non lo chiuda e che mi mandi almeno il file origine per poterlo eventualmente editarlo! per il Dissasemblatore conosco gia' la bestia! l'utilizzavo parecchi anni fa', quello per il microprocessore 6502 , che si usava nell'apple prima generazione!!!! Ciao e grazie 
|
|
|
|
|
Logged
|
|
|
|
|
|