12.2. Защита флэш-памяти от записи

(Руководство разработчика по микроконтроллерам семейства HCS08)

В МК перечисленных серий защита реализуется с использованием битов FPS7...FPS1 регистра FPROT. Обратите внимание, что бит FPS0 регистра не входит в этот перечень и реализует несколько иную функцию.

В битовом поле FPS7...FPS1 регистра FPROT хранятся биты A15...A9 самого старшего адреса незащищенной области флэш-памяти. Например, если необходимо защитить от стирания последние 512 байт резидентной памяти программ (это диапазон адресов 0xFE00...0xFFFF), то старший адрес незащищенной области будет равен 0xFDFF, или b1111110111111111. Следовательно, в биты FPS7...FPS1 регистра FPROT необходимо записать код 1111110. Бит FPS0 регистра FPROT называют битом запрета функции защиты FPDIS. Для того чтобы защита реализовывалась, этот бит должен быть установлен в 0. На Рис.12.2 представлена графическая интерпретация рассмотренного правила формирования содержимого регистра защиты FPROT.

АдресA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
0xFDFF1111110111111111
FPROTFPS7FPS6FPS5FPS4FPS3FPS2FPS1FPDIS
0xFC11111100

Рис.12.2. Правило записи кода зашиты в регистр FPROT.

Форматы регистра защиты FPROT в оперативной памяти МК и энергонезависимого регистра защиты NVPROT в области флэш-памяти показаны ниже.

РегистрРежимD7D6D5D4D3D2D1D0
FPROTЧтениеFPS7FPS6FPS5FPS4FPS3FPS2FPS1FPDIS
Запись
СбросNVPROT
NVPROTЧтениеFPS7FPS6FPS5FPS4FPS3FPS2FPS1FPDIS
Запись
Сброс11111111

Если бит FPDIS установлен, то механизм защиты не реализуется, независимо от содержимого старших битов регистра FPROT. Именно такой режим назначается по умолчанию.

Для того чтобы активизировать механизм защиты, следует на уровне этапа прожига программного кода записать в регистр NVPROT необходимое значение, а в программный код инициализации МК внести следующую строку:

//Назначениемассиваадресовпамяти,которыезащищеныотзаписи:0xFE00-0xFFFF
ConstbyteNVPROT_INIT@0xFFBD=0xFC;

Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>