ESP32 a EEPROM

Ondřej Pavelka opavelka na gmail.com
Úterý Srpen 27 18:47:38 CEST 2019


Jakmile zavolám funkci pro zápis do EEPROM (přerušovací rutiny Timerů mám
samozřejmě jako RAM_ATTR včetně funkcí, které se z této rutiny volají), pak
to spadne.
Využívám volání procesů přes xTaskCreate - to může být také problém.
Ano, nezkusil jsem úplně všechen kód přenést do RAM, protože to už asi není
úplně ten pravý Workaround....
Jestliže bych nemohl používat xTaskCreate - tedy separátní task RTOSu, pak
pro mě asi interní emulace EEPROM není použitelná.

O.


PUT data saved to EEPROM
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 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was
unhandled.
Memory dump at 0x4017f260: bad00bad bad00bad bad00bad
Guru Meditation Error: CorGuru Meditation Error: Core  1 panic'ed
(Unhandled debug exception)
Debug exception reason: Stack canary watchpoint triggered (loopTask)

út 27. 8. 2019 v 17:00 odesílatel Jiří Nesvacil <nesvacil na posys.eu> napsal:

> Behem zapisu do Flash je vypnuta cache FLASH. Ovsem jedna instrukce
> neustale pristupuje do cache a cele to vypadne na vyjimku nejspise v
> preruseni.
>
> Dejte si do google    Cache disabled but cached memory region accessed
>
> *the code that was triggered by the interrupt did not have the IRAM_ATTR
> attribute.*
>
> Most O/S library function cannot be called from an ISR. Review your code,
> make sure that every function it calls is local. and has the IRAM_ATTR
> attribute. For example, you Cannot call Serial.print() from an ISR.
>
> Oznacte tedy atributem *IRAM_ATTR* kod preruseni a je to.
>
> Jirka
>
>
> Dne 26.08.2019 v 16:21 Jaroslav Buchta napsal(a):
>
> Jak uz jsem psal, problem bude asi v tom, ze behem mazani a zapisu proste
> musi bezet program vyhradne z RAM, pro obe jadra (nebo musi byt zastaveno,
> nevim, to jsem nejak dukladne nezkoumal) Tipuju, ze je to asi nejak chybne
> naprogramovano, treba nejake SW  moduly nepocitaji s timto stavem.
> Zase se divim, ze by mel byt problem s timery - asi v souvislosti s
> prerusenim, to musi bezet v RAM kazdopadne.
>
> Dne 26.08.2019 v 15:23 Josef Štengl napsal(a):
>
> Některé procesory nesnášejí přerušování během zápisu do FLASH. Jestli se
> to týká i zápisu do FEE (FLASH EMULATED EERPROM), to nevím, zatím jsem se
> tomu vyhýbal.
>
>
> On 26. 08. 19 15:11, Dodo Racek wrote:
>
> Dohad:
> Skor si myslim, ze je to citlive na ine (cudzie) prerusenia pocas zapisu
> do EEPROM.
>
> Dodo
>
> po 26. 8. 2019 o 15:00 Petr Zapadlo <zapik na email.cz
> <mailto:zapik na email.cz> <zapik na email.cz>> napísal(a):
>
>     proč zrovna timery jsou kolizní s EEPROM? To mi moc nedává smysl. (ale
> je to tím že do toho asi málo vidím)
>
>     Petr
>
>
>     Dne 26.8.2019 v 14:26 Ondřej Pavelka napsal(a):
>
>     Problém s emulací EEPROM na ESP32 bývá pravděpodobně způsobem použitím
> timerů.
>     Mám dva timery na 1s a 10ms, používám PWM na řízení LED a do EEPROM
> prostě nazapíšu, aniž by to nehavarovalo.
>
>     O.
>
>
>     pá 23. 8. 2019 v 6:13 odesílatel Pavel Brychta <
> pavel.brychta na duhasys.eu <mailto:pavel.brychta na duhasys.eu>
> <pavel.brychta na duhasys.eu>> napsal:
>
>         Zdá se, že to řeší tento PR
> https://github.com/z3t0/Arduino-IRremote/pull/599 , ale zatím není
> sloučený...
>
>         Pavel
>
>         Dne 22.8.2019 v 21:33 Petr Zapadlo napsal(a):
>
>
>         A tady je někdo se stejným problémem:
>
> https://github.com/espressif/arduino-esp32/issues/928
>
>         petr
>
>
>         Dne 22.8.2019 v 19:26 Petr Zapadlo napsal(a):
>
>
>         Zdravím,
>
>         tak jsem našel viníka. Je jím knihovna
> https://github.com/shirriff/Arduino-IRremote.
>
>         Když odkomentuji
>
>           irrecv.enableIRIn();
>
>         tak to při zápisu do EEPROM začne havarovat.
>
>         Otázka je jestli mám šanci to nějak vyřešit.
>
>         Petr
>
>
>
>         Dne 22.8.2019 v 06:16 Pavel Brychta napsal(a):
>
>         DD,
>
>         zkuste vyrobit MCVE a pošlete mi takto vytvořený projekt, včetně
> platformio.ini - ověřím to na různých
>         variantáh ESP32 modulů, které mám k dispozici.
>
>         Pavel
>
>         Dne 20.8.2019 v 19:16 Petr Zapadlo napsal(a):
>
>
>
>
>         _______________________________________________
>         HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
> <http://www.HW.cz>
>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
> <Hw-list na list.hw.cz>
>         http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>         _______________________________________________
>         HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
> <http://www.HW.cz>
>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
> <Hw-list na list.hw.cz>
>         http://list.hw.cz/mailman/listinfo/hw-list
>
>         _______________________________________________
>         HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
> <http://www.HW.cz>
>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
> <Hw-list na list.hw.cz>
>         http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>     _______________________________________________
>     HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
> <http://www.HW.cz>
>     Hw-list na list.hw.cz  <mailto:Hw-list na list.hw.cz> <Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
> <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz> <Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> ------------------------------
> [image: Logo AVG] <http://www.avg.com/internet-security>
>
> Tento e-mail byl zkontrolován na viry antivirovým softwarem AVG.
> www.avg.cz <http://www.avg.com/internet-security>
>
> <#m_5428768419251792362_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20190827/c9536b85/attachment.html>


Další informace o konferenci Hw-list