Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[36]

ния. Бит BUSY устанавливается немедленно после фиктивной записи и остается установленным в течение всего цикла стирания. Биты BUSY, MERAS и ERASE автоматически очищаются, когда цикл завершен. Временные параметры цикла стирания не зависят от объема представленной в устройстве флэш-памяти. Продолжительность цикла стирания одинакова для всех устройств MSP430.

Фиктивная запись по адресу, который лежит вне диапазона стирания не приводит к запуску цикла стирания, не воздействует на флэш-память и не влияет на флаги. Такая ошибочная фиктивная запись игнорируется.

Прерывания должны быть отключены перед началом цикла стирания флэш-памяти. После завершения цикла стирания прерывания могут быть разрешены вновь. Любое прерывание, произошедшее во время цикла стирания, вызовет установку соответствующего флага, а после разрешения прерываний будет сгенерирован запрос на обработку прерывания.

Инициирование процедуры стирания из программы, находящейся в флэш-памяти

Любой цикл стирания может быть инициирован программой, находящейся как во флэш-памяти, так и в ОЗУ. Когда стирание сегмента инициировано программой из флэш-памяти, все тактирование выполняется контроллером флэш-памяти, а ЦПУ останавливается до завершения цикла стирания. После окончания цикла стирания ЦПУ продолжает выполнение программного кода с команды, следующей за фиктивной записью.

Когда цикл стирания инициируется программой их флэш-памяти, возможно стирание кода, необходимого для выполнения после завершения

Отключение всех прерываний и сторожевого таймера

Установка контроллера флэш и режима стирания

Выполнение фиктивной записи

Установка LOCK = 1, разрешение прерываний и включение сторожевого таймера

Рис. 5-5. Цикл стирания, инициируемый программой из флэш-памяти


стирания. Если это произойдет, работа ЦПУ после окончания цикла стирания будет непредсказуема.

Программный поток, инициирующий стирание из флэш-памяти, показан на рис. 5.5.

/Стирание сегмента из флэш. 514 кГц < SMCLK < 952 кГц /Принимается ACCVIE = NMIIE = OFIE = 0.

MOV MOV MOV

#WDTPW+WDTHOLD,&WDTCTL /Отключение WDT

/Запрещение прерываний #FWKEY+FSSEL1+FN0,&FCTL2 /SMCLK/2

#FWKEY,&FCTL3 #FWKEY+ERASE,&FCTL1

CLR &0FC10h

MOV #FWKEY+LOCK,&FCTL3

/Очистка LOCK Разрешение стирания сегмента

Фиктивная запись, стирание S1 Выполнено, установка

Повторное включение WDT?

/Разрешение прерываний

Инициирование процедуры стирания программой из ОЗУ

Любой цикл стирания может быть инициирован из ОЗУ. В этом случае ЦПУ не приостанавливается, и может продолжать выполнять код из ОЗУ. Доступ ЦПУ к любому адресу флэш-памяти возможен после окончания цикла стирания, которое определяется путем опроса бита BUSY. Попытка доступа к флэш-памяти, когда BUSY-1 приведет к нарушению доступа с последующей установкой флага ACCVIFG и непредсказуемым результатам процедуры стирания.

Программный поток стирания из флэш-памяти программой из ОЗУ показан на рис. 5.6.

/Стирание сегмента программой из ОЗУ. 514 SMCLK

<952 кГц

/Принимается ACCVIE = NMIIE = OFIE = 0.

MOV #WDTPW+WDTHOLD,&WDTCTL /Отключение WDT DINT/Запрещение прерываний

L1 BIT #BUSY,&FCTL3/Проверка BUSY

JNZ L1/Ожидание, пока занято

MOV #FWKEY+FSSEL1+FN0,&FCTL2 /SMCLK/2


Отключение всех прерываний и сторожевого таймера

Рис. 5-6. Цикл стирания, инициируемый программой из ОЗУ

MOV #FWKEY,&FCTL3

MOV #FWKEY+ERASE,&FCTL1

CLR &0FC10h

L2 BIT #BUSY,&FCTL3 JNZ L2

MOV #FWKEY+LOCK,&FCTL3

;Очистка LOCK

; Разрешение стирания

;Фиктивная запись, ;стирание S1

;Проверка BUSY

;Ожидание, пока занято

;Завершено, установка

;Повторное включение ;WDT?

;Разрешение прерываний



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]