RE: Ještě k tomu bootloaderu odolnému proti chybám v komunikaci - ach jo, rozhozené řádkování takže znova.
Marek Pavlu
pavlu@hwg.cz
Středa Leden 11 01:16:47 CET 2006
Zdravim,
Ad 1
Co treba do kazdeho paketu dat jeden stavovy byte.
Ten bude identifikovat pocatecni, prostredni, koncovy paket sestaveny z
daneho radku v prvnich dvou bitech.
Usetrite si specialni paket, který by jste stejne nejak musel rozpoznat...
Ad 3,4
Chcete 100% bezpecnost, tak by jste mel i zpetny prenos zabezpecit CRC.
PC kdyz dostane spatny prikaz, hlasi trebas chybu, posle paket, s nastavenym
priznakem chyby.
Ad 8
Ano, zapomnel jste na neco:)
Trebas udelate tech robotu vice a s ruznym HW.
Pak je bez debat, aby bootloader umel rozeznat "svuj" FW.
Treba nejak uplne jednoduse, jako zapis nejake konstanty do eeprom, nebo
vice verzi bootloaderu s konstantou reprezentující dany HW.
Pak prvni paket rekne, pro jaky HW a pripadne delku vypalovanych dat(nove
PICky se objevuji kazdou chvili a pmet v nich je ruzna).
S pozdravem,
Marek Pavlu
// -----Original Message-----
// From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
// Behalf Of Pavel Kořenský
// Sent: Tuesday, January 10, 2006 11:35 PM
// To: 'HW-news'
// Subject: Ještě k tomu bootloaderu odolnému proti chybám v komunikaci -
// ach jo, rozhozené řádkování takže znova.
//
// Zdravím,
//
// děkuji za rady ohledně bootloaderu.
//
// Nejspíš si ho napíšu sám a měl bych zhruba následující myšlenku:
//
//
// 1. Do PIC se přenáší soubor abcd.hex přímo v ASCII tvaru, každý řádek je
// několik packetů přenosu. Řádek končí speciálním packetem
//
// 2. Packety jsou číslované, mají nějaký úvod a jako nožičky a závěr se
// posílá CRC.
//
// 3. Pokud packet dorazí v pořádku, posílá se zpět ACK.
//
// 4. Pokud packet dorazí chybně, posílá se zpět NACK s číslem vadného
// packetu.
//
// 5. Pokud se vrátil NACK, opakuje PC poslání packetu s číslem, které bylo
// v NACK.
//
// 6. Pokud zpět nedorazil ACK ani NACK, tak PC zkouší poslat poslední
// packet několikrát a pokud pořád nic, tak signalisace chyby.
//
// 7. Packety se posílají tak, že každý ASCII znak je kódovaný pomocí 50/50
// kódování kvůli spolehlivosti přenosu přes radio-modem.
//
// 8. Pokud jsou packety pro řádek přijaty v pořádku, bootloader vybalí z
// packetů data (tedy jednu řádku .HEX souboru) a data zapíše po ověření CS
// do paměti.
//
// 9. Pokud dojde k fatálnímu selhání přenosu, bootloader se vrací na
// začátek a čeká na nový start přenosu.
//
//
//
// Zapomněl jsem na něco ???
//
// Buffer pro přijetí celého programu do RAM bohužel nemám. Mohl bych do
// robota přidat I2C FRAM (mám je v šuplíku), ale pokud to bude fungovat
// tak bych jí tam nerad cpal. Šifrování není potřeba, jedná se víceméně o
// hračku a nikoli o komerční projekt. Jde mi jenom o to, aby byl upload
// firmware bezproblémový, protože pokud to celé uveřejním na Webu, nechci
// řešit, proč se někomu v Austrálii kousnul robot a co s tím má dělat. :-)
//
//
//
// Zdraví PavelK
//
// _______________________________________________
// HW-list mailing list - sponsored by www.HW.cz
// Hw-list@list.hw.cz
// http://list.hw.cz/mailman/listinfo/hw-list
_____
avast! Antivirus <http://www.avast.com> : Odchozi zprava cista.
Virova databaze (VPS): 0602-1, 09.01.2006
Testovano: 11.1.2006 1:16:46
avast! - copyright (c) 2000-2003 ALWIL Software.
Další informace o konferenci Hw-list