Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по использованию FLASH данных
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
MihailS
Подскажите пожалуйста, как производить запись, модификацию значений во flash данных из программы на С.
MrYuran
Код
void SaveToFlash(void)
{                
  char *FlashPtr;
  char *mem_ptr;
  int kk;
  mem_ptr = (char *)&stflash_Data;
    _DINT();
    FlashPtr = (char*) flash_A;    // Initialize Flash_A pointer  
    
    FCTL1 = FWKEY + ERASE;                // Set Erase bit
    FCTL3 = FWKEY;                        // Clear Lock bit
    *FlashPtr = 0;                       // Dummy write to erase Flash segment
    FCTL1 = FWKEY + WRT;                  // Set WRT bit for write operation    
    ...
    // Write Something Data To Flash
    ...
    FCTL1 = FWKEY;                          // Clear WRT bit
    FCTL3 = FWKEY + LOCK;                   // Reset LOCK bit    
    _EINT();
}


Ну, вот как-то так можно записать данные во флеш.
Начисто содрано с мануала.
Если не надо стирать сегмент (пишем на чистое место), ERASE ставить не надо.

PS: чуть не забыл. Flash_A у меня указывает на сегмент данных А.
#define flash_A 0x1080u // адрес начала сегмента данных А
VAI
Вот ещё:
http://electronix.ru/forum/index.php?showt...amp;#entry33211
----------
Вначале делаете копию сегмента в ОЗУ, модифицируете, потом стираете, куда будете писать, и записываете сегмент...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.