core dump problem



  • I was running a simple pymesh with 3 LoPy4s.

    I had encountered the kernel panic core dump guru meditation problem until I pycom.wifi_on_boot(False). This seemed to stop the devices from crashing.

    However, one of the devices crashed and I can't get to bootup properly. Below is the dump from when it crashes

    I've tried the following:

    • flashing the Expansion Board 3.1 with thefirmware expansion31_0.0.11.dfu

    • flashing the LoPy4 with the licensed version of the firmware LoPy4-1.20.1.r2

    • flashing the Expansion Board 3.1 with thefirmware expansion31_0.0.11.dfu

    • flashing the LoPy4 with using the most recent firmware from the PyCom firmware gui

    • I've also tried wiping the LoPy4 just using os.fsformat("/flash").

    After all doing all of those (and some combinations of the above), I still get the dump below.

    Further below I've attached the code that was running on the device when it was running. I haven't really changed much from the example online other than the following:

    1. turning wifi on boot to false
    2. sending a message to a node in the network

    The main.py code was running fairly well, so I'm confused!

    rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff8020,len:8
    load:0x3fff8028,len:2164
    load:0x4009fa00,len:19944
    entry 0x400a05e8
    MAC ok 3
    Settings: {'ble_api': True, 'autostart': True, 'MAC': 3, 'debug': 5, 'LoRa': {'sf': 7, 'region': 5, 'freq': 863000000, 'bandwidth': 2}, 'ble_name_prefix': 'PyGo ', 'Pymesh': {'key': '112233'}}
    Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
    Core 0 register dump:
    PC      : 0x40090fa8  PS      : 0x00060033  A0      : 0x40092c33  A1      : 0x3ffbb700
    A2      : 0x3ffc42bc  A3      : 0x7fffffff  A4      : 0x00050023  A5      : 0x00000000
    A6      : 0x3ffdd8c8  A7      : 0x00000000  A8      : 0x3ffc412c  A9      : 0x00000000
    A10     : 0x00000001  A11     : 0x3ffb4d38  A12     : 0x00000000  A13     : 0x00000005
    A14     : 0x3ffc4030  A15     : 0x3ffc4134  SAR     : 0x00000012  EXCCAUSE: 0x0000001c
    EXCVADDR: 0x0000000c  LBEG    : 0x400ec0c4  LEND    : 0x400ec103  LCOUNT  : 0x00000000
    
    Backtrace: 0x40090fa8:0x3ffbb700 0x40092c30:0x3ffbb720 0x40092be6:0x00000000
    
    Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
    Core 0 register dump:
    PC      : 0x400930fa  PS      : 0x00060033  A0      : 0x800926a5  A1      : 0x3ffbb3a0
    A2      : 0x3ffbb3f0  A3      : 0x3ffbb3c0  A4      : 0x00000020  A5      : 0x3ffc412c
    A6      : 0x00000002  A7      : 0x3ffbb800  A8      : 0x00000000  A9      : 0x3ffdf7c0
    A10     : 0x3ffbb408  A11     : 0x3ffc4134  A12     : 0x3ffdf7c0  A13     : 0x3ffe3130
    A14     : 0x00000001  A15     : 0x3ffbb6f0  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c
    EXCVADDR: 0x0000000c  LBEG    : 0x40098758  LEND    : 0x40098763  LCOUNT  : 0x00000000
    
    Backtrace: 0x400930fa:0x3ffbb3a0 0x400926a2:0x3ffbb3c0 0x40093fd1:0x3ffbb3f0 0x4009431e:0x3ffbb5c0 0x40093c36:0x3ffbb600 0x40093e8a:0x3ffbb620 0x4008395e:0x3ffbb640 0x40090fa5:0x3ffbb700 0x40092c30:0x3ffbb720 0x40092be6:0x00000000
    
    Re-entered core dump! Exception happened during core dump!
    Rebooting...
    ets Jun  8 2016 00:22:57
    
    import pycom
    import time
    from network import LoRa
    import time
    import socket
    
    pycom.wifi_on_boot(False)
    
    try:
        from pymesh_config import PymeshConfig
    except:
        from _pymesh_config import PymeshConfig
    
    try:
        from pymesh import Pymesh
    except:
        from _pymesh import Pymesh
    
    def new_message_cb(rcv_ip, rcv_port, rcv_data):
        ''' callback triggered when a new packet arrived '''
        #print('Incoming %d bytes from %s (port %d):' %
        #        (len(rcv_data), rcv_ip, rcv_port))
        #print(rcv_data)
        time.sleep(1)
    
        # user code to be inserted, to send packet to the designated Mesh-external interface
        for _ in range(3):
            pycom.rgbled(0x888888)
            time.sleep(.2)
            pycom.rgbled(0)
            time.sleep(.1)
        return
    
    pycom.heartbeat(False)
    
    # read config file, or set default values
    pymesh_config = PymeshConfig.read_config()
    
    #initialize Pymesh
    pymesh = Pymesh(pymesh_config, new_message_cb)
    
    mac = pymesh.mac()
    
    while not pymesh.is_connected():
        #print(pymesh.status_str())
        time.sleep(1)
    
    def new_br_message_cb(rcv_ip, rcv_port, rcv_data, dest_ip, dest_port):
        ''' callback triggered when a new packet arrived for the current Border Router,
        having destination an IP which is external from Mesh '''
        print('Incoming %d bytes from %s (port %d), to external IPv6 %s (port %d)' %
                (len(rcv_data), rcv_ip, rcv_port, dest_ip, dest_port))
        print(rcv_data)
    
        # user code to be inserted, to send packet to the designated Mesh-external interface
        # ...
        return
    
    while True:
        pymesh.send_mess(1, "msg from 3")
        time.sleep(10)
    


  • Dear Jim,

    I was running a simple pymesh with 3 LoPy4s.

    Unless you would be running Pymesh, you might be able to succeed following the same route as @sita within [1].

    So, if you don't absolutely depend on Pymesh, you might want to try one of our Dragonfly firmware builds [2]. Some have been successful mitigating spurious core panics with it.

    If core panics are still happening, I will be happy to receive respective core dumps from it. If you could share the MicroPython code it would even be better in order to reproduce the problem.

    With kind regards,
    Andreas.

    [1] https://forum.pycom.io/topic/5560/guru-meditation-error
    [2] https://community.hiveeyes.org/t/dragonfly-firmware-for-pycom-esp32/2746


Log in to reply
 

Pycom on Twitter