Jump to content
PLC Forum


martin1984

scheda elettronica da programmare spi

Recommended Posts

martin1984

non era un sollecito , ma solo una approfondimento per la risposta precedente ed per cercare di spiegarmi meglio con le foto

Share this post


Link to post
Share on other sites

Nikiki

Quindi?... Sei riuscito a leggere questo firmware? :smile:

Share this post


Link to post
Share on other sites
martin1984

nella cartella programm , ci sono 2 sezioni  flash o eeprom ?

 

ho gia provato nella sezione flasc ed ha letto ed lo ho salvato , poi non so se sia coretto !

Share this post


Link to post
Share on other sites
Nikiki

Scusami, ho dato per scontato che tu lo sapessi. 

Il firmware è contenuto nella flash, ma dato che tu devi fare un clone ti consiglio di leggere anche la eeprom, perché potrebbero esserci dati necessari al corretto funzionamento. 

Share this post


Link to post
Share on other sites
martin1984

ok fatto ho letto quello della eeprom ,

ti faccio un domanda : la eeprom contiene anche la flash o sono 2 sezioni differenti nel chip , cioe se devo riprogrammare la scheda mi serve il file eepron e anche il flash ?

 

adesso per scrivere il firmware buono sulla scheda guasta come devo procedere ?

Share this post


Link to post
Share on other sites
Nikiki

Sono indipendenti, li devi leggere entrambi. 

C'è la possibilità di salvarli in un unico file ma lascia perdere, altrimenti ti complichi le cose per niente. 

Leggi flash e salva. 

Leggi eeprom e salva. 

 

Connetti la scheda da programmare,  per prima cosa verifica i fuses se sono uguali agli altri ed eventualmente impostali uguali (attento a non sbagliare perché alcune modifiche sono irreversibili), dopodiché vai nella scheda program e scrivi flash e eeprom. Facendo la scrittura fa automaticamente la verifica, nella finestra di log dovresti vedere se le operazioni sono andate a buon fine (verify ok). 

 

Share this post


Link to post
Share on other sites
martin1984

i fuses sono uguali

ho provato ma quando clicco su programm mi compare una scritta

 

Getting isp parameter.. SD=0xfe .. OK
ISP frequency must be 5 kHz or above when programming EEPROM or FLASH!

Share this post


Link to post
Share on other sites
Nikiki

Ma quanto l'hai impostata la frequenza ISP?...dovresti impostarla al massimo 1/4 del clock del Micro, impostala a 1 MHz almeno

Share this post


Link to post
Share on other sites
martin1984

quando premo sul tasto read nella prima scremata

isp freq 1.206 kHz

 

http://it.tinypic.com/r/2mwwks0/9

 

impostato a 1,845mhz ed si è programmato

 

significa che non è protetto il chip ?

Share this post


Link to post
Share on other sites
Nikiki

Che non era protetto oramai era chiaro, altrimenti non l'avresti letto. 

Strano che a 1200 non te lo programmasse... Hai programmato flash e eeprom? 

Se la programmazione è andata a buon fine non ti resta che montare la scheda e vedere se funziona. 

Share this post


Link to post
Share on other sites
martin1984

ok  funziona !!!!!!:clap:

 

Share this post


Link to post
Share on other sites
martin1984

ti faccio una domanda questo firmaware si potrebbe modificare preche ci sarebbe un problemino, o è una cosa impossibile ?

Share this post


Link to post
Share on other sites
Darlington

Per modificarlo dovresti avere i sorgenti, partire dall'hex è impossibile

Share this post


Link to post
Share on other sites
Nikiki

Non è impossibile, ma è un lavoraccio che non immagini. 

Deve valerne davvero la pena.  

Share this post


Link to post
Share on other sites
Darlington

Io lo ho fatto una volta, nel mio caso si trattava di eliminare un timer introdotto nel codice di quella che doveva essere una sveglia: il tipo la aveva progettata in modo da fermarsi da sola dopo due minuti che suonava, io avevo necessità che si fermasse solo quando premevo io il pulsante. 

 

Alla fine dopo innumerevoli prove ed elucubrazioni varie ce la ho fatta, ma avevo una informazione importante: il tipo nel descrivere il progetto si era lasciato scappare che molte funzioni erano controllate sulla base del clock di 1Hz fornito dal RTC, e quello mi ha aiutato a trovare un registro che veniva decrementato a ogni input ricevuto; senza notare quel dettaglio (o se lui avesse deciso di realizzare quel timer in altra maniera) non ci sarei mai riuscito.

 

Da quel che ho letto, mi pare di capire che si voglia fare un debug a posteriori, sul codice già compilato, e quello lo vedo alquanto impossibile; ci vorrebbe una profonda conoscenza dell'assembler e talmente tanto tempo che probabilmente, renderebbe più conveniente retroengineerizzare l'hardware e riscrivere il software da zero.

Share this post


Link to post
Share on other sites
martin1984

ok ma mi sembra troppo laborioso ed complicato , perche io drovrei tolgiere solo lo stenbay o prolungarlo a 4 ore  , la macchina dovrebbe avere un frware semplice , perche fa ( , solo caffe lungo caffe corto ed ha l'orologio) , poi se vuoi io ti mando la copia del firmware che ho letto se gli vuoi dare un occhiata ?

Share this post


Link to post
Share on other sites
Livio Orsini
Quote

Non è impossibile, ma è un lavoraccio che non immagini. 

 

Agli albori dei microcontrollori, ma anche con macchine come 8085 e Z80, quando si usvano Eprom da 4kbytes per memorizzare i programmi, per non riscrivere l'intero treno si usava fare modifiche direttamente in codice macchina sul programma .hex. Era abbastanza.....rompiglioso ma se ci facevi la mano non era poi così duro da farsi.

Il vero problema, in questo caso, è che devi lavorare su un programma fatto da altri e capirci, senza avere i riferimenti di un listato, è molto duro.

Probabilmente fai motlo prima a rifare ex novo il programma di controllo.

Share this post


Link to post
Share on other sites
martin1984

per curiosità fare il firmware nuovo costa tanto ?

Share this post


Link to post
Share on other sites
Nikiki



Da quel che ho letto, mi pare di capire che si voglia fare un debug a posteriori, sul codice già compilato, e quello lo vedo alquanto impossibile; ci vorrebbe una profonda conoscenza dell'assembler e talmente tanto tempo che probabilmente, renderebbe più conveniente retroengineerizzare l'hardware e riscrivere il software da zero.

 

Non è detto che sia necessario un debug ma anche se fosse, si può fare. 

Ovvio che si dovrebbe conoscere l'assembler, ma non è la fine del mondo, prima si usava solo quello per programmare. 

Non è impossibile, è solo palloso,  richiede pazienza, conoscenza del linguaggio, dell'architettura della CPU, dell'hardware di contorno, e ovviamente di molto tempo che potrebbero essere ore ma anche giorni o addirittura mesi. 

Come spesso accade, la fattibilità è collegata alla convenienza economica, in questo caso forse conviene comprare la macchina da caffè nuova, ma "impossible is nothing". :smile:

 

Io l'ho fatto diverse volte, sia su PC che su sistemi embedded.

Una volta ho dovuto estrarre un algoritmo per calcolare la firma di un frame di dati, per fare un convertitore di protocollo, mi ha permesso di vendere un sistema che ha fruttato un utile importante. Era un micro Siemens basato su 8051.

Un'altra volta ho dovuto scrivere una DLL per emulare una chiave hardware su PC, la difficoltà non è stata scrivere la DLL ma risolvere la cifratura con cui la chiave rispondeva, per farlo ho dovuto disassemblare e debuggare il programma, non per usare il software senza acquistarlo ovviamente, ma perché tale chiave hardware aveva problemi con sistemi successivi a Windows XP a causa del driver obsoleto, l'IT del cliente forzava l'aggiornamento di tutti i PC a causa della dichiarazione di fine supporto di Microsoft per XP, e l'azienda produttrice del software si rifiutava di fornire supporto attaccandosi ad un cavillo... Io ero tra l'incudine ed il martello, e con con questo barbatrucco ho accontentato il cliente, risolto un contenzioso di oltre 100.000 euro ed evitato alla mia azienda una causa legale persa in partenza e con una sicura richiesta danni. 

 

Ti potrei fare altri esempi ma penso di aver chiarito il concetto, non è impossibile ma è molto impegnativo quindi il gioco deve davvero valere la candela. 

 

Share this post


Link to post
Share on other sites
Livio Orsini

Quando si fa del reverse engineering è abbastanza propabile che si debba analizzare il codice partendo dal codice macchina.

Oggi ci sono programmi che aiutano, anche molto, nell'operazione di reverse.

Poi come scrive Nikiki è sempre una questione di costi-benefici.

Share this post


Link to post
Share on other sites
martin1984

no lasciamo stare

Share this post


Link to post
Share on other sites
Darlington
Quote

Ti potrei fare altri esempi ma penso di aver chiarito il concetto, non è impossibile ma è molto impegnativo quindi il gioco deve davvero valere la candela. 

 

Solo che tu parli di sistemi informatici diversi da un microcontroller, scrivere DLL e fare sniffing per retroanalizzare un protocollo è una cosa, lavorare su un micro senza codice commentato invece è un'altra.

 

Una volta che decompili un .hex, puoi trovarti davanti 4kb di stringhe assembler non commentate, e prima di iniziare a cercare il problema, devi capire cosa esattamente fanno, sapendo - visto che di programmazione ne sai senz'altro più di me - che l'asm è tutto tranne che intuitivo...

 

Per quello dico che una persona con conoscenze di assembler tali da fare un'opera di retroengineering del genere, ci metterebbe molto meno tempo a riscrivere il codice partendo da zero.

Share this post


Link to post
Share on other sites
Nikiki
Quote

 


Solo che tu parli di sistemi informatici diversi da un microcontroller, scrivere DLL e fare sniffing per retroanalizzare un protocollo è una cosa, lavorare su un micro senza codice commentato invece è un'altra.
 

 

 

No, io parlo "anche" di PC (forse non hai letto tutto il posto perché ti sembrava lunghino), e non ho mai parlato di sniffing. Il convertitore di protocollo l'ho dovuto fare da zero ma per trovare come calcolare la firma (cifrata) ho dovuto dissassemblare il firmware letto dalla eprom dell'8051 (non è un pc) analizzare il codice, individuare il funzionamento delle subroutine e tutte le altre cose necessarie. 

Farlo per un programma PC potrebbe essere anche peggio, non è sufficiente conoscere l'assembly, bisogna conoscere molto bene anche l'architettura dell'hardware e del sistema operativo, onestamente un microcontroller è molto più semplice, con qualche centinaio di pagine di datasheet te la cavi :smile:

 

Quanto al fatto che convenga riscrivere il codice partendo da zero dipende... A volte si tratta anch'esso di un lavoro enorme, altre non è proprio possibile. 

Share this post


Link to post
Share on other sites
Livio Orsini
Quote

Farlo per un programma PC potrebbe essere anche peggio, non è sufficiente conoscere l'assembly, ....

 

Gia fare questo lavoro per un vecchio 486 è una bella impresa, anche perchè tra l'asm di 486 e quello di un pic (o dello 805x) c' una bella differenza di complessità.

Aiuta un po' la reperibilità di buoni tools di revrse enginering per micro per PC stile intel.

 

I produttori di processori fanno reverse sul firmware su silicio dei processori dei loro concorrenti.:tongue_smilie:

Share this post


Link to post
Share on other sites
martin1984

mi ero dimenticato di una cosa

queste macchine ha il contatore erogazioni , non si potrebbe resettare ? , ho notato che sulla scheda riprogrammata mi sono comparse sul display le stesse erogazioni della scheda di quella di ho letto il firmware

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...