Bootloader je praktično mali kod u mikrokontroleru koji omogućava da se HEX (objektni fajl) posredovanjem nekog komunikacionog porta (UART, CAN, I2C...) prosledi u mikrokontroler, koji pak mora imati sposobnost da se samoprogramira. Ima raznih bootloader projekata po netu, a ja sam ti preporučio Tiny jer je malog "gabarita".
Potrebno je prilagođenje izvornog koda samog bootloadera a time i kompajliranje za željeni "target" mikrokontroler. Znači moraće malo podešavanja i kompajliranja, ukoliko neko to već nije uradio a da ti podešavanja odgovaraju (baud-rate, oscilator i sl.)
Evo još jednog bootloader projekta pa ćeš izabrati koji ti više paše:
http://mrmackey.no-ip.org/elektronik/ds30loader/
Oba provereno rade sa nekim drugim mikrokontrolerima koje ja koristim, a naglasio bih još jednu veliku prednost Tiny-ja i ds30loadera a to je što se izvršni kod korisničkog firmware-a ne mora relocirati kao kod mnogo drugih, već se kodira na isti način kao da ne posreduje bootloader.
Princip rada bootloader-a koje sam naveo je da se pri "power-on" startu ili reset-om mikrokontroler zadržava par sekundi i proverava da li sa PC-ja postoji zahtev za programiranjem, ukoliko nema zahteva, on "skače" na korisnički program i radi normalno.
Ulazak u bootloader može se izvesti resetom (taster ili komandom iz PC aplikacije) ili ukidanjem i dovođenjem napajanja.
Prilično zgodno.
Za početak prelistaj dokumentaciju koja dolazi uz bootloadere, verujem da ćeš se snaći. A mislim da imaš već gotove primere u nekom od foldera u arhivi Tiny bootlaoder-a.