Der Bootloader gibt vermutlich dem Programmer Zeit, nach dem Reset den
Programmiervorgang zu starten. Sprich, der µC wartet einige Zeit, ob er
auf der seriellen Schnittstelle die entsprechenden Daten sieht.
Die generelle Abfolge ist:
1) Ardunio in Reset bringen. Entweder per Steuerbefehl vom PC aus, oder
per Knopfdruck am Arduino.
2) Der Arduino führt den Bootloader Code aus. Darin wird vermutl. eine
kurze Sequenz an Daten über die UART gesendet. Ab hier wartet der
Arduino eine Zeit lang auf eine Antwort.
3) Der PC (Ardunio-IDE) muss sich im Programmiermodus befinden und
wartet auf die Sequenz. Wenn es diese empfängt, wird mit dem neuen
Programm geantwortet.
4) Der Arduino empfängt das Programm über die UART und schreibt es in
seinen Speicher.
5) Es folgen möglicherweise noch einige Checksummen oder sonstiges
Protokoll und dann Reset.
Hat der Arduino in 3) und 4) keine Daten empfangen, hört der Bootloader
auf zu warten und führt das Hauptprogramm aus.