PIC18 Bootloader

OP #5355296
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:
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

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.