Frage

Ich mag Claudiu Chiculitas winzige Bootloader für PIC16 verwenden (ich habe es modyfied meinen Chip passen), aber da das Bootloader zu überschreiben, den Bootloader zu verhindern Code nicht bewegen, muß ich irgendwie manuell sehen zu, dass der Bootloader nicht überschrieben wird. Ich habe versucht, die --rom Option wie folgt zu verwenden:

--rom=default,-0-4,-3f00-3fff

Was ich will, ist: Kein Code in den ersten 4 Wörter des Codes memmory, weil das ist, wo der Sprung zum Bootloader ist und kein Code in den letzten 128 Wörter des Speichers, weil das ist, wo die eigentliche Bootloader ist. --rom wie ich es tut nichts nutzen. Im mit HALLO-TECH PICC STD-Compiler (Microchip PIC) V9.60PL3 und der Chip ist PIC16F876A.

War es hilfreich?

Lösung

Sie können auch mit einem benutzerdefinierten Linker-Skript tun. Normalerweise Ihre Linker-Skript würde diese Zeilen enthalten setzt die Reset-Vektoren ersten und den Code (in der Seite mit dem Namen „Seite“) dahinter:

CODEPAGE   NAME=vectors    START=0x0            END=0x29           PROTECTED
CODEPAGE   NAME=page       START=0x2A           END=0x7FFF

Für den Bootloader verwendet in Microchip FSDem Board (die den 0x0-0x800 Bereich einnimmt, und erwartet, dass das Programm seine eigene Vektoren bei 0x800 haben), wird dies durch die Linien ersetzt, unter dem die Linker verhindern, alles unter 0x800 mit:

CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top