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.
Адрес | A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
0xFDFF | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
⇓ | ||||||||||||||||
FPROT | FPS7 | FPS6 | FPS5 | FPS4 | FPS3 | FPS2 | FPS1 | FPDIS | ||||||||
0xFC | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
Рис.12.2. Правило записи кода зашиты в регистр FPROT.
Форматы регистра защиты FPROT в оперативной памяти МК и энергонезависимого регистра защиты NVPROT в области флэш-памяти показаны ниже.
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
FPROT | Чтение | FPS7 | FPS6 | FPS5 | FPS4 | FPS3 | FPS2 | FPS1 | FPDIS |
Запись | — | — | — | — | — | — | — | — | |
Сброс | NVPROT | ||||||||
NVPROT | Чтение | FPS7 | FPS6 | FPS5 | FPS4 | FPS3 | FPS2 | FPS1 | FPDIS |
Запись | — | — | — | — | — | — | — | — | |
Сброс | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Если бит FPDIS установлен, то механизм защиты не реализуется, независимо от содержимого старших битов регистра FPROT. Именно такой режим назначается по умолчанию.
Для того чтобы активизировать механизм защиты, следует на уровне этапа прожига программного кода записать в регистр NVPROT необходимое значение, а в программный код инициализации МК внести следующую строку:
ConstbyteNVPROT_INIT@0xFFBD=0xFC;
Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>