Alessandro Pasta | 1 Sep 2007 10:04
Picon
Favicon

Disassembler Pic

Ciao a tutti

qualcuno conosce un buon disassembler per il pic 18F452?

grazie mille
--

-- 
Ciao
Alessandro Pasta
pasta.a@...

"Io sono Pastus e reco il bastus
del sapere mio che è vastus"

Stefano M. | 1 Sep 2007 10:23
Picon
Favicon

Ogg: Disassembler Pic

Vuoi fare un po di reverse ..... :))

Usa icprog, c'è il tasto per convertire da hex a asm .....

Ciao Nonno

--- In roboteck@..., Alessandro Pasta <pasta.a <at> ...> ha 
scritto:
>
> Ciao a tutti
> 
> qualcuno conosce un buon disassembler per il pic 18F452?
> 
> grazie mille
> -- 
> Ciao
> Alessandro Pasta
> pasta.a <at> ...
> 
> "Io sono Pastus e reco il bastus
> del sapere mio che è vastus"
>

Marco d'Ambrosio | 1 Sep 2007 10:34
Picon
Favicon

Re: Disassembler Pic

>qualcuno conosce un buon disassembler per il pic 18F452?

Meno male che l'abbiamo detto mille volte, MPLAB fa anche da disassembler, 
per tutti i PIC, basta importare l'HEX e aprire la finestra "wiew 
disassembler", ma non si limita a questo, puoi pure riportare il listato 
nella finestra dell'editor, compilarlo in modalità debug e farlo girare 
tramite simulatore.

Ciao

Marco d'Ambrosio 

Alessandro Pasta | 1 Sep 2007 11:11
Picon
Favicon

Re: Ogg: Disassembler Pic

Stefano M. ha scritto:
> Vuoi fare un po di reverse ..... :))

Esatto!

per un progetto di ricerca universitario devo cercare di recuperare le 
primitive di controllo di questo elettrolizzatore 
http://www.amelchem.com/product/electrochem/7050/7050.html,
per poi poter riscrivere il programma di controllo/acquisizione con Labview.

--

-- 
Ciao
Alessandro Pasta
pasta.a@...

"Io sono Pastus e reco il bastus
del sapere mio che è vastus"

Alessandro Pasta | 1 Sep 2007 11:09
Picon
Favicon

Re: Disassembler Pic


Marco d'Ambrosio ha scritto:
> Meno male che l'abbiamo detto mille volte, MPLAB fa anche da disassembler, 
> per tutti i PIC, basta importare l'HEX e aprire la finestra "wiew 
> disassembler", ma non si limita a questo, puoi pure riportare il listato 
> nella finestra dell'editor, compilarlo in modalità debug e farlo girare 
> tramite simulatore.

Ora ho capito... :-)

prima di inviare l'email avevo già provato con Mplab, ma selezionavo 
View/disassembly listing, anzichè view/program memory...

Grazie mille!
--

-- 
Ciao
Alessandro Pasta
pasta.a@...

"Io sono Pastus e reco il bastus
del sapere mio che è vastus"

Stefano M. | 2 Sep 2007 00:57
Picon
Favicon

Ogg: Disassembler Pic


Sob .... chiedo venia ....

Nonno

--- In roboteck@..., Marco d'Ambrosio <m.dambrosio <at> ...> 
ha scritto:
>
> >qualcuno conosce un buon disassembler per il pic 18F452?
> 
> Meno male che l'abbiamo detto mille volte, MPLAB fa anche da 
disassembler, 
> per tutti i PIC, basta importare l'HEX e aprire la finestra "wiew 
> disassembler", ma non si limita a questo, puoi pure riportare il 
listato 
> nella finestra dell'editor, compilarlo in modalità debug e farlo 
girare 
> tramite simulatore.
> 
> Ciao
> 
> Marco d'Ambrosio
>

bobboteck | 2 Sep 2007 12:01
Picon

Re: Ogg: Robo Magellan

L'idea è interessante,

e ancora di più il concetto di gruppo di lavoro, spazzi per farlo ce ne 
sono a km2 basta solo decidere dove.
Io sarei dell'idea di cominciare con la cosa più semplice possibile, 
cioè partire da un punto e arrivare in un altro con un errore massimo, 
chi è altre viene penalizzato, naturalmente conterà il tempo impiegato, 
visto che per andare da una parte all'altra sarà necessario superare 
ostacoli di varia natura.
Poi come indicato da Marco si può complicare la cosa di anno in anno 
introducendo nuovi punti.

Bobbo

Marco d'Ambrosio | 2 Sep 2007 12:42
Picon
Favicon

Re: Ogg: Robo Magellan

> e ancora di più il concetto di gruppo di lavoro, spazzi per farlo ce ne
> sono a km2 basta solo decidere dove.

Di sicuro a Roma non ci sono certo problemi per trovare un terreno adatto 
sia per la gara che per i test, ci sono talmente tanti parchi che c'è solo 
l'imbarazzo della scelta, idem per tutte le altre città.
Formare un gruppo di lavoro è quasi obbligatorio vista la complessità del 
robot, perlomeno se fatto idoneo per competizioni con il regolamento attuale 
di S.R.S.

> Io sarei dell'idea di cominciare con la cosa più semplice possibile,

Stavo pensando che la prima gara di questo tipo si potrebbe farla con una 
formula molto semplificata e indoor, per il momento chiamiamola Magellan 
junior, diciamo come terreno una normale palestra, obbietivo navigare tra 
due punti assegnati passando per tre, quattro waypoint con un percorrenza 
totale non superiore a 60 metri.
In questo modo è possibile utlizzare un Explorer modificato o comunque 
realizzare un robot di dimensioni e costi contenuti, poi con calma di gara 
in gara si aumenta la difficoltà e di conseguenza la complessità dei robot, 
così c'è il tempo per fare un po di esperienza e iniziare la progettazione 
per i nuovi robot classe Magellan.
Sarebbe un ottimo traguardo riuscire ad organizzare la prima gara per la 
fine primavera 2008, magari abbinate a qualche robofesta locale, in pratica 
per non obbligare la gente a viaggi faticosi si può pensare ad una specie di 
campionato con prove locali, tutte con lo stesso regolamento e percorso, che 
faranno tutte capo ad un unico database dal quale verrà fuori il vincitore 
assoluto.

Ciao
(Continue reading)

bobboteck | 2 Sep 2007 14:15
Picon

Re: Ogg: Prove di comunicazione I2C SLAVE con 18F4431

>  >Io come indirizzo uso 0x80 sia sul MASTER, come indirizzo su cui
>  >scrivere, che sullo SLAVE. Mica ci sono dei sistemi automatici che
>  >shiftano il byte di indirzzo di 1 dopo aver caricato SSPADD?
> 
> Mi sa tanto che stai facendo confusione tra indirizzo reale e valore
> caricato su SSPADD, se metti 0x80 il valore reale dell'indirizzo è 0x40
> perchè il bit 0 non conta.

Ok ma questo a livello puramente teorico, mi speigo, Se decido di dare 
come indirizzo alla mia periferica 0x80 il valore reale è 0x40 perchè 
utilizzo solo sette bit. Quindi nel registro SSPADD devo scrivere 0x80, 
che in realtà sarebbe il valore 0x40 shiftato di un bit, questo perchè 
il bit 0 viene usato per lo stato R/W.

> Sul master l'indirizzo da usare è 0x40 al quale devi aggiungere un bit per
> indicare il tipo di operazione pertanto i valori da caricare su SSPBUF per
> la trasmissione dell'address sono 0x81 per la read operation e 0x80 per la
> write operation.

Ma questa che dici è un'operazione da fare da codice, non automatica? 
Parlo dello shift e dellcambiamento di stato del bit 0.
Cioè dovrei shiftare 0x40 di un bit per avere 0x80 e poi metterlo in AND 
con 0b11111110 o in OR con 0b00000001 a seconda se volgio scrivere o 
leggere?

Ma se per semplificare metto in SSPADD direttamente 0x80 sullo slave, 
sul master uso 0x80 per la scrittura e 0x81 per la lettura, dovrebbe 
funzionare lo stesso o sbaglio?
In conclusione 0x40 è più corretto se si indica l'indirizzo perchè si 
usano solo 7 bit, ma in realtà poi si usa lo 0x80.
(Continue reading)

Marco d'Ambrosio | 2 Sep 2007 16:59
Picon
Favicon

Re: Ogg: Prove di comunicazione I2C SLAVE con 18F4431

> come indirizzo alla mia periferica 0x80 il valore reale è 0x40 perchè
> utilizzo solo sette bit. Quindi nel registro SSPADD devo scrivere 0x80,
> che in realtà sarebbe il valore 0x40 shiftato di un bit, questo perchè
> il bit 0 viene usato per lo stato R/W.

Esatto infatti se scrivi :

#define    I2Cadd    0b00000110        // address reale 3
.............
SSPADD = I2Cadd;  // slave address

In assembler viene tradotto così:

MOVLW 0x6
MOVWF 0xfc8, ACCESS

Ove 0x6 è il valore della define di I2Cadd.

> Ma questa che dici è un'operazione da fare da codice, non automatica?
> Parlo dello shift e dellcambiamento di stato del bit 0.

Certo che la devi fare a mano, tu per scrivere sullo slave devi prima fare 
una START e il primo byte che trasmetti per lo slave è un address più il bit 
che identifica il tipo di operazione, quindi sei tu che devi caricare in 
SSPBUF il valore 0x80 o 0x81 a seconda di quello che devi fare, se ci metti 
0x40 lo slave non riconosce l'indirizzo e la comunicazione non avviene.

> Ma se per semplificare metto in SSPADD direttamente 0x80 sullo slave,
> sul master uso 0x80 per la scrittura e 0x81 per la lettura, dovrebbe
> funzionare lo stesso o sbaglio?
(Continue reading)


Gmane