I2C BootLoader

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

I2C BootLoader

Hozzászólás Szerző: norbi »

Már elég rég foglalkoztat ez a téma, s most végre eljött az ideje, hogy komolyabban is nekiessek!

Egy I2C-eprombol szeretném betölteni mindig a legfrissebb szoftvert, amelybe előzőleg netről feltöltöttem a hex file-t!

A netes frissítést úgy gondoltam, hogy érkezik a hex file, amit elmentek az eprom &H0000 címétől kezdve (gondolom tartalmaz felesleges adatokat a hex is, mert most a mega128-am kb 34%-át használom, s a hex mérete 112K!).

Ha ez lezajlott és nincs más dolga a HW-nak, akkor újraindítja magát és elkezdi betölteni az új szoftvert!

Persze jó lenne, ha minidg 2verzió lenne eltárolva, ha esetleg az új sérűlt, akkor töltse vissza az előző verziót! (Persze még nem tudom, hogy hogy dönti el a loader, hogy hibásan fut a szoftver :wink:)

Látott már valaki esetleg megoldást erre?

Jó lenne valami nagyon részletes leírás az AVR loaderéről ill a programozás menetéről, mert ha ezt nem ismerem, akkor nehéz boldogúlni!

Köszönöm előre is a tippeket, segítségeket!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Bascom/samples alatt van a bootloader prg. Ez jól kommentezve is van!
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

Ezt már átnéztem, s régóta használom is, csak ahhoz, hogy kiinduló pontot jelentsen az I2C megoldáshoz is, sokkal részletesebb leírás kellene a folyamatrol.

Mert itt csak a nyerx hex-filet (vagyis a lényegi részét) kell áttölteni az AVR-re, nem kell figyelni a parancs kódokra (ellentétben az UART-os letőltéssel).

Nem tudom, hogy mi az ami kell a hex-fileból, s mi az ami nem....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A CRC elhagyható belőle....
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

...meg az elején a parancs kódok.

ÉS mi a helyzet a HEX-tartalmával? Mi a hsznos adat?

Amugy ha nyaralni vagy, akkor pihenj, s ne velünk foglalkozz most is! :lol:
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

Na, újra előveszem ezt a problémát is 8)

A BASCOM által generált HEX-filebol mi az, ami ténylegesen az AVR-be kell íródjon?

Ha minden igaz Intel HEX a BASCOM által generált is, vagyis ez a felépítése:
http://hu.wikipedia.org/wiki/Intel_HEX

Szóval akkor eszerint ha kiválasztom a címet és az adatot, akkor csak a megadott címre kell beírni a 16bájtnyi adatot? De akkor az egész HEX file-t el kell menteni az eepromba, s majd amikor újraindítás után elkezdi tőlteni a bootloader, akkor csak a hasznos adatot írja be...huh, akkor egy 512K-s eeprom, csak egy verziónak elég :cry:

Biztos, hogy a BASCOM HEX-filejában a cím big endian tipusú??
Mert nekem nem úgy tűnik....
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Szerintem már ott téves a gondolatmenet, hogy *.hex-et tárolsz. Minek?
Tárolj *.bin-t 1/4 akkora és csak a betöltési címet kel ismerni. Mehet a helyére sima memória másolással.
:idea:
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

Új megközelítés...ez tetszik 8)

És hol találom meg azt, hogy ez a BIN fájl milyen felépítésű?
Úgy érted, hogy adott egy cím (ezt a betöltési címet honnan fogom tudni? Vagy ez az 0x0000?) s ettől kezdve feltöltöm a BIN fájl tartalmával?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

BIN: Direktcopy.
0x0000 címtől másolsz és kész....
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

De az a baj ezzel, hogy nincs soronkénti checksum ellenőrzés, nincs EOF, amit fiogyelhetnék, hogy mikor van ténylegesen bent letöltés után az epromban a BIN...mertez a BIN netről jönne, a több csomag tartalma egymás után másolódna az epromba, de mi van, ha valamiért nem érkezik meg épségben? A Hexben ezt tudni lehet a CS-ből és EOF-ból...de ennél, hogyan lehet biztosra menni?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

HEX-t töltesz fel, de a I2C EEPROMba már a generált BIN-t rakod be... és ha nem jön több adat (EOF), akkor a fennmaradó részt a EEPROM-ban FF-l töltöd fel.
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

Vagyis érkezik netről a HEX,a kezdő címet megjegyzem, s a hasznos hex adatot binárissá alakítom?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Igen. Közben CRC-t, címet is tudsz ellenőrizni...
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

Ez a szép ebben, hogy így olyan egyszerűnek hangzik :)

Kiváncsi vagyok, hogy ez időben mennyit jelent majd...vagyis netről jönnek a csomagok, soronként CS ellenőrzés, binárissá alakítás, mentés eepromba, újraindításm bootolás...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Amilyen gyors a Net kapcsolat! A többi ahhoz képest már fénysebesség! :lol:
Válasz küldése