Обычно вычислительное ядро считывает из Flash памяти данные или код прикладной программы. Однако, иногда данные во Flash памяти необходимо изменить при выполнении программы. В течение этой операции стирания-записи (то есть перепрограммирования) Flash памяти управление осуществляется от задающего генератора, имеющегося в модуле Flash. В это время вычислительное ядро не может получить доступа к Flash памяти и, следовательно, программа должна находиться в другом месте, например в ОЗУ, или вычислительное ядро должно перейти в Idle режим. После завершения программирования Flash памяти вычислительное ядро вновь берет управление над ней на себя. Оба эти метода имеют свои преимущества.
В настоящее время микроконтроллеры семейства MSP430 имеют один модуль Flash для хранения данных и прикладной программы. Это означает, что при программировании Flash памяти векторы прерываний недоступны и никакие запросы на прерывание не могут быть обработаны. Поэтому, при модификации Flash памяти все источники прерывания, вплоть до сторожевого таймера, должны быть отключены. Это можно сделать при помощи программы, приведенной на рисунке 2.
dint
clr.b &IE1
mov #5A80h, &WDTCTL
блокировка всех маскируемых прерываний блокировка NMI, ACCV и OF прерываний блокировка сторожевого таймера
Рис.2. Программа блокировки всех прерываний и сторожевого таймера