Hallo,
ich möchte mit dem Attiny einen Bootloader erstellen. Liegt der
Bootloader am ende des Flash, hätte ich theoretisch keine Probleme mit
dem Interrupt aber dafür startet der Bootloader nicht als erstes. Was
für mich ein Problem ist.
Sitzt der Bootloader am Anfang des Flash sind natürlich die Interrupts
für anschließendes Main Programm ungünstig da dann beim Bootloader
wieder gestartet wird.
Um dem aus dem weg zu gehen, müsste ich die Interrupt Tabelle so
anpassen, dass von dem jeweiligem Aufruf direkt zu der Interrupt Tabelle
des Main Projektes gesprungen wird. Nun ist meine Frage, kann ich die
Tabelle überhaupt anpassen oder gibt es dafür in Atmel Studio 7 eine
option?
Auf folgende Adressen müssten gesprungen werden:
1 | 00000460 <__vectors>:
|
2 | 460: 14 c0 rjmp .+40 ; 0x48a <__ctors_end>
|
3 | 462: 24 c0 rjmp .+72 ; 0x4ac <__bad_interrupt>
|
4 | usw..
|
Ich stelle mir den Aufruf so vor, dass von der Aufrufadresse des
Interuppts in die Adresse der Interrupt Tabelle des Main Projekt
gesprungen wird(oben):
1 | 0: rjmp 0x460 ; <__ctors_end>
|
2 | 2: rjmp 0x462 ; <__bad_interrupt>
|
3 | usw..
|
BG
Bürger