PIC18F24K42 - Bootloader und Applikation verbinden

OP #5899361
Lesenswert?

Hallo XC8-Gemeinde,

habe das Problem, einen Bootloader und die Applikationssoftware zu 
mergen.
Beide Programme laufen alleine ohne Probleme. Beim Einbinden des 
Bootloaders in die Applikation tritt folgender Fehler auf:

(944) data conflict at address 8h between ... (zwischen beiden 
Programmen)

Der Bootloader belegt den Programmspeicherbereich 0 ... 0x7FF, verwendet 
keine Interrupts.
Es werden von ihm die Vectoradressen 0x0 mit 0x800, 0x8 mit 0x808 und 
0x18 mit 0x818 richtig beschrieben.
Der codeoffset der Applikation ist 0x800. Beim Compilieren der 
Applikation zusammen mit dem Bootloader kommt es zu der obigen 
Fehlermeldung, weil der Linker die Interrupt-Vektoren 0x8 und 0x18 von 
beiden Programmen unterschiedlich überschreiben möchte.
Wie kann ich den Linker davon abhalten. Der Programmspeicherbereich 
0x800 ... 0x81A sollte eigentlich den Interruptvectoren zur Verfügung 
stehen, jedoch man findet darin Programm-Code der Applikation. Nach 
vergeblicher Suche im Netz und vielen erfolglosen Software-Experimenten 
hoffe ich hier auf Hilfe. Hat jemand eine Idee?

Die Randbedingungen:
   MPLABX 4.05
   XC8 2.05
   PIC18F24K42


Vielen Dank schon mal im voraus.
Gast #5899418
Lesenswert?

Hatte mal das Problem, dass MPLABX v5.10 nicht mit XC8-2.05 harmoniert 
hat. XC8 waren wohl die dfp-sachen des MPLABX zu alt und das Projekt 
konnte nicht einmal kompiliert werden. Mit v5.20 ging es dann wie 
erwartet.
OP #5899471
Lesenswert?

neuer PIC Freund schrieb im Beitrag #5899418:
> Hatte mal das Problem, dass MPLABX v5.10 nicht mit XC8-2.05 harmoniert
> hat. XC8 waren wohl die dfp-sachen des MPLABX zu alt und das Projekt
> konnte nicht einmal kompiliert werden. Mit v5.20 ging es dann wie
> erwartet.

Das hatte ich auch schon mal, hilft bei dem Problem jedoch nicht weiter.

vloki, deinen Vorschlag, den BL ans Ende des Programmspeichers zu legen 
erzeugt die gleiche Fehlermeldung aber für den Reset-Vektor:

(944) data conflict at address 0h between ...
OP #5900876
Lesenswert?

Volker S. schrieb:
> Ullrich A. schrieb:
>> Die Lösung war, das Remapping der IR-Vektoren aus dem Bootloader zu
>> entfernen.
>
> Also Bootloader am Ende des Speichers jetzt?
Nein am Anfang.

Jedoch habe ich jetzt die Auflösung des Problems gefunden:

http://ww1.microchip.com/downloads/en/AppNotes/90003162A.pdf


Nach diesem Rezept lassen sich die IR-Vektoren verschieben.

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