Skocz do zawartości

STM32G031 problem z emulacją pamięci eeprom


Pomocna odpowiedź

Napisano (edytowany)

Potrzebuję zapisać trochę danych do pamięci nieulotnej, w tym celu powołałem strukturę jak poniżej:

typedef struct{
	int v[5];
	uint16_t maxLed,LedOffset;
	//int ledOffSet;
	uint8_t oled_bright;
	uint8_t idxTimeout; // czas dzialania
	uint8_t idxOledtout; // czas wygaszacza oled
	uint8_t xx; // dopełnienie
	uint16_t magicNumbers; // czy był zapis
}mem_t;

extern mem_t parametry;

znalazłem bibliotekę która umożliwia emulację eeprom: https://github.com/nimaltd/ee

No i niestety zapisy nie działają, konfiguracja w bibliotece eeConfig.h
 

#ifndef EEMEM_EECONFIG_H_
#define EEMEM_EECONFIG_H_

#define   _EE_USE_FLASH_PAGE_OR_SECTOR              (30)
#define   _EE_USE_RAM_BYTE                          (2048)
#define   _EE_VOLTAGE                               FLASH_VOLTAGE_RANGE_3 //  use in some devices

#endif /* EEMEM_EECONFIG_H_ */

podałem _EE_USE_RAM_BYTE na 2048 ponieważ tyle wynosi rozmiar sektora w tym mikrokontrolerze, zapis przeprowadzam przed wyłączeniem mikrokontrolera po wcześniejszym sprawdzeniu czy dane uległy zmianie
 

if(0 != memcmp(&parametry,&parcopy,sizeof(mem_t)))
{
	ee_writeToRam(0,sizeof(mem_t),(uint8_t*)&parametry);
  	ee_commit();
}

testowo sprawdzałem co zwraca funkcja ee_writeToRam i nawet jeśli jest tam true to dane nie pojawiają się w pamięci flash. 

Edytowano przez _LM_

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...