PIC18 Bootloader

OP #5355296
Lesenswert?

Hallo,

ich möchte auf einem PIC18F46j50 einen Bootloader umsetzen.

Dabei ist folgende Frage aufgetaucht.

Der PIC verfügt über zwei Interruptvektoren. Den High-Priority bei 0x08 
und den Low Priority bei 0x18. In der Dis-Assembly sieht man, dass der 
Compiler die ISR bei 0x08 beginnt und damit über 0x18 hinaus schreibt.

Würde die CPU also einen Low-Prio Interrupt auslösen, dann würde sie in 
der Mitte der ISR starten. Das ganze ist in meinem Fall kein Problem, da 
ich im 'Mid range compatibility mode' arbeite. Es werden also ohnehin 
alle Interrupts auf 0x08 abgebildet.
Aber die Einstellung des Modus erfolgt zur Laufzeit; wieso macht der 
Kompiler das so?

(Ich würde einfach bei 0x18 anfangen und bei 0x08 einen Sprung zu 0x18 
setzen).
Angehängte Dateien:
#5367460
Lesenswert?

Danish B. schrieb:
> Aber die Einstellung des Modus erfolgt zur Laufzeit; wieso macht der
> Kompiler das so?

1. Welcher Kompiler?
2. Was genau haben die IRs mit dem Bootloader zu tun?
3. Wenn keine Routine für Low-Priority IRs da ist, warum sollte der 
Compiler den Vektor berücksichtigen?
4. Hast du schon mal den von Ingo angesprochenen BL AN1310 oder einen 
anderen angeschaut?
<edit>
5. Welche Schnittstelle benutzt der Bootloader? (USART, USB...)

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