Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Flash_wb_length EQU (Flash_wb_end-Flash_wb_start+2)/2 ENDMOD
MODULE flash_ww
PUBLIC Flash_ww
RSEG CODE
#define _CPU_ 5 /* определение микроконтроллера:
5=MSP430F1121, 6=MSP430F149 */ #include <Std def.s43>
Запись слова во Flash память ***************************************************
Программирование 1 слова во Flash память путем копирования небольшой (18 байт) функции в ОЗУ динамической памяти, расположенной в стеке. Определение функции: void Flash_ww(int *Data_ptr, int word) рабочий регистр: R12 = int *Data ptr
R14 = слово
R13,R15 = общего назначения
Flash_ww ~dint mov |
предотвращение повреждение стека |
#Flash ww end,R13
mov |
#Flash_ww_length, R15
mov | #0A500h,&FCTL3 | |
copy | push | @R13 |
deed | R13 | |
dec | R15 | |
jnz | copy | |
mov | SP,R15 | |
mov | #0A540h,&FCTLl | |
call | R15 | |
mov | #0A500h,&FCTLl | |
mov | #0A510h,&FCTL3 |
определение конечного адреса и размера; функции, которая копируется в ОЗУ LOCK = О
копирование функции в ОЗУ
WRT = 1
вызов функции записи
во Flash память из
ОЗУ
WRT = С
LOCK = 1
Дата публикования: 2014-11-18; Прочитано: 327 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!