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