Skip to content

delay(1) in library sometimes causes exception(9) #5838

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
5 of 6 tasks
mamama1 opened this issue Mar 3, 2019 · 5 comments
Closed
5 of 6 tasks

delay(1) in library sometimes causes exception(9) #5838

mamama1 opened this issue Mar 3, 2019 · 5 comments

Comments

@mamama1
Copy link

mamama1 commented Mar 3, 2019

Basic Infos

  • This issue complies with the issue POLICY doc.
  • I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • I have filled out all fields below.

Platform

  • Hardware: [NodeMCU 4M]
  • Core Version: [2.5, 2.4]
  • Development Env: [Platformio]
  • Operating System: [Windows]

Settings in IDE

  • Module: [nodemcuv2]
  • Flash Mode: [noidea]
  • Flash Size: [4MB]
  • lwip Variant: [default?]
  • Reset Method: [nodemcu i guess]
  • Flash Frequency: [40Mhz i guess]
  • CPU Frequency: [80Mhz]
  • Upload Using: [SERIAL]
  • Upload Speed: [512000 (CP2102) (serial upload only)

Problem Description

I'm using this library for EEPROM access: https://github.com/JChristensen/extEEPROM
and it seems this thing is kind of incompatible with the ESP8266. See here, I have already figured some things out: JChristensen/extEEPROM#19

From then on, I only sometimes got crashes but they were still there. recently they started to annoy me so I tracked them down to delay(1) which is called in my customized version of extEEPROM.cpp:

        //wait up to 50ms for the write to complete
        for (uint8_t i=50; i; --i) {
            ESP.wdtFeed();
            //delay(1);                     //no point in waiting too fast
            communication->beginTransmission(ctrlByte);
            if (_nAddrBytes == 2) communication->write((byte)0);        //high addr byte
            communication->write((byte)0);                              //low addr byte
            txStatus = communication->endTransmission();
            if (txStatus == 0) break;
        }

(original file, see here: https://github.com/JChristensen/extEEPROM/blob/master/extEEPROM.cpp starting at line 134)

When I removed delay(1), the crashes disappeared.
This is, how I was writing data to the EEPROM:

        typedef struct __attribute((__packed__)) NodePairing
            {
                uint8_t nodeID;
                bool active;
                uint16_t type;
                uint8_t serialNumber[NODE_SERIAL_LEN];
                uint8_t name[20];
            } NodePairing_t;

            NodePairing_t nodesPairing[NODE_COUNT_MAX]; // (about 8k)

extEEPROM.write(EEPROM_NODE_PAIRINGDATA_OFFSET, reinterpret_cast<byte*>(&nodesPairing), (size_t)sizeof(nodesPairing));

this is the stack trace i was receiving:

Exception (9):
epc1=0x40105abc epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000003 depc=0x00000000

stack>>>

ctx: sys
sp: 3fffe720 end: 3fffffb0 offset: 01a0
3fffe8c0: 40105ce8 009dc4a8 3fff5044 00000000
3fffe8d0: 3ffef6e0 3fff5044 3fff68f4 3fff4b70
3fffe8e0: 00000000 009dc370 40201d44 00000001
3fffe8f0: 3fff5044 00000008 3fff4b70 40214050
3fffe900: 00000008 00000578 00001de2 40214281
3fffe910: 00000032 3fff2a59 00000050 4020e9f6
3fffe920: 3fff5b7c 00000015 3fffed58 3ffe8bd8
3fffe930: 3fff6f59 3fffe970 3fffed58 4020814c
3fffe940: 3fff6f59 3fffe970 3fffed58 4020a936
3fffe950: 00000052 000000a0 0000004f 00000000
3fffe960: 402187b8 3fffe970 000003e8 00000018
3fffe970: 3fffe960 3fffe978 00000000 3ffe86e0
3fffe980: 00000002 3ffe8bd8 00000000 3ffe8cb0
3fffe990: 00000003 00000000 6c6f6f70 70746e2e
3fffe9a0: 67726f2e 3fffe900 47354348 77657461
3fffe9b0: 00007961 3fffe9d4 3ffe8b54 00000002
3fffe9c0: 3fffe9c4 2e323931 2e383631 312e3532
3fffe9d0: 3fff0033 3fffe9e4 3ffe8b58 00000004
3fffe9e0: 0000075b 3fffe9fc 3ffe8b60 00000002
3fffe9f0: 3fffe9f4 7474716d 3ffe8b00 00000000
3fffea00: 3ffe8b64 00000002 3fffea0c 6831426e
3fffea10: 364d6f46 73736500 00000000 00000002
3fffea20: 00000000 00000002 3fffeb00 4021ecee
3fffea30: 3fffeaa3 3ffe97a6 00000000 1eeb658e
3fffea40: 720cebcc 404d8afc a497b8cc 3ffe97a6
3fffea50: 00000000 3ffe97a8 3fffeb00 4021eed8
3fffea60: 00000000 00000004 00000000 00000000
3fffea70: 00000004 00000015 00302073 00000000
3fffea80: 00000000 00000000 0000001f 40105ba5
3fffea90: 4000050c 00000000 00000000 00000000
3fffeaa0: 00313031 00000030 0000001b ffffffff
3fffeab0: 4024665f ca62c1d6 00000000 24b1ba49
3fffeac0: 00000001 00000000 0000000a 00000000
3fffead0: 00000001 00000000 0000000a 00000000
3fffeae0: 3bf919a0 ec2946ca 1a625478 3fffece0
3fffeaf0: 00000000 a0000000 00000000 0000001c
3fffeb00: 00001000 00000447 00001000 00000000
3fffeb10: 3fffec70 00000000 3fffec70 4021ecee
3fffeb20: 0000a000 3fffec13 00000432 00000015
3fffeb30: 00000000 00000000 4021a8a4 00000001
3fffeb40: 3fffec70 00000001 3fffec70 4021ecee
3fffeb50: 3fffebd0 3fffec12 3fffeb80 00000000
3fffeb60: 3fff5144 000003e4 3fffed30 4021ec28
3fffeb70: 3fffec70 3fffec12 3fffebd0 4021a9a4
3fffeb80: 00000001 3fffed30 3fffed30 00000005
3fffeb90: 00000000 00000005 3fffec70 4021ecee
3fffeba0: 3fffec13 3ffe8d3f 00000000 40211cf8
3fffebb0: 65636341 522d7470 65676e61 3ffe8d3f
3fffebc0: 00000000 3ffe8d44 3fffec70 4021eed8
3fffebd0: 00000000 ffffffff ffffffff 00000000
3fffebe0: 00000000 00000000 0000001f 40105ba5
3fffebf0: 4000050c 00333c00 4023c12b 00000001
3fffec00: 4022e378 00000030 00000018 ffffffff
3fffec10: 4022e356 00000001 00002001 00000000
3fffec20: 00000002 00000001 4023c12b 00000000
3fffec30: ffffffff 00000000 3ffea521 00000000
3fffec40: 4023c17a 3ffedb68 3fff57b4 00000001
3fffec50: 4023c286 3ffedb68 3fff57b4 3ffedb68
3fffec60: 00000002 00000000 00000020 40101eba
3fffec70: 3ffea3d2 4023b22b 3ffedb68 3fff7084
3fffec80: 00000000 4022e4bf 3ffeeff8 40101eba
3fffec90: 00000000 00000002 4023c12b 00000000
3fffeca0: ffffffff 00000000 3ffea521 00000000
3fffecb0: 4023c17a 3ffedb68 3fff57b4 00000001
3fffecc0: 00000005 00000000 00000020 40101eba
3fffecd0: 3ffea3d5 401052c3 3ffede38 40101eba
3fffece0: 40102bd1 3ffede38 3ffedb68 3fff7084
3fffecf0: 00007fff 01f8ee90 3ffee86c 40102da6
3fffed00: 3ffeac68 00000000 00000000 3ffedb68
3fffed10: 00007fff 01f8ee90 401031e6 00000100
3fffed20: 7fffffff 3ffeac68 3ffeac68 00000001
3fffed30: 00000001 00004208 3fff51a4 3fff5bac
3fffed40: 3fff79fa 01f8ee90 00002200 4000050c
3fffed50: 3fffc278 40102f80 3fff5b7c 0000001f
3fffed60: 00000015 3fff556c 3fff79c4 3fffed58
3fffed70: 00000051 00000030 0000000f 402187a8
3fffed80: 3ffee7ac 3fff739c 00000200 3fff4e58
3fffed90: 00000020 3fffeed8 3fffeed8 00000000
3fffeda0: 3fff7584 3fff6f40 34fdf3b6 00000000
3fffedb0: 00000000 00000000 4bc6a7f0 3fff7584
3fffedc0: 3fff6f40 00000004 3fff7584 4020b0ba
3fffedd0: 3fff6f40 3fff7584 00000004 40217b8a
3fffede0: 009594ed 01f954c5 3ffee86c 40217fb9
3fffedf0: 00000040 4bc6a7f0 2e978d4f 3fff7584
3fffee00: 3fff6f3a 00000040 00000040 4020ee51
3fffee10: 7fffffff 3ffeac74 40100a34 0000815e
3fffee20: 3fff6f80 00000025 00000006 000000bc
3fffee30: 009594e5 01f954c5 00002200 00000000
3fffee40: 3fff70c4 3fff6ef4 00000000 4020ee7d
3fffee50: 3fff70c4 3fff6ef4 3fff53c9 402176f8
3fffee60: 3fff6e34 00000001 00000010 ffffffff
3fffee70: 40000f58 00000000 00000020 3fff53e4
3fffee80: 3fff6e34 3fff53c8 3fff53c9 4021773c
3fffee90: 3fff6e34 3fff53c8 3fff53c9 402242e4
3fffeea0: 0000007c 00000000 00000014 0000007c
3fffeeb0: 3fff556c a919a8c0 0000008c 40101300
3fffeec0: 40220000 fc19a8c0 3fffef30 3fff556c
3fffeed0: 3fff5614 3fff6ef4 3fff6f12 40228f55
3fffeee0: 00000014 00000000 3fff556c 401010b4
3fffeef0: 3fffdc80 3fff5bac 3fff6c64 3fff5bfc
3fffef00: 00000008 3fff556c 3fff6ef4 40220e01
3fffef10: 3fffdc80 3fff5bac 3fff6c64 40220c37
3fffef20: 40245b4e 3fff5bac 3fff6c64 40245b5f
3fffef30: 3fff6f04 3fff6ef4 00000000 3fffdcb0
3fffef40: 4023afc3 00000000 3fff6c64 402412a3
3fffef50: 40000f49 3fffdab0 3fffdab0 40000f49
3fffef60: 40000e19 40001878 00000002 00000000
3fffef70: 3fffff10 aa55aa55 0000000e 401053cc
3fffef80: 401053d2 00000002 00000000 855533aa
3fffef90: 4010000d 7a636d7d 86927e01 c8149a28
3fffefa0: 40101584 3fffef3c 40101525 3fffff28
3fffefb0: 3fffffc0 00000000 00000000 feefeffe
3fffefc0: feefeffe feefeffe feefeffe feefeffe
3fffefd0: feefeffe feefeffe feefeffe feefeffe
3fffefe0: feefeffe feefeffe feefeffe feefeffe
3fffeff0: feefeffe feefeffe feefeffe feefeffe
3ffff000: feefeffe feefeffe feefeffe feefeffe
3ffff010: feefeffe feefeffe feefeffe feefeffe
3ffff020: feefeffe feefeffe feefeffe feefeffe
3ffff030: feefeffe feefeffe feefeffe feefeffe
3ffff040: feefeffe feefeffe feefeffe feefeffe
3ffff050: feefeffe feefeffe feefeffe feefeffe
3ffff060: feefeffe feefeffe feefeffe feefeffe
3ffff070: feefeffe feefeffe feefeffe feefeffe
3ffff080: feefeffe feefeffe feefeffe feefeffe
3ffff090: feefeffe feefeffe feefeffe feefeffe
3ffff0a0: feefeffe feefeffe feefeffe feefeffe
3ffff0b0: feefeffe feefeffe feefeffe feefeffe
3ffff0c0: feefeffe feefeffe feefeffe feefeffe
3ffff0d0: feefeffe feefeffe feefeffe feefeffe
3ffff0e0: feefeffe feefeffe feefeffe feefeffe
3ffff0f0: feefeffe feefeffe feefeffe feefeffe
3ffff100: feefeffe feefeffe feefeffe feefeffe
3ffff110: feefeffe feefeffe feefeffe feefeffe
3ffff120: feefeffe feefeffe feefeffe feefeffe
3ffff130: feefeffe feefeffe feefeffe feefeffe
3ffff140: feefeffe feefeffe feefeffe feefeffe
3ffff150: feefeffe feefeffe feefeffe feefeffe
3ffff160: feefeffe feefeffe feefeffe feefeffe
3ffff170: feefeffe feefeffe feefeffe feefeffe
3ffff180: feefeffe feefeffe feefeffe feefeffe
3ffff190: feefeffe feefeffe feefeffe feefeffe
3ffff1a0: feefeffe feefeffe feefeffe feefeffe
3ffff1b0: feefeffe feefeffe feefeffe feefeffe
3ffff1c0: feefeffe feefeffe feefeffe feefeffe
3ffff1d0: feefeffe feefeffe feefeffe feefeffe
3ffff1e0: feefeffe feefeffe feefeffe feefeffe
3ffff1f0: feefeffe feefeffe feefeffe feefeffe
3ffff200: feefeffe feefeffe feefeffe feefeffe
3ffff210: feefeffe feefeffe feefeffe feefeffe
3ffff220: feefeffe feefeffe feefeffe feefeffe
3ffff230: feefeffe feefeffe feefeffe feefeffe
3ffff240: feefeffe feefeffe feefeffe feefeffe
3ffff250: feefeffe feefeffe feefeffe feefeffe
3ffff260: feefeffe feefeffe feefeffe feefeffe
3ffff270: feefeffe feefeffe feefeffe feefeffe
3ffff280: feefeffe feefeffe feefeffe feefeffe
3ffff290: feefeffe feefeffe feefeffe feefeffe
3ffff2a0: feefeffe feefeffe feefeffe feefeffe
3ffff2b0: feefeffe feefeffe feefeffe feefeffe
3ffff2c0: feefeffe feefeffe feefeffe feefeffe
3ffff2d0: feefeffe feefeffe feefeffe feefeffe
3ffff2e0: feefeffe feefeffe feefeffe feefeffe
3ffff2f0: feefeffe feefeffe feefeffe feefeffe
3ffff300: feefeffe feefeffe feefeffe feefeffe
3ffff310: feefeffe feefeffe feefeffe feefeffe
3ffff320: feefeffe feefeffe feefeffe feefeffe
3ffff330: feefeffe feefeffe feefeffe feefeffe
3ffff340: feefeffe feefeffe feefeffe feefeffe
3ffff350: feefeffe feefeffe feefeffe feefeffe
3ffff360: feefeffe feefeffe feefeffe feefeffe
3ffff370: feefeffe feefeffe feefeffe feefeffe
3ffff380: feefeffe feefeffe feefeffe feefeffe
3ffff390: feefeffe feefeffe feefeffe feefeffe
3ffff3a0: feefeffe feefeffe feefeffe feefeffe
3ffff3b0: feefeffe feefeffe feefeffe feefeffe
3ffff3c0: feefeffe feefeffe feefeffe feefeffe
3ffff3d0: feefeffe feefeffe feefeffe feefeffe
3ffff3e0: feefeffe feefeffe feefeffe feefeffe
3ffff3f0: feefeffe feefeffe feefeffe feefeffe
3ffff400: feefeffe feefeffe feefeffe feefeffe
3ffff410: feefeffe feefeffe feefeffe feefeffe
3ffff420: feefeffe feefeffe feefeffe feefeffe
3ffff430: feefeffe feefeffe feefeffe feefeffe
3ffff440: feefeffe feefeffe feefeffe feefeffe
3ffff450: feefeffe feefeffe feefeffe feefeffe
3ffff460: feefeffe feefeffe feefeffe feefeffe
3ffff470: feefeffe feefeffe feefeffe feefeffe
3ffff480: feefeffe feefeffe feefeffe feefeffe
3ffff490: feefeffe feefeffe feefeffe feefeffe
3ffff4a0: feefeffe feefeffe feefeffe feefeffe
3ffff4b0: feefeffe feefeffe feefeffe feefeffe
3ffff4c0: feefeffe feefeffe feefeffe feefeffe
3ffff4d0: feefeffe feefeffe feefeffe feefeffe
3ffff4e0: feefeffe feefeffe feefeffe feefeffe
3ffff4f0: feefeffe feefeffe feefeffe feefeffe
3ffff500: feefeffe feefeffe feefeffe feefeffe
3ffff510: feefeffe feefeffe feefeffe feefeffe
3ffff520: feefeffe feefeffe feefeffe feefeffe
3ffff530: feefeffe feefeffe feefeffe feefeffe
3ffff540: feefeffe feefeffe feefeffe feefeffe
3ffff550: feefeffe feefeffe feefeffe feefeffe
3ffff560: feefeffe feefeffe feefeffe feefeffe
3ffff570: feefeffe feefeffe feefeffe feefeffe
3ffff580: feefeffe feefeffe feefeffe feefeffe
3ffff590: feefeffe feefeffe feefeffe feefeffe
3ffff5a0: feefeffe feefeffe feefeffe feefeffe
3ffff5b0: feefeffe feefeffe feefeffe feefeffe
3ffff5c0: feefeffe feefeffe feefeffe feefeffe
3ffff5d0: feefeffe feefeffe feefeffe feefeffe
3ffff5e0: feefeffe feefeffe feefeffe feefeffe
3ffff5f0: feefeffe feefeffe feefeffe feefeffe
3ffff600: feefeffe feefeffe feefeffe feefeffe
3ffff610: feefeffe feefeffe feefeffe feefeffe
3ffff620: feefeffe feefeffe feefeffe feefeffe
3ffff630: feefeffe feefeffe feefeffe feefeffe
3ffff640: feefeffe feefeffe feefeffe feefeffe
3ffff650: feefeffe feefeffe feefeffe feefeffe
3ffff660: feefeffe feefeffe feefeffe feefeffe
3ffff670: feefeffe feefeffe feefeffe feefeffe
3ffff680: feefeffe feefeffe feefeffe feefeffe
3ffff690: feefeffe feefeffe feefeffe feefeffe
3ffff6a0: feefeffe feefeffe feefeffe feefeffe
3ffff6b0: feefeffe feefeffe feefeffe feefeffe
3ffff6c0: feefeffe feefeffe feefeffe feefeffe
3ffff6d0: feefeffe feefeffe feefeffe feefeffe
3ffff6e0: feefeffe feefeffe feefeffe feefeffe
3ffff6f0: feefeffe feefeffe feefeffe feefeffe
3ffff700: feefeffe feefeffe feefeffe feefeffe
3ffff710: feefeffe feefeffe feefeffe feefeffe
3ffff720: feefeffe feefeffe feefeffe feefeffe
3ffff730: feefeffe feefeffe feefeffe feefeffe
3ffff740: feefeffe feefeffe feefeffe feefeffe
3ffff750: feefeffe feefeffe feefeffe feefeffe
3ffff760: feefeffe feefeffe feefeffe feefeffe
3ffff770: feefeffe feefeffe feefeffe feefeffe
3ffff780: feefeffe feefeffe feefeffe feefeffe
3ffff790: feefeffe feefeffe feefeffe feefeffe
3ffff7a0: feefeffe feefeffe feefeffe feefeffe
3ffff7b0: feefeffe feefeffe feefeffe feefeffe
3ffff7c0: feefeffe feefeffe feefeffe feefeffe
3ffff7d0: feefeffe feefeffe feefeffe feefeffe
3ffff7e0: feefeffe feefeffe feefeffe feefeffe
3ffff7f0: feefeffe feefeffe feefeffe feefeffe
3ffff800: feefeffe feefeffe feefeffe feefeffe
3ffff810: feefeffe feefeffe feefeffe feefeffe
3ffff820: feefeffe feefeffe feefeffe feefeffe
3ffff830: feefeffe feefeffe feefeffe feefeffe
3ffff840: feefeffe feefeffe feefeffe feefeffe
3ffff850: feefeffe feefeffe feefeffe feefeffe
3ffff860: feefeffe feefeffe feefeffe feefeffe
3ffff870: feefeffe feefeffe feefeffe feefeffe
3ffff880: feefeffe feefeffe feefeffe feefeffe
3ffff890: feefeffe feefeffe feefeffe feefeffe
3ffff8a0: feefeffe feefeffe feefeffe feefeffe
3ffff8b0: feefeffe feefeffe feefeffe feefeffe
3ffff8c0: feefeffe feefeffe feefeffe feefeffe
3ffff8d0: feefeffe feefeffe feefeffe feefeffe
3ffff8e0: feefeffe feefeffe feefeffe feefeffe
3ffff8f0: feefeffe feefeffe feefeffe feefeffe
3ffff900: feefeffe feefeffe feefeffe feefeffe
3ffff910: feefeffe feefeffe feefeffe feefeffe
3ffff920: feefeffe feefeffe feefeffe feefeffe
3ffff930: feefeffe feefeffe feefeffe feefeffe
3ffff940: feefeffe feefeffe feefeffe feefeffe
3ffff950: feefeffe feefeffe feefeffe feefeffe
3ffff960: feefeffe feefeffe feefeffe feefeffe
3ffff970: feefeffe feefeffe feefeffe feefeffe
3ffff980: feefeffe feefeffe feefeffe feefeffe
3ffff990: feefeffe feefeffe feefeffe feefeffe
3ffff9a0: feefeffe feefeffe feefeffe feefeffe
3ffff9b0: feefeffe feefeffe feefeffe feefeffe
3ffff9c0: feefeffe feefeffe feefeffe feefeffe
3ffff9d0: feefeffe feefeffe feefeffe feefeffe
3ffff9e0: feefeffe feefeffe feefeffe feefeffe
3ffff9f0: feefeffe feefeffe feefeffe feefeffe
3ffffa00: feefeffe feefeffe feefeffe feefeffe
3ffffa10: feefeffe feefeffe feefeffe feefeffe
3ffffa20: feefeffe feefeffe feefeffe feefeffe
3ffffa30: feefeffe feefeffe feefeffe feefeffe
3ffffa40: feefeffe feefeffe feefeffe feefeffe
3ffffa50: feefeffe feefeffe feefeffe feefeffe
3ffffa60: feefeffe feefeffe feefeffe feefeffe
3ffffa70: feefeffe feefeffe feefeffe feefeffe
3ffffa80: feefeffe feefeffe feefeffe feefeffe
3ffffa90: feefeffe feefeffe feefeffe feefeffe
3ffffaa0: feefeffe feefeffe feefeffe feefeffe
3ffffab0: feefeffe feefeffe feefeffe feefeffe
3ffffac0: feefeffe feefeffe feefeffe feefeffe
3ffffad0: feefeffe feefeffe feefeffe feefeffe
3ffffae0: feefeffe feefeffe feefeffe feefeffe
3ffffaf0: feefeffe feefeffe feefeffe feefeffe
3ffffb00: feefeffe feefeffe feefeffe feefeffe
3ffffb10: feefeffe feefeffe feefeffe feefeffe
3ffffb20: feefeffe feefeffe feefeffe feefeffe
3ffffb30: feefeffe feefeffe feefeffe feefeffe
3ffffb40: feefeffe feefeffe feefeffe feefeffe
3ffffb50: feefeffe 00000000 feefeffe 000000ff
3ffffb60: 00000073 00000001 4010520e 3ffee598
3ffffb70: 3ffee520 feefeffe feefeffe feefeffe
3ffffb80: feefeffe feefeffe 4023c12b 00000001
3ffffb90: 40104e13 3ffee598 3ffea521 00000008
3ffffba0: 4023c17a 40104786 3ffee598 00000001
3ffffbb0: 4023c286 3ffedb40 3fff57b4 3ffedb40
3ffffbc0: 40104d1d 3ffee598 3ffedb40 00000002
3ffffbd0: 0000007f 4023b22b 3ffedb40 3fff70a0
3ffffbe0: 40104fd8 00080000 7fffffff 00000001
3ffffbf0: 401030ff 00000000 3ffea521 00000008
3ffffc00: 00000000 3ffedb68 53002200 4000050c
3ffffc10: 3fffc278 40102f80 3fffc200 00000022
3ffffc20: 3ffffc30 00000000 00000020 40101eba
3ffffc30: 4022e300 00000030 00000010 ffffffff
3ffffc40: 3fff6f36 3ffeeff8 00000000 0000c001
3ffffc50: 0000005a 00000001 ffff7f72 0000888e
3ffffc60: ffffff80 00000080 00000002 3ffeeff8
3ffffc70: 3fff57b4 3fff7084 3fff7084 00000030
3ffffc80: 00000002 00000000 00000020 40101eba
3ffffc90: 3ffea3d2 4023b22b 3ffedb40 3fff70a0
3ffffca0: 00000000 4022e4bf 3ffeeff8 3fff51a4
3ffffcb0: 00000000 00000002 00000000 3ffedb40
3ffffcc0: 40104211 00040000 4023c12b 00000000
3ffffcd0: ffffffff 00000000 3ffea521 00000000
3ffffce0: 4023c17a 3ffedb68 3fff57b4 00000001
3ffffcf0: 4023c286 3ffedb68 3fff57b4 3ffedb68
3ffffd00: 00000002 00000000 00000020 40101eba
3ffffd10: 3ffea3d2 4023b22b 3ffedb68 3fff7084
3ffffd20: 00000000 4022e4bf 3ffeeff8 ffffffff
3ffffd30: 00000000 00000002 00000000 3ffedb68
3ffffd40: 3fff6f36 4010594b 3fff7084 3fff5bac
3ffffd50: 3fff6ef4 00000080 00000030 3fff556c
3ffffd60: 3fff5578 40220815 3fff51a4 3fff5bac
3ffffd70: 3fff6f36 0000005a 3fffc200 00000022
3ffffd80: 3ffffd90 00080000 7fffffff 00000000
3ffffd90: 3fff55a4 3fff556c 3fff6ef4 40220a97
3ffffda0: 40000000 3fff556c 3fff6ef4 40220e88
3ffffdb0: 3fff5464 3fff6ba8 3fff556c 40229170
3ffffdc0: 3fff6ba4 00000000 00000010 3fff5468
3ffffdd0: 3fff55a4 00000009 3fff556c 40228554
3ffffde0: 00000006 3fff550c 00000284 40101300
3ffffdf0: 00000006 3fff6ef4 3fff6ba4 00000218
3ffffe00: 3fff6ba4 00000000 00000010 3fff6ef4
3ffffe10: 3fff6ef4 3fff5578 3fff556c 40228758
3ffffe20: 00000000 00000218 00000284 40101300
3ffffe30: 3fff6f44 3fff6b08 3fff556c 40229170
3ffffe40: 00000000 00000000 00000000 40220f18
3ffffe50: 00000014 3fff5570 000000ff 00000000
3ffffe60: 00000011 3fff550c 00000000 3fff4a15
3ffffe70: 00000011 00000001 0000000c 3fff6ef4
3ffffe80: 3fff6b08 3fff6ef4 3fff6b04 40229206
3ffffe90: 3fff556c 00000000 00000000 40229d4b
3ffffea0: 00000000 00000000 4bc6a7f0 402251b8
3ffffeb0: 3fff556c 00000030 0000009c 40101300
3ffffec0: 3fff556c 3fff5570 0000007b 3fff6f58
3ffffed0: 3fff5144 00000469 00000469 3fff6b08
3ffffee0: 0000007b 3fff6ef4 3fff6b04 4022520f
3ffffef0: 40105a5a 009db11f 00000064 402252a8
3fffff00: 40105b16 3ffef6b8 009db11f 00000000
3fffff10: 40105ce8 009dbd5a 3fff5044 00000000
3fffff20: 3ffef6e0 3fff5044 3ffe858c 3fff5044
3fffff30: 00000065 3fff4f68 402157e4 3fffefa0
3fffff40: 3fff5044 00000065 0000000a 40201d4f
3fffff50: 00000065 0000003c 3fff4a10 40213609
3fffff60: 3ffefcf8 00000000 3fff4a10 402136a7
3fffff70: 3ffefcf8 00000000 3fff4a9c 40209b62
3fffff80: 4020b070 feefeffe 40217b94 40217b74
3fffff90: 00000000 00000000 00000001 40215805
3fffffa0: 3fffdad0 00000000 3fff4f38 40215890
<<<stack<<<

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v951aeffa
~ld

decoded:

Exception 9: LoadStoreAlignmentCause: Load or store to an unaligned address
Decoding 130 results
0x40105abc: ets_timer_setfn at ?? line ?
0x40105ce8: ets_timer_arm_new at ?? line ?
0x40201d44: delay at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_wiring.c line 46
0x40214050: TwoWire::endTransmission() at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\libraries\Wire/Wire.cpp line 273
0x40214281: aaaExtEEPROM::write(unsigned long, unsigned char*, unsigned int) at c:\PlatformIO_Projects\aaaHC5_Gateway/lib\aaaExtEEPROM/aaaExtEEPROM.cpp line 189
0x4020e9f6: AsyncWebSocketClient::text(char const*, unsigned int) at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\tools\sdk\libc\xtensa-lx106-elf\include/sys/pgmspace.h line 62
0x4020814c: saveNodePairingData() at c:\PlatformIO_Projects\aaaHC5_Gateway/src/main.cpp line 142
0x4020a936: onWsEvent at c:\PlatformIO_Projects\aaaHC5_Gateway/src/main.cpp line 820
0x402187b8: AsyncServer::setNoDelay(bool) at ?? line ?
0x4021ecee: __ssputs_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 233
0x4021eed8: _svfprintf_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 531
0x40105ba5: ets_timer_disarm at ?? line ?
0x4024665f: SHA1Transform at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\libraries\Hash\src\sha1/sha1.c line 87
0x4021ecee: __ssputs_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 233
0x4021a8a4: _printf_i at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf_i.c line 194 (discriminator 1)
0x4021ecee: __ssputs_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 233
0x4021ec28: __ssputs_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 180
0x4021a9a4: _printf_i at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf_i.c line 244
0x4021ecee: __ssputs_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 233
0x40211cf8: String::length() const at c:\PlatformIO_Projects\aaaHC5_Gateway/.piolibdeps\ESP Async WebServer_ID306\src/WebResponses.cpp line 502
: (inlined by) AsyncWebServerResponse::_assembleHead(unsigned char) at c:\PlatformIO_Projects\aaaHC5_Gateway/.piolibdeps\ESP Async WebServer_ID306\src/WebResponses.cpp line 155
0x4021eed8: _svfprintf_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/nano-vfprintf.c line 531
0x40105ba5: ets_timer_disarm at ?? line ?
0x4023c12b: pp_attach at ?? line ?
0x4022e378: ieee80211_output_pbuf at ?? line ?
0x4022e356: ieee80211_output_pbuf at ?? line ?
0x4023c12b: pp_attach at ?? line ?
0x4023c17a: pp_attach at ?? line ?
0x4023c286: pp_attach at ?? line ?
0x40101eba: pp_post at ?? line ?
0x4023b22b: ppTxPkt at ?? line ?
0x4022e4bf: ieee80211_output_pbuf at ?? line ?
0x40101eba: pp_post at ?? line ?
0x4023c12b: pp_attach at ?? line ?
0x4023c17a: pp_attach at ?? line ?
0x40101eba: pp_post at ?? line ?
0x401052c3: lmacRxDone at ?? line ?
0x40101eba: pp_post at ?? line ?
0x40102bd1: trc_NeedRTS at ?? line ?
0x40102da6: trc_NeedRTS at ?? line ?
0x401031e6: wDev_ProcessFiq at ?? line ?
0x40102f80: wDev_ProcessFiq at ?? line ?
0x402187a8: AsyncServer::setNoDelay(bool) at ?? line ?
0x4020b0ba: onWsEvent(AsyncWebSocket*, AsyncWebSocketClient*, AwsEventType, void*, unsigned char*, unsigned int) at c:\PlatformIO_Projects\aaaHC5_Gateway/src/main.cpp line 1003
0x40217b8a: std::_Function_handler ::_M_invoke(std::_Any_data const&, AsyncWebSocket*, AsyncWebSocketClient*, AwsEventType, void*, unsigned char*, unsigned int) at c:\users\user\appdata\roaming\spb_data.platformio\packages\toolchain-xtensa\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x40217fb9: AsyncWebSocket::_handleEvent(AsyncWebSocketClient*, AwsEventType, void*, unsigned char*, unsigned int) at c:\PlatformIO_Projects\aaaHC5_Gateway/.piolibdeps\ESP Async WebServer_ID306\src/AsyncWebSocket.cpp line 866
0x4020ee51: AsyncWebSocketClient::_onData(void*, unsigned int) at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\tools\sdk\libc\xtensa-lx106-elf\include/sys/pgmspace.h line 62
0x40100a34: millis at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_wiring.c line 183
0x4020ee7d: _M_invoke at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\tools\sdk\libc\xtensa-lx106-elf\include/sys/pgmspace.h line 62
0x402176f8: AsyncClient::_recv(tcp_pcb*, pbuf*, long) at c:\PlatformIO_Projects\aaaHC5_Gateway/.piolibdeps\ESPAsyncTCP_ID305\src/ESPAsyncTCP.cpp line 670
0x4021773c: AsyncClient::_s_recv(void*, tcp_pcb*, pbuf*, long) at c:\PlatformIO_Projects\aaaHC5_Gateway/.piolibdeps\ESPAsyncTCP_ID305\src/ESPAsyncTCP.cpp line 670
0x402242e4: tcp_input at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_in.c line 501 (discriminator 1)
0x40101300: malloc at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266\umm_malloc/umm_malloc.c line 1673
0x40220000: __sfvwrite_r at /home/earle/src/esp-quick-toolchain/arena/newlib-install/xtensa-lx106-elf/newlib/libc/stdio/../../../../../../dl/newlib-xtensa/newlib/libc/stdio/fvwrite.c line 236
0x40228f55: ip4_input at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 710
0x401010b4: _umm_free at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266\umm_malloc/umm_malloc.c line 1300
0x40220e01: ethernet_input_LWIP2 at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 188
0x40220c37: esp2glue_ethernet_input at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c line 430
0x40245b4e: ethernet_input at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 363
0x40245b5f: ethernet_input at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 371
0x4023afc3: ppPeocessRxPktHdr at ?? line ?
0x402412a3: ets_snprintf at ?? line ?
0x401053cc: call_user_start_local at ?? line ?
0x401053d2: call_user_start_local at ?? line ?
0x4010000d: call_user_start at ?? line ?
0x40101584: cont_ret at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/cont.S line 142
0x40101525: cont_continue at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/cont.S line 51
0x4010520e: lmacTxFrame at ?? line ?
0x4023c12b: pp_attach at ?? line ?
0x40104e13: lmacMSDUAged at ?? line ?
0x4023c17a: pp_attach at ?? line ?
0x40104786: lmacRecycleMPDU at ?? line ?
0x4023c286: pp_attach at ?? line ?
0x40104d1d: lmacMSDUAged at ?? line ?
0x4023b22b: ppTxPkt at ?? line ?
0x40104fd8: lmacProcessAckTimeout at ?? line ?
0x401030ff: wDev_ProcessFiq at ?? line ?
0x40102f80: wDev_ProcessFiq at ?? line ?
0x40101eba: pp_post at ?? line ?
0x4022e300: ieee80211_output_pbuf at ?? line ?
0x40101eba: pp_post at ?? line ?
0x4023b22b: ppTxPkt at ?? line ?
0x4022e4bf: ieee80211_output_pbuf at ?? line ?
0x40104211: lmacProcessTXStartData at ?? line ?
0x4023c12b: pp_attach at ?? line ?
0x4023c17a: pp_attach at ?? line ?
0x4023c286: pp_attach at ?? line ?
0x40101eba: pp_post at ?? line ?
0x4023b22b: ppTxPkt at ?? line ?
0x4022e4bf: ieee80211_output_pbuf at ?? line ?
0x4010594b: wdt_feed at ?? line ?
0x40220815: glue2esp_linkoutput at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c line 746
0x40220a97: new_linkoutput at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c line 271
0x40220e88: ethernet_output at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c line 312
0x40229170: ip4_output_if_opt_src at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 1007
0x40228554: etharp_output_to_arp_index at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c line 770
0x40101300: malloc at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266\umm_malloc/umm_malloc.c line 1673
0x40228758: etharp_output_LWIP2 at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/etharp.c line 885
0x40101300: malloc at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266\umm_malloc/umm_malloc.c line 1673
0x40229170: ip4_output_if_opt_src at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 1007
0x40220f18: memp_malloc at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/memp.c line 176
0x40229206: ip4_output_if_src at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c line 833
0x40229d4b: ip_chksum_pseudo at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/inet_chksum.c line 542
0x402251b8: udp_sendto_if_src at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/udp.c line 1049
0x40101300: malloc at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266\umm_malloc/umm_malloc.c line 1673
0x4022520f: udp_sendto_if at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/udp.c line 1049
0x40105a5a: wdt_feed at ?? line ?
0x402252a8: udp_sendto at /home/gauchard/dev/esp8266/esp8266/tools/sdk/lwip2/builder/lwip2-src/src/core/udp.c line 1049
0x40105b16: ets_timer_setfn at ?? line ?
0x40105ce8: ets_timer_arm_new at ?? line ?
0x402157e4: esp_yield at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_main.cpp line 91
0x40201d4f: delay at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_wiring.c line 51
0x40213609: aaaNTPClient::forceUpdate() at c:\PlatformIO_Projects\aaaHC5_Gateway/lib\aaaNTPClient/aaaNTPClient.cpp line 50
0x402136a7: aaaNTPClient::update() at c:\PlatformIO_Projects\aaaHC5_Gateway/lib\aaaNTPClient/aaaNTPClient.cpp line 50
0x40209b62: loop at c:\PlatformIO_Projects\aaaHC5_Gateway/src/main.cpp line 567
0x4020b070: onWsEvent(AsyncWebSocket*, AsyncWebSocketClient*, AwsEventType, void*, unsigned char*, unsigned int) at c:\PlatformIO_Projects\aaaHC5_Gateway/src/main.cpp line 635
0x40217b94: std::_Function_base::_Base_manager ::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at c:\users\user\appdata\roaming\spb_data.platformio\packages\toolchain-xtensa\xtensa-lx106-elf\include\c++\4.8.2/functional line 1934
0x40217b74: std::_Function_handler ::_M_invoke(std::_Any_data const&, AsyncWebSocket*, AsyncWebSocketClient*, AwsEventType, void*, unsigned char*, unsigned int) at c:\users\user\appdata\roaming\spb_data.platformio\packages\toolchain-xtensa\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069
0x40215805: esp_schedule at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_main.cpp line 95
0x40215890: loop_wrapper at C:\users\user\appdata\roaming\spb_data.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_main.cpp line 125

is this somehow related to #5722 or to "trying to use yield/delay, or libs that use yield/delay, from inside async callbacks"?
This is not an async callback...

Thanks!

@devyte
Copy link
Collaborator

devyte commented Mar 3, 2019

Are you doing eeprom ops from an async server callback?

@mamama1
Copy link
Author

mamama1 commented Mar 3, 2019

lol well, yeah. never put it that way but as you're pointing it out now, and as I have just closed all VS Code windows and released the pressure from my brain, it is completely obvious.

may I slap myself now? :-D

won't this EVER work reliably or will this only be a problem if it takes too long?

is an async callback always an interrupt where I only should set flags?

edit: I feel stupid as sh** now. thanks for pointing me in the right direction.

@devyte
Copy link
Collaborator

devyte commented Mar 4, 2019

Closing due to user error.
Ref this .

Async callbacks exexute in the SYS context, and there are restrictions that apply. In general, blocking ops are a big NO, unless you know exactly what you're doing.
I suggest looking at scheduling your function, e.g. with Ticker. The scheduled api calls your function in the CONT context, as though it were part of the loop. In that case, you can yield/delay/etc.

@devyte devyte closed this as completed Mar 4, 2019
@mamama1
Copy link
Author

mamama1 commented Mar 4, 2019

i have now made a function processCallbacks() which is called in the loop and which looks in a vector of a "callback" called struct which contains stuff to do.
the vector is populated from the async callback. so far, no crashes. stupid me.

@devyte
Copy link
Collaborator

devyte commented Mar 4, 2019

You're reinventing the wheel, that's more or less what the scheduled functions do: when you schedule a function, it gets added to a container, then all functions in the container get called together with the next loop. Look at the scheduled functions api, I think that using it will simplify your code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants