János,
Próbáljuk meg nem keverni a szezont a fazonnal.
A bootloader gyakorlatilag egy OS-szerű kódrészlet, amely a külön programozót helyettesíti és megoldja, hogy a soros vonalon (vagy bárhol) érkező kódot közvetlenül (nyilván a megfelelő címtől) a futtatható memóriába írja. Mivel reset után két dolog történhet, vagy a program futtatása vagy az új kód betöltése, így minden reset után van némi (kb. 1 mp) késleltetés, amíg a bootloader gondolkodik, hogy most mi legyen.
Ha van külső programozód, akkor nincs szükség a bootloaderre, mert akár az IDE-ből, akár egy erre alkalmas másik szoftverből közvetlenül fel tudod tölteni a fordított gépi kódú fájlt, ráadásul egyből oda, ahol lennie kell. Ezzel spórolsz tárhelyet és spórolsz reset utáni indulást (kb. 500 ms-tól 1 mp-ig).
Namost. Ha nem tudod, hogy pontosan mit és miért csinálsz, akkor lehetőleg a direkt, usb-meghajtós IDE-s, bootloader-es megoldást alkalmazd, mert egykönnyen úgy találhatod magad, hogy van egy papírnehezéked, amivel semmit nem tudsz csinálni (én eljátszottam, bár máshol rontottam el a folyamatot).
Flash-t nem tudom minek olvasni. Jobbára annak kell rajta lennie, amit rátöltöttél. Ha nem az van, és/vagy másvalaki kódjába akarsz belenézni, akkor a gépi kódról forrásra visszafordított kóddal nem sokra fogsz menni, mert maximum assemblyben lesz nagyjából érthető, de ha az assemblyt vágod, akkor nem szórakoznál itt bootloaderrel.
Szerintem olyan helyen kószálsz próbálgatás címszóval, ami potenciálisan sok kukázható MCU-t eredményezhet.