В энергонезависимой flash-памяти микроконтроллеров могут присутствовать специализированные биты и байты, предназначенные для защиты программы пользователя и конфигурирования изделия. Эти ячейки памяти не отображаются в общем массиве памяти программ, имеют оригинальные имена и индивидуально программируются. Специализированные flash-ячейки имеет и микроконтроллер АТтеда163. В его структуре предусмотрены:
0 Биты блокировки (lock-bits) LB1 и LB2, позволяющие запретить чтение программы, EEPROM и программирование кристалла.
Запрограммированные биты блокировки можно стереть только при очистке flash -памяти программ. При этом уничтожается и сама программа.
Таблица 2.2. Режимы защиты программной информации AVR
LB1 | LB2 | Тип защиты |
Защита отсутствует | ||
Запрет программирования Flash и EEPROM | ||
Запрет программирования и чтения Flash и EEPROM |
0 Биты предохранители (fuse-bits) позволяют задавать некоторые конфигурационные особенности микроконтроллера. Состав fuse-битов каждого конкретного микроконтроллера обусловлен особенностями построения узлов сброса, тактирования и программирования кристалла. АТтеда163, поддерживающий режим последовательного программирования имеет fuse-бит SPIEN, который может запретить этот режим перезаписи кристалла. Кроме того, fuse-биты CKSEL[0..3] задают источник тактового сигнала микроконтроллера и время задержки старта микроконтроллера после сброса, а схемой контроля питания управляют fuse-биты BODEN и BODLEVEL. Fuse-биты BOOTSZ, как показано ранее, задают объем секции начальной загрузки в памяти программ.
0 Байты сигнатуры (signature-byte) служат для идентификации типа кристалла, программируются изготовителем и доступны только для чтения.