Как указать диапазон адресов для PIN-кода?
Вопрос
Я хочу использовать крошечный загрузчик Claudiu Chiculitas для PIC16 (я модифицировал его под свой чип), но так как этот загрузчик не перемещает код для предотвращения перезаписи загрузчика, я должен каким-то образом вручную убедиться, что загрузчик не перезаписан. Я попытался использовать параметр --rom следующим образом:
--rom=default,-0-4,-3f00-3fff
Что я хочу: нет кода в первых 4 словах памяти кода, потому что именно здесь происходит переход к загрузчику, и нет кода в последних 128 словах памяти, потому что именно там находится фактический загрузчик. - как будто я использую это ничего не делает. Я использую HI-TECH PICC STD COMPILER (Microchip PICmicro) V9.60PL3, а чип - pic16f876A. Р>
Решение
Вы также можете сделать это с помощью специального сценария компоновщика. Обычно ваш скрипт компоновщика будет содержать эти строки для размещения векторов сброса и код (на странице с именем " 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