ESP32 a EEPROM

Pavel Brychta pavel.brychta na duhasys.eu
Pondělí Srpen 19 06:19:39 CEST 2019


Dobrý den,

ten zápis není zcela optimální z hlediska toho, co vlastně simulovaná 
EEPROM v ESP8266 je, takže to vezmu trošičku obšírněji:

U ESP8266 je EEPROM simulovaná sektorem ve flash paměti, takže trpí na 
wear leveling. Commit by se tedy měl používat pokud možno co nejméně, 
respektive po zápisu co největších dat. Volání commit po zápisu každého 
bytu znamená 4 přepisy sektoru. U ESP32 v posledních verzích jádra 
přešla emulace EEPROM na používání NVS, ale obávám se, že přístup k 
používání commit zůstal stejný. Další věcí pak je namísto bytového 
přístupu použít templatovaných metod put() a get(), které zabezpečí 
uložení celého prvku. Takže doporučuji:

1. překontrolovat, zda voláte .begin() na začátku programu s dostatečnou 
velikostí

2. použít .put()

3. commit() zavolat po uložení

Hezký den,

Pavel Brychta

Dne 18.8.2019 v 22:18 Petr Zapadlo napsal(a):
> Zdravím,
>
> potřebuji v jednom projektu přejít z ESP8266 -> ESP32.  Kod jsem lehce 
> upravil (především kvůli trochu jiným knihovnám), přeložil a testuju a 
> narazil jsem na nečekaný problém a to s EEPROM.
>
> Mám funkci:
>
> void write_to_eeprom(uint32_t integer, uint8_t adresa){
>   for (uint8_t i=0; i<4;i++){
>     EEPROM.write((adresa+i), (uint8_t) integer);
>     EEPROM.commit();
>     integer= integer >> 8;
>   }
> }
>
> Totožnou rutinu jsem už použil mockrát, hlavně s ESP8266 a ale i s 
> jedním ESP32 a nenarazil jsem na problém.  Nyní však když zapisuju 
> data do EEPROM tak mi cpu zhavaruje:
>
> Guru Meditation Error: Core  1 panic'ed (Cache disabled but cached 
> memory region accessed)
> Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). 
> Exception was unhandled.
> Memory dump at 0x401495e8: bad00bad bad00bad bad00bad
> A je do resetu vymalováno.
>
> A navíc je to závislé na datech - pokud je zapisovaná hodnota kolem 
> 66000 tak je vše OK, pokud je cca 800, tak zhavaruje.
>
> když si dám vypsat jednotlivé byte co se zapisují, tak je vše OK?
>
> Nějak to mu nerozumím, už do toho tady čumím dost dlouho dobu a nemohu 
> se hnout z místa.
>
> Tuší někdo, v čem by mohl být problém?
>
> Díky
>
> Petr
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list