Стирание и программирование Flash-модуля

Обычно вычислительное ядро считывает из Flash памяти данные или код прикладной программы. Однако, иногда данные во Flash памяти необходимо из­менить при выполнении программы. В течение этой операции стирания-записи (то есть перепрограммирования) Flash памяти управление осуществляется от задающего генератора, имеющегося в модуле Flash. В это время вычислитель­ное ядро не может получить доступа к Flash памяти и, следовательно, програм­ма должна находиться в другом месте, например в ОЗУ, или вычислительное ядро должно перейти в Idle режим. После завершения программирования Flash памяти вычислительное ядро вновь берет управление над ней на себя. Оба эти метода имеют свои преимущества.

В настоящее время микроконтроллеры семейства MSP430 имеют один модуль Flash для хранения данных и прикладной программы. Это означает, что при программировании Flash памяти векторы прерываний недоступны и ника­кие запросы на прерывание не могут быть обработаны. Поэтому, при модифи­кации Flash памяти все источники прерывания, вплоть до сторожевого таймера, должны быть отключены. Это можно сделать при помощи программы, приве­денной на рисунке 2.


dint

clr.b &IE1

mov #5A80h, &WDTCTL


блокировка всех маскируемых прерываний блокировка NMI, ACCV и OF прерываний блокировка сторожевого таймера


Рис.2. Программа блокировки всех прерываний и сторожевого таймера