3.12. Защита от изменения конфигурации
Регистры, которые отвечают за настройку критичных системных параметров, защищены от несанкционированной модификации. Также предусмотрены защиты от ошибочного выполнения инструкции SPM и считывания с помощью инструкции LPM конфигурационных бит и сигнатурного кода. Данные защиты реализованы на глобальном уровне посредством регистра защиты от изменения конфигурации (CCP). Изменение защищенных регистров ввода-вывода или их отдельных бит, а также выполнение защищенных инструкций возможно только после записи ЦПУ сигнатуры в регистр CCP. Отличия сигнатур будут приведены в описании регистров.
Предусмотрено 2 режима работы: один для защищенных регистров ввода-вывода и один для защищенных инструкций SPM/LPM.
3.12.1. Последовательность записи защищенных регистров ввода-вывода
- Кодом программы выполняется запись сигнатуры в регистр CCP, что разрешает изменение защищенных регистров ввода-вывода.
- В течение 4 последующих циклов инструкций кодом программы необходимо записать требуемые данные в защищенный регистр. У большинства защищенных регистров предусмотрен свой бит разрешения записи/разрешения изменения. В данный бит необходимо записать единицу вместе с записью данных. Возможность защищенного изменения блокируется сразу после выполнения ЦПУ операции записи в регистр ввода-вывода или памяти данных, а также, после выполнения инструкции SPM, LPM или SLEEP.
3.12.2.Последовательность выполнения защищенных инструкций SPM/LPM
- Кодом программы выполняется запись сигнатуры в регистр CCP, что разрешит выполнение защищенной инструкции SPM/LPM.
- В течение 4 последующих циклов код программы получает возможность выполнить соответствующую инструкцию.
Защищенное изменение отключается сразу после выполнения ЦПУ операции записи в память данных или после выполнения инструкции SLEEP.
Сразу после записи ЦПУ корректной сигнатуры прерывания будут игнорироваться в течение промежутка времени, которое выделено для изменения конфигурации. Все запросы прерывания (в т.ч. немаскируемые прерывания), которые возникают в течение защищенного изменения конфигурации, приводят к установке соответствующего флага прерывания и, поэтому, запрос запоминается, как отправленный. По завершении интервала защищенного изменения все отправленные запросы прерываний будут обработаны в соответствии с их уровнем и приоритетом.
Запросы DMA обрабатываются обычным образом и никак не влияют на период разрешения изменений конфигурации. Сигнатура, записанная посредством DMA, игнорируется.
|