Wieviele Bytes müssen denn zwischen Programm und Bootloader ausgetauscht werden? Wenn's nur max. 8 Bytes sind und der Timer1 in der Phase nicht benötigt wird, könntest Du die Timer-Register (TCNT1,OCR1A,OCR1B,ICR1) für den Datenaustausch missbrauchen. Evtl. gehen auch noch andere Register, die vom Programm nicht verwendet werden.

Gruß,
askazo