You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would have thought a call to yield() from any of the user code (nothing like interrupt handler or any sort of callback) would be pretty harmless.. but seemingly I am getting a lot of panic(). The only possibly "odd" thing is it is not called from loop() but rather from setup() (I wrote some code that write to EEPROM so I had thought it prudent to do some yields). Is that not allowed? I am still not very familiar with CONT, and in fact, I used optimistic_yield() instead, thinking that the "can_yield()" call would have protected me, but no so. Right before panic, I can see cont->pc_ret is not 0 and cont->pc_suspend is 0, but I can't figure out what's ETS_INTR_WITHINISR() though I am sure where it is called from, it is not coming from an interrupt handler.
So, is calling from setup() OK? Or am I missing something.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I would have thought a call to yield() from any of the user code (nothing like interrupt handler or any sort of callback) would be pretty harmless.. but seemingly I am getting a lot of panic(). The only possibly "odd" thing is it is not called from loop() but rather from setup() (I wrote some code that write to EEPROM so I had thought it prudent to do some yields). Is that not allowed? I am still not very familiar with CONT, and in fact, I used optimistic_yield() instead, thinking that the "can_yield()" call would have protected me, but no so. Right before panic, I can see cont->pc_ret is not 0 and cont->pc_suspend is 0, but I can't figure out what's ETS_INTR_WITHINISR() though I am sure where it is called from, it is not coming from an interrupt handler.
So, is calling from setup() OK? Or am I missing something.
(gdb) stepi
0x40201978 in __yield () at AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/core_esp8266_main.cpp:191
191 panic();
(gdb) p *(cont_t *) 0x3fffefb0
$3 = {pc_ret = 0x40255258 <cont_run+52>, sp_ret = 0x3fffef4c, pc_suspend = 0x0, sp_suspend = 0x3ffffcb8, stack_end = 0xffffd0, unused1 = 0, unused2 = 0, stack_guard1 = 4277137406, stack = {4277137406, 4277137406, 0, 4277137406, 1073738080, 1073738032, 12, 4277137406, 1073738080, 1073738032, 8, 0, 1, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 1073677020, 1073738032, 1073644492, 64, 1075975873, 1073737977, 4277137406, 38, 4294902280, 1073737952, 63, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 0, 117, 0, 1075843432, 0, 1073737977, 1073737977, 1076269367, 1075888592, 25, 1073737952, 1075888592, 1073738080, 1073738032, 8, 4277137406, 4277137406, 4277137406, 4277137406, 1073677020, 1073738032, 8, 1073737952, 1075860040, 1819635523, 1869488228, 1768300660, 1948279918, 2053467497, 543518319, 4277075978, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 4277137406, 1073738080, 1073738032, 8, 4277137406, 4277137406, 4277137406, 1073675388, 0, 0, 427, 4277137406, 4277137406, 4277137406, 1073648292, 1073738080, 4277137406, 4277137406, 4277137406, 4277137406, 0, 1073675388, 1073675256, 1712, 1075898584, 1076294196, 1076294191, 1076294185, 1076294179, 1076294173, 1076294168, 1076294162, 1076294157, 1076294152, 1076294146, 1076294140, 1076294134, 1076294128, 1076294120, 1076294093, 1076294088, 1076294083, 1076294077, 1076294071, 1076294065, 1076294057, 1076294052, 1076294046, 1076294040, 1076294033, 1076294027, 1076294021, 1076294015, 1076294009, 1076294003, 1076293997, 1076293991, 1076293986, 1076293980, 1076293974, 1076293968, 1076293962, 1076293956, 1076293949, 1076293942, 1076293936, 1076293931, 1076293925, 1076293919, 1076293913, 1076293908, 1076293903, 1076293897, 1076293892, 1076293886, 1076293880, 1076293874, 1076293850, 1076293825, 1076293820, 1076293815, 1076293808, 1076293801, 1076293794, 1076293787, 1076293780, 1076293773, 1076293766, 1076293759, 1076293752, 1076293745, 1076293738, 1076293731, 1076293724, 1076293719, 1076293688, 1076293683, 1076293676, 1076293653, 1076293648, 1076293641, 1076293636, 1076293631, 1076293624, 1076293617, 1076293594, 1076293571, 1076293564, 1076293559, 1076293552, 1076293545, 1076293540, 1076293517, 1076293494, 1076293489, 1076293484, 1076293477...}, stack_guard2 = 4277137406, struct_start = 0x3fffefb0}
Beta Was this translation helpful? Give feedback.
All reactions