Du willst die Daten "einfach" an den mc schicken, ohne ein Programm, was
ein Boot-Protokoll fährt, verstehe ich Dich richtig?
Damit das funktioniert, müssen ein paar Bedingungen erfüllt sein:
Entweder
der PC, von dem Du das schicken willst, kann Dein Boot-Timing einhalten.
Dann schickt er die Daten für eine Page, gibt das Programmier-Kommando,
und wartet dann, bis der ATmega worstcase fertig ist (ca. 10ms). Dann
das Spiel für die nächste Page von neuem.
Oder
der PC schickt die Daten komplett am Stück an den ATmega. Da Du nur eine
Ltg und damit keine Handshake-Möglichkeit hast, musst Du die Baudrate so
niedrig halten, dass der ATmega mit dem Programmieren hinterherkommt.
Ausserdem muss der UART-Empfang interruptgesteuert sein und einen
Eingangspuffer füllen, damit während den Programmierphasen keine Daten
verloren gehen. Je nach AVR und damit nach Pagegröße sind aber 115200
Baud oder mehr möglich).
Ausserdem kann der Bootloader NUR die NRWW-Sektion programmieren: Beim
Schreibzugriff auf die RWW-Sektion würde der AVR "Pause" machen ->
Datenverlust. Sinnvollerweise wählst Du als Bootloadergröße gleich die
Maximal-Bootloadergröße, dann deckt der Bootloader die RWW-Sektion
komplett ab.
Einen Bootloader zu programmieren ist auch nicht wesentlich aufwändiger
als ein "normales" Programm, wenn man einige Besonderheiten beachtet.
Die AVR-libc unterstützt einen Bootloader schon ganz prima.
Gruß, Stefan