Как указать диапазон адресов для PIN-кода?

StackOverflow https://stackoverflow.com/questions/1427415

  •  07-07-2019
  •  | 
  •  

Вопрос

Я хочу использовать крошечный загрузчик 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top