www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C18 Linker (Bootloader)


Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte einen Bootloader in meinen PIC18F2458 brennen und brauche 
Hilfe bezüglich der Linker Dateien.

Der Bootloader bekommt einen gewissen Speicherbereich und soll ein 
Programm in den folgenden bereich schreiben. Den Bootloader konnte ich 
raufspielen, allerdings habe ich ein Problem jetzt über den Bootloader 
neue Programme in den PIC zu schreiben. Für den Bootloader werden von 
Microchip Linker zur Verfügung gestellt, ich habe aber keine Linker für 
das raufzuspielende Programm gefunden. Deswegen hab mal selber versucht 
den Linker zu schreiben, hab mir ein paar Linker von Sprut und Microchip 
angeguckt und bin jetzt total verwirrt.

In der Datei "18F4550.lkr" steht der Speicherbereich mit dem Namen 
"vectors". In der Datei "18f4550_g" (neuere Version?) steht der Bereich 
"vectors" garnicht drin sondern wird mit in dem Bereich "page" 
aufgenommen. In der "BootModified.18f4550_g.lkr" (die beim Brennen des 
Bootloaders verwendet wird) ist der Bereich "vectors" wiederum 
vorhanden. Dazu ist noch ein Bereich namens "BootPage" hinzugekommen.

Meine Frage:

Was hat es mit den Speicherbereichen auf sich? In der "18f4550.lkr" und 
"rm18f4550.lkr" ist der Speicherbereich "vectors" einfach verschoben 
worden. Aber was mache ich wenn in dem original Linker dieser Bereich 
garnicht angegeben ist?


Ich hoffe jemand von Euch kann mir helfen.

Danke.

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich an den Dateien von Sprut orientiert. Die Linkerdatei 
enthält jetzt

CODEPAGE   NAME=boot       START=0x0            END=0x7FF 
PROTECTED
CODEPAGE   NAME=vectors    START=0x800          END=0x0x829 
PROTECTED
CODEPAGE   NAME=page       START=0x82A          END=0x5FFF

Leider funktioniert es nicht :(

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>CODEPAGE   NAME=vectors    START=0x800          END=0x0x829

Hast du die Vectors im Programm das mit dem Bootloader geladen
wird auch im Programm richtig angegeben?

>Leider funktioniert es nicht :(

Was funktioniert nicht? Der Bootloader oder das Programm das der
Bootloader lädt?

Autor: Daniel T. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt im Programm richtig angegeben? (Ich bin ganz Frisch in Sachen 
PIC und Linker)

Ich denke mal in den Vectors Bereich werden die Adressen abgespeichert 
die bei einem Interrupt verlassen werden. In meinem Testprogramm werden 
keine Interrupts verwendet.

Das Programm was der Bootloader lädt funktioniert nicht. Der Bootloader 
lässt sich mit MPLAB und "BootModified.18f2458_g.lkr" raufspielen. Ist 
der µC dann am USB angeschlossen wird das Device auch mit der PC 
Software "HIDBootLoader.exe"  angezeigt. Wenn ich mit dem Programm nun 
ein HEX File in den µC schreibe startet das Programm einfach nicht.


Der Bootloader wird ja nur gestartet wenn man beim reset einen 
bestimmten Taster drückt. Diesen habe ich mit einem Pulldown Widerstand 
auf B4 gesetzt.

Komischerweise lässt es sich programmieren obwohl ich den Taster beim 
reset garnicht betätige.

Wenn ich den Taster gedrückt lasse erkennt HIDBootLoader.exe das Device 
erst wenn ich den Taster wieder loslasse....


Sehr merkwürdig...

Ich habe mal die beiden Linker angehängt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.