Pages: [1] 2   Go Down
Author Topic: Importare da ATMEGA 238  (Read 1222 times)
0 Members and 1 Guest are viewing this topic.
Verona
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-cool
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Edison Member
*
Karma: 24
Posts: 2032
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nota:ATMEGA 238 è nuovo? smiley-mr-green
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

nota:ATMEGA 238 è nuovo? smiley-mr-green

Si è il nuovissimo Atmega 328-90  smiley
Logged

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 2830
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-cool

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

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21669
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Quote
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  smiley-wink
Logged


Verona
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21669
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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...  smiley-sweat
Logged


Verona
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-cool
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21669
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Quote
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 smiley-cool
Non te ne fai nulla ugualmente. Neanche AvrStudio può ricostruirti un sorgente in C partendo da un binario.
Logged


Verona
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-cool
Logged

Pages: [1] 2   Go Up
Jump to: