Как указать диапазоны адресов для кода PIC? - PullRequest
0 голосов
/ 15 сентября 2009

Я хочу использовать крошечный загрузчик Claudiu Chiculitas для PIC16 (я модифицировал его под свой чип), но так как этот загрузчик не перемещает код, чтобы предотвратить перезапись загрузчика, я должен каким-то образом вручную следить за тем, чтобы загрузчик не перезаписывался. Я попытался использовать опцию --rom следующим образом:

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

То, что я хочу: нет кода в первых 4 словах памяти кода, потому что именно здесь происходит переход к загрузчику, и нет кода в последних 128 словах памяти, потому что именно там находится фактический загрузчик. - как будто я использую это ничего не делает. Я использую HI-TECH PICC STD COMPILER (Microchip PICmicro) V9.60PL3, а чип - pic16f876A.

1 Ответ

1 голос
/ 30 октября 2009

Вы также можете сделать это с помощью специального скрипта компоновщика. Как правило, ваш скрипт компоновщика будет содержать следующие строки для размещения векторов сброса и код (на странице с именем «page»):

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

Для загрузчика, используемого в плате FSDem Microchip (которая занимает диапазон 0x0-0x800 и ожидает, что ваша программа имеет свои собственные векторы в 0x800), это заменяется строками ниже, которые не позволяют компоновщику использовать что-либо ниже 0x800:

CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
...