Стирание страничного буфера Flash-памяти 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Стирание страничного буфера Flash-памяти



Данная команда предназначена для стирания страничного буфера Flash-памяти.

· Запишите в NVM CMD команду стирания страничного буфера Flash-памяти.

· Установите бит исполнения команды (NVMEX) в регистре А управления энергонезависимой памятью (NVM CTRLA) с соблюдением привязанной ко времени последовательности CCP.

Флаг занятости NVM (BUSY) в регистре статуса NVM (NVM STATUS) будет установлен до тех пор, пока не будет стерт страничный буфер.

Загрузка страничного буфера Flash-памяти

Данная команда предназначена для загрузки страничного буфера Flash-памяти.

· Запишите в регистр NVM CMD команду загрузки страничного буфера Flash-памяти.

· Запишите в Z-указатель адрес слова, подлежащего записи.

· Запишите в регистры R1:R0 слово данных, подлежащее записи в буфер.

· Выполните инструкцию SPM. При выполнении операции загрузки страничного буфера инструкция SPM является незащищенной.

Повторяйте шаги 2…4 вплоть до завершения загрузки страничного буфера Flash-памяти. В незагруженных ячейках хранится значение 0xFFFF, для которого не определена инструкция ЦПУ AVR.

Стирание страницы Flash-памяти

Данная команда предназначена для стирания одной страницы Flash-памяти.

· Запишите в Z-указатель адрес подлежащей стиранию страницы flash-памяти. Адрес страницы должен быть записан в битовое поле PCPAGE. Прочие биты Z-указателя игнорируются при выполнении этой операции.

· Запишите в регистр NVM CMD команду стирания страницы Flash-памяти.

· Выполните инструкцию SPM с использованием привязанной ко времени последовательности CCP.

Флаг BUSY в регистре NVM STATUS остается равным единице до тех пор, пока не завершится операция стирания. Флаг занятости сектора Flash-памяти (FBUSY) удерживается равным единице все время, пока Flash-память занята, при этом, доступ к сектору прикладной программы невозможен.

Запись страницы Flash-памяти

Данная команда предназначена для записи содержимого страничного буфера Flash-памяти в одну страницу Flash-памяти.

· Запишите в Z-указатель адрес подлежащей записи страницы flash-памяти. Адрес страницы должен быть записан в битовое поле PCPAGE. Прочие биты Z-указателя игнорируются при выполнении этой операции.

· Запишите в регистр NVM CMD команду записи страницы Flash-памяти.

· Выполните защищенную инструкцию SPM с использованием привязанной ко времени последовательности CCP.

Флаг BUSY в регистре NVM STATUS остается равным единице до тех пор, пока не завершится операция записи. Флаг занятости сектора Flash-памяти (FBUSY) удерживается равным единице все время, пока Flash-память занята, при этом, доступ к сектору прикладной программы невозможен.

Вычисление CRC для диапазона Flash-памяти

Данная команда предназначена для проверки содержимого Flash-памяти в пределах заданного диапазона после завершения самопрограммирования.

· Запишите в регистр NVM CMD команду вычисления CRC для диапазона Flash-памяти.

· Запишите адрес начального байта в регистр адреса NVM (NVM ADDR).

· Запишите адрес последнего байта в регистр данных NVM (NVM DATA).

· Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.

На время выполнения этой операции флаг BUSY в регистре NVM STATUS удерживается равным единице, а ЦПУ приостанавливает свою работу.

Результат выполнения операции (контрольная сумма CRC) будет доступен в регистре данных NVM DATA.

Команду проверки CRC для диапазона Flash-памяти можно использовать, только если биты Boot Lock не запрограммированы (т.е. блокировка доступа отключена).

Если биты Boot Lock той области, в которой выполняется проверка СRC, запрограммированы, выполнение команды отменяется.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 278; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.12.172 (0.005 с.)