Datum:
Hallo, ich habe ein Problem mit folgendem Microcontroller: PIC 18F23K22. Diesem Microcontroller liegen einige fertige Programme bei, z.B. eine Lauflichtsteuerung, die sich problemlos in den Bootloader laden lassen. Wenn ich aber selbst etwas programmiere und die compilierte hex.file in den Controller lade, wird immer der Speicherbereich des Bootloaders mit dem Programm belegt (Adressen 0 bis 400) und nicht wie es im angehängten Bild zu sehen ist. Das eigentliche Programm darf aber erst ab Adresse 400 Speicherplatz belegen. Weiß irgendwer eine Lösung dazu?
Datum:
Verwende doch die Assembler-Direktive "ORG 0x0401 für Dein zu ladendes Programm (vgl. Hilfe zur MPLAB-IDE). mfg GroberKlotz
Datum:
> Weiß irgendwer eine Lösung dazu?
Du verwendest wahrscheinlich das falsche Linkerscript. Wenn du dort den
vom Bootloader beanspruchten Bereich als PROTECTED kennzeichnest, baut
der Compiler auch das richtige Hex-File.
Gruß,
Edson
Datum:
GroberKlotz schrieb: > Verwende doch die Assembler-Direktive "ORG Das funktioniert nur im Assembler und da auch nur im 'absolute mode'. Da der TE von kompilieren spricht, hilft dein Tipp ihm nicht weiter. Gruß, Edson
Datum:
Also wie genau ich das mit Linkerscript mache, muss mir aber mal einer erklären
Datum:
Zeig mal das Linkerscript, so wie du es momentan benutzt. Oder lass durchblicken, welche "fertigen Programme" das sind. Dann kann ich selbst nachschauen, welche Linkerscripts verwendet wurden. Welchen Compiler benutzt du? Gruß, Edson