Domanda

Voglio usare il piccolo bootloader di Claudiu Chiculitas per PIC16 (l'ho modificato per adattarlo al mio chip) ma poiché quel bootloader non sposta il codice per impedire la sovrascrittura del bootloader, devo in qualche modo verificare manualmente che il bootloader non venga sovrascritto. Ho provato a usare l'opzione --rom in questo modo:

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

Quello che voglio è: nessun codice nelle prime 4 parole del memmory del codice, perché è qui che si trova il salto al bootloader e nessun codice nelle ultime 128 parole di memoria perché è lì dove si trova il bootloader effettivo. --da come lo uso non fa nulla. Sto usando HI-TECH PICC STD COMPILER (Microchip PICmicro) V9.60PL3 e il chip è pic16f876A.

È stato utile?

Soluzione

Puoi anche farlo con uno script linker personalizzato. Di solito, lo script del tuo linker conterrebbe queste righe per mettere prima i vettori di reset e il codice (nella pagina denominata " page ") dietro di esso:

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

Per il bootloader utilizzato nella scheda FSDem di Microchip (che occupa l'intervallo 0x0-0x800 e si aspetta che il programma abbia i propri vettori a 0x800), questo viene sostituito dalle righe sottostanti che impediscono al linker di utilizzare qualsiasi valore inferiore a 0x800:

CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top