Wie Adressbereiche für PIN-Code angeben?
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.
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