Koodi ja dissassemblerin käyttö

Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »

Tuo K6 Busan ECU:sta ulos saatu koodi kääntyy idaproolla kun määrittelee tyypiksi SH-3 big endian. Latasin IDA Pro:hon sisään tuon .mot tiedoston. Ensimmäiset tavut ovat dword määrittelyllä keskeytysvektoreita ja varsinainen koodi alkaa ensimmäisen vektorin antamasta osoitteesta 0x000004000.

Tässä kooditiedostot (vielä kertaalleen), näiden pitäisi nyt sisältää oikeaa dataa:

.mot
http://macmadigan.no-ip.com/Public....074.mot

.bin
http://macmadigan.no-ip.com/Public/ECU/SH7052.BIN

Ja tässä esimerkki miltä koodi näyttää:
seg000:00000000 ; Processor : SH3B
seg000:00000000 ; Target assembler: SHASM Assembler
seg000:00000000 ; Byte sex : Big endian
seg000:00000000
seg000:00000000 ; ---------------------------------------------------------------------------
seg000:00000000
seg000:00000000 ; Segment type: Pure code
seg000:00000000 .section seg000, CODE
seg000:00000000 off_0: .data.l loc_400
seg000:00000004 .data.l h'FFFFAFA0
seg000:00000008 .data.l loc_400
seg000:0000000C .data.l h'FFFFAFA0
seg000:00000010 .data.l sub_2B20

seg000:00000400 ; ---------------------------------------------------------------------------
seg000:00000400
seg000:00000400 loc_400: ; DATA XREF: seg000:off_0o
seg000:00000400 ; seg000:00000008o
seg000:00000400 sts.l pr, @-r15
seg000:00000402 stc sr, r0
seg000:00000404 mov.w @(h'12,pc), r3 ; [0000041A] = h'FF0F
seg000:00000406 and r3, r0
seg000:00000408 or #h'F0, r0
seg000:0000040A ldc r0, sr
seg000:0000040C mov.w @(h'C,pc), r2 ; [0000041C] = h'6D8
seg000:0000040E jsr @r2 ; sub_6D8
seg000:00000410 nop
seg000:00000412 mov.l @(h'C,pc), r4 ; [00000420] = loc_2B3C
seg000:00000414 mov.w @(6,pc), r3 ; [0000041E] = h'424
seg000:00000416 jmp @r3 ; loc_424
seg000:00000418 lds.l @r15+, pr
seg000:00000418 ; ---------------------------------------------------------------------------
seg000:0000041A word_41A: .data.w h'FF0F ; DATA XREF: seg000:00000404r
seg000:0000041C word_41C: .data.w h'6D8 ; DATA XREF: seg000:0000040Cr
seg000:0000041E word_41E: .data.w h'424 ; DATA XREF: seg000:00000414r
seg000:00000420 off_420: .data.l loc_2B3C ; DATA XREF: seg000:00000412r
seg000:00000424 ; ---------------------------------------------------------------------------
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Neuvoppas mulle oikein kädestäpitäen ton IDA:n käyttöä alusta alkaen, mulle ei oiken aukene se idea.
Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »

1. Koodin pitää olla joko binääritiedostossa tai .mot (google: motorola s record) tiedostossa.
2. Avaa IDAPRO
3. Drag and dorpo koodi idapron ikkunaan
4. Valitse tulevasta valintaikkunasta Hitachi SH3B (sh3 big endian)

... dissassemblointi alkaa ja kohta pitäisi näkyä ikkunassa assemblerin näköistä komentojonoa ...

Varsinainen koodi alkaa osoitteesta 0x0000400. Siitä sitten maalaat kaikki rivit eteenpäin tiedoston loppuun saakka. Painat hiiren oikeaa nappulaa ja valitset analyze. Sen jälkeen vielä jos ei ekalla onnistu niin tokalla kerralla Force Code. Viimeistään tällöin pitäisi koodia näkyä.

Tärkeimmät toiminnot ovat,
- Koodille: ";" = kommentti
- Muuttujille: "d" = muuttaa muuttujan joko byte, dword tai longword tyyppiseksi.
- Molemmille: Hiiren oikea nappi ja jokun tekstin päällä "rename" niin muuttaa joko alirutiinin tai muuttujan nimen halutuksi.

Kun tuo on tehty niin jatketaan "advanced" oppitunnilla miten käyttöä tehdään.
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Do dii, jatketaan.. oppituntia.

Heti kysymys, kun tiedän että ensimmäisen kartan RPM jako alkaa osoitteesta 2F2D8, eli RPM 50 kpl:n jaolla, niin miten saan selville mitä laskukaavaa käytetään sen tiedostossa olevan arvon kanssa, että saadaan oikea RPM luku????
16 bittinen luku jaettuna neljällä osuu aika kohdalleen, mutta saako se oikean kaavan selville tolla IDA:lla
Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »

timo3 kirjoitti:Do dii, jatketaan.. oppituntia.

Heti kysymys, kun tiedän että ensimmäisen kartan RPM jako alkaa osoitteesta 2F2D8, eli RPM 50 kpl:n jaolla, niin miten saan selville mitä laskukaavaa käytetään sen tiedostossa olevan arvon kanssa, että saadaan oikea RPM luku????
16 bittinen luku jaettuna neljällä osuu aika kohdalleen, mutta saako se oikean kaavan selville tolla IDA:lla
Joo - pystyy idalla ... luet koodia niin kauan että pystyt laskemaan montako millisekunttia on jokaisen hampaan välissä ja sitten koodista että mitä jakajaa ovat käyttäneet. Mutta tuo on aika kivinen tie...

Näissä nelisylinterisissä on jakaja ollut 2,56 ;-). Tuo wakio on toiminut ainakin busissa ja zzr:ssä. Muistelisin myös että joskus 12,5 on ollut toinen luku mitä on käytetty. Yleensä noi vakiot on sopivia bittilukuja kuten varmaan olet osannut päätelläkin. Loput on sitä että tarkkuus on esim. 100 yksikköä.

1/8*100=12,5
256/100=2,56
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Juu, ymmärsin idean, sitä olen itsekkin käyttänyt.

Tossa on RPM arvo jaettu 4

http://www.fotopankki.fi/1234567/kuva/1378327772950569

Tossa 2.56

http://www.fotopankki.fi/1234567/kuva/1378401951370896

2.56 osuu nuo luvut tasaluvulle, mutta omituista ettei karttaan ole tehty muutoksia 9000 rpm jälkeen???


Mut vielä tosta IDA:sta jatketaan opiskelua.
Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »

timo3 kirjoitti:2.56 osuu nuo luvut tasaluvulle, mutta omituista ettei karttaan ole tehty muutoksia 9000 rpm jälkeen???


Mut vielä tosta IDA:sta jatketaan opiskelua.
Tasaluvut on hyvä lähtökohta.

Onhan sulla ne x- ja y- akselin luvut mukana tässä yhtälössä niin että skaalautuminen on tehty niiden kautta ?

Kun riittävä määrä muuttujia on selvästi identifioitu niin sitten voidaan yrittää niiden muuttamista ja ohjelmointia.

Mulla on vielä karttoja jonkin verran määrittelemättä ja sitten noi karttojen akselin sekä esim sytkäennakon muuttaminen asteiksi pahasti kesken.

Seuraavaksi on kotona myös yhdet juhlat jonka takia täytyy vähäksi aikaa vähentää vähän tahtia. Mutta hvyältä näyttää että vuoden vaihteeseen olisi jo ihan toimiva konsepti olemassa...
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Juu, skaalaus on tehty niiden mukaan.

Siinä ennen karttoja on ilmoitettu 30 kpl TPS jakoa ja sitten 50 RPM jakoa, kuvasta huomaa miten keskialueella jakoa on tihenetty.

Kele per huomasin, että TunerPro ei tallenna noita karttoihin tehtyjä muutoksia, olisko ilmaisversiossa joku tiedoston koko rajoitus.

edit:

huh...

Olin tehnyt kawan XDF tiedoston Aprilian tiedostosta kopioimalla ja siinä oli tiedostokoko 8000 ja kun laitoin 3FFFF, niin johan alko tallentaa.




Edited By timo3 on 1196371588
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Sitä sun skoopista, onko siinä muistia johon saa mitattua tietoa talteen?
Saako sen näyttämään pulssin suoraan taajutena?

Tossa olis varmaankin vastaavanlainen myynissä kaistaleveys 2mhz herkkyys 0.1mv hintaa sillä on 209 egua.

Mulla on tuo vanha 2 kanavainen 10mhz, mutta ärsyttää kun siinä ei saa muistiin mitattua tietoa.
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Busassa näyttäis eka kartoille TPS jako x/512 osuvan aika kohdalleen ja RPM:ssä x/2.56 niin osuis tasaluvuille ja alkaa 800 rpm

http://www.fotopankki.fi/1234567/kuva/1378847063808900


http://www.fotopankki.fi/1234567/kuva/1379737504253124




Edited By timo3 on 1196378955
Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »

timo3 kirjoitti:Sitä sun skoopista, onko siinä muistia johon saa mitattua tietoa talteen?
Saako sen näyttämään pulssin suoraan taajutena?

Tossa olis varmaankin vastaavanlainen myynissä kaistaleveys 2mhz herkkyys 0.1mv hintaa sillä on 209 egua.

Mulla on tuo vanha 2 kanavainen 10mhz, mutta ärsyttää kun siinä ei saa muistiin mitattua tietoa.

No joo - on mun skoopissa PC liitäntä, mutta ei ne kuvat kovin kummoisia ole. Toi on enemmänkin autoskooppi kuin aito oskillosskooppi. Mutta ihan hyvä peli.

Taajuuden joutuu asettamaan kahden viivan välisestä ajasta.

Elektrolinnassahan näitä oli aika edullisesti erilaisia...

--------------------------------------------------

Sun kannattaa omaa tutkimistasi varten etsiä että mitä arvoja olen käyttänyt kierrosrajoittimissa ja etsiä idaprolla vastaava paikka näkyville. Siitä näkee minkälaisessa ympäristössä ne luvut ovat ja sen perusteella taas pystyy päättelemään että missä ne omat vastaavat luvut ovat.




Edited By PetriK on 1196389110
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

Tossa on se kytkentä jolla lukeminen onnistu.
http://www.fotopankki.fi/1234567/kuva/1382187697506225
http://www.fotopankki.fi/1234567/kuva/1382261979718656

petrik, vertaa sitä mun kawan ja sun busas tiedostoa, onko mulla 8 merkkiä liikaa tiedostossa vai sulla 8 liian vähän?

Mää luin sen Flasin 32 bittisenä välillä 00000000-00003FFFC eli 00000000-00003FFFF:n asti.
Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »

Mulla algoritmi jättää kaikki tavut joiden arvo on 0xFFFFFFFF kirjoittamatta. Viimeinen tavu on 0xFFFFFFFF ja siten tuo mot2bin ei osannut tehdä oikean mittaista tiedostoa.

Sittemmin muutin algoritmin niin että viimeinen longword kirjoitetaan aina ja tiedoston pituus on korjattu tuohon .bin tiedostoon. .mot tiedosto on virheellisenä netissä.
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
Avatar
PetriK
Viestit: 1650
Liittynyt: 08 Maalis 2006, 19:20
Paikkakunta: Vantaa

Viesti Kirjoittaja PetriK »


Hieno homma, mä heitän noi linkit näkyviin tuonne RR:n foorumille jossain vaiheessa niin osaavat muutkin rakentaa vastaavat...

Miten toi sun vastaanottosofta toimii ???




Edited By PetriK on 1196425712
Miksi ... aina jää varaa parantaa...

http://www.facebook.com/ecueditorcom
timo3
Viestit: 139
Liittynyt: 27 Huhti 2007, 07:47
Paikkakunta: suomi

Viesti Kirjoittaja timo3 »

- laite kiinni ECU:n
- virrat päälle
- valitaan ohjelmasta com portti
- read
- lukemisen loputtua end, niin talleraa samaan kansioon missä ohjelmaa ajetaan 7053.txt tiedoston.(puuttuu tarkistesummat ja muistipainkan numero)

Siitä oli mulla sellainenkin versio joka teki intelin hex tiedoston, mutta kävi sillein miten ei ole koskaan käynnyt ja taas kävi, että kääntäessä exe muotoon ohjelmaa vaihdoin nimeä ja siinä onnistuin tupeloimaan kääntämättömän version päälle vanhemman version.

Täytyy tehdä uudestaan se, mutta tolla jonka sulle lähetin siihen täytyy erikseen lisätä tarkistesummat ja rivinumerot.

16F628.hex on sen pic:n sisään ladattava tiedosto.




Edited By timo3 on 1196432703
Vastaa Viestiin