реклама на сайте
подробности

 
 
> Контроллер Флеш-памяти
binom
сообщение Jun 13 2005, 17:30
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 27-04-05
Пользователь №: 4 550



Работаю с msp430f149.
Согласно документации есть возможность 1)масового стирания сегментов основной памяти и 2)массового стирания сегментов основной и информационной памяти.
Соответственно (MERAS = 1 ERASE = 0)- это 1), (MERAS = 1 ERASE = 1) -это 2)
по идее при массовом стирании исполняемый код тоже должен стереться.


в IARе описываю 1-ю ситуацию(стирание инициируется не из ОЗУ а из Флеш) - код не стирается хотя он распольжен начиная с адреса 0х1100.

описываю 2-ю ситуацию(стирание инициируется не из ОЗУ а из Флеш) - код стирается содержимое всей памяти 0xff.
Вопрос: Чё за косяк?

Еще одно наблюдение: при записи в режиме байт/слово можно последовательно записать несколько слов. Т.е. корректно произойдет запись с помощью следующего кода:

int *memory1 = (int*)0x1000;
int *memory2 = (int*)0x1080;

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

//записываем слово в режиме не блочной записи
asm("dint");
FCTL1 = FWKEY + WRT;
FCTL2 = FWKEY + FSSEL_2 + FN0;
FCTL3 = FWKEY;
*memory1 = 0x1234;//записываем в 1-ый инф. сегмент
*memory2 = 0x5678;//записываем во 2-ой инф. сегмент
while( (FCTL3 & BUSY) );
FCTL3 = FWKEY + LOCK;
asm("eint");
//

А вот стирание 2-х сегментов таким образом не пройдет. Бит ERASE аппаратно сбрасывается после первой команды фиктивной записи, и генерится прерывание ACCVIFG.

int *memory1 = (int*)0x1000;
int *memory2 = (int*)0x1080;

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer


//стираем сегмент
asm("dint");
FCTL1 = FWKEY + MERAS + ERASE;
FCTL2 = FWKEY + FSSEL_2 + FN0;
FCTL3 = FWKEY;
*memory1 = 0x1234;//ПОСЛЕ ЭТОЙ КОМАНДЫ ERASE = 0
*memory2 = 0x5678;//ПОСЛЕ ЭТОЙ КОМАНДЫ ACCVIFG = 1(косяк)
while( (FCTL3 & BUSY) );
FCTL3 = FWKEY + LOCK;
asm("eint");
//
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01326 секунд с 7
ELECTRONIX ©2004-2016