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.
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 :(
>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?
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.