ATtiny861 Interruptvektoren für Bootloader manipulieren

OP #2205379
Lesenswert?

Hallo zusammen,

ich bin gerade dabei einen Bootloader für einen ATtiny861 zu schreiben, 
in dem für die SUART einmal den Interrupt für den Timer0 und Pin Change 
Interrupt benötige.
Das Problem ist, dass der µC von Haus aus kein Register (GICR Bit IVCE & 
IVSEL) zum Ändern der Interruptadressen für den Bootlaoder bietet, wie 
z.B. ein ATmega32.

Gibt eine andere Möglichkeit die Adressen der Interrupts zu 
manipulieren?


Vielen Dank für eure Hilfe!

Gruss

Sebastian
#2205596
Lesenswert?

Sebastian Z. schrieb:
> Aber wenn ich Daten empfangen möchte um neue Daten zu flashen, benötige
> ich Interrupts.

Warum?
Was muß denn der Bootloader so wichtiges noch gleichzeitig zum 
Datenempfang machen?
Du kannst eh nicht Flashen und Empfangen gleichzeitig, da die CPU beim 
Flashen angehalten wird.
Du brauchts also ein Protokoll, daß beim Flashen keine neuen Daten 
gesendet werden.


Peter
#2205640
Lesenswert?

warum?
man pollt und synchronisiert auf das Startbit und berechnet dann die 
Bitzeit und plant da noch eine mind. 3 fache Überabtastung
Bei einer angenommenen maximalen Bitrate und minimalen Taktrate, weiß 
man wieviel Takte man auf jeden Fall Zeit zum rechnen hat und den Rest 
verplempert man dynamisch in einer Warteschleife.

oder man ließt die Daten nur in einen Puffer und wertet sie in einer vom 
(selbsterdachten) PC-Bootloader-Protokoll festgelegten Pause aus
OP #2205855
Lesenswert?

Beim Start des Bootloaders soll er erst mal an den PC ein Lebenszeichen 
sende, anschließend bekommt er den Befehl zur Udpateprogrammierung. 
Danach werden je die Daten für eine page gepuffert und anschließend 
geschrieben.

>man pollt und synchronisiert auf das Startbit
Woher weiß ich, dass das Bit, das gerade am Eingang anliegt das Startbit 
ist?
#2206084
Lesenswert?

Stefan Ernst schrieb:
> Vlad Tepesch schrieb:
>> das weißt du erst, wenn du mindestens ein weiteres High-bit abgetastet
>> hast und eines dieser beiden 1/3 kürzer war, als das andere
>
> Was ist das für ein Unsinn? Das Startbit hat die gleiche Länge wie die
> Datenbits.

Sorry, du hast recht.
Das war das Stopbit, was je nach Einstellung länger oder kürzer sein 
kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren