Skip to main content
markb
Associate III
October 1, 2015
Question

SPWF01 Repeatable Hard Fault/crash

  • October 1, 2015
  • 14 replies
  • 1814 views
Posted on October 01, 2015 at 09:51

Hi,

I am broadcasting a small UDP packet once a second through the SPWF01 using

AT+S.SOCKON=192.168.1.255,55555,u and AT+S.SOCKW and that appears to work just fine but

if I access the SPWF01 web server at the same time to reload some web pages it often dies with a hard fault like this

+WIND:8:Hard Fault:TCPIP: r0 2C303035, r1 00000300, r2 00000000, r3 0000FFFF, r12 2000867C, lr 08022E25, pc 08022E3A, psr 61000000

Or the module may just crash, reboot, etc.

If I don't do the UDP broadcast, then the module appears reliable.

This is very bad as I need to be able to do the UDP broadcast so clients can find the device.

Cheers,

Mark

    This topic has been closed for replies.

    14 replies

    Gerardo GALLUCCI
    ST Employee
    October 1, 2015
    Posted on October 01, 2015 at 09:57

    AT+S.STS and AT&V dump please

    markb
    markbAuthor
    Associate III
    October 2, 2015
    Posted on October 02, 2015 at 08:56

    Hi, here are the dumps. The files being served via the HTTP server are:

    -rw-r--r-- 1 markb users 123132 Sep  1 09:39 img.css

    -rw-r--r-- 1 markb users 202322 Sep 30 08:48 img.js

    -rw-r--r-- 1 markb users  21981 Sep 28 10:21 index.html

    So you can see it is sending about 340K to the web browser so it takes a few seconds. During that time, if I send a UDP packet

    using AT+SOCKW the module often crashes.

    # Status & Statistics:

    #  version = 150410-c2e37a3-SPWF01S

    #  reset_reason = 4

    #  conf_flag = 5

    #  system_uptime = 98

    #  system_sleeptime = 0

    #  gpio_enable = 0

    #  captiveportal = 0

    #  wifi_state = 10

    #  wifi_bssid = 74:EA:3A:BA:89:67

    #  wifi_aid = 3

    #  wifi_channelnum = 1

    #  wifi_sup_rate_mask = 0x003FFFCF

    #  wifi_bas_rate_mask = 0x0000000F

    #  wifi_chan_activity2 = 0x00000000

    #  wifi_max_tx_power = 18

    #  wifi_gf_mode = 0

    #  wifi_reg_country =

    #  wifi_dtim_period = 1

    #  wifi_sleeping = 0

    #  wifi_num_assoc = 0

    #  ip_ipaddr = 192.168.1.106

    #  ip_netmask = 255.255.255.0

    #  ip_gw = 192.168.1.250

    #  ip_dns = 192.168.1.250

    #  ip_sock_open = 1

    #  ip_sockd_port = 4000

    #  free_heap = 20544

    #  min_heap = 20400

    #  current_time = 98

    OK

    # Dumping All Configuration Keys:

    #  nv_manuf = ST

    #  nv_model = SPWF01SA1

    #  nv_serial = 2914D13607

    #  nv_wifi_macaddr = 00:80:E1:FF:D2:0C

    #  blink_led = 0

    #  wind_off_low = 0x00000000

    #  wind_off_medium = 0x00000000

    #  wind_off_high = 0x00000000

    #  user_desc = anonymous

    #  escape_seq = at+s.

    #  localecho1 = 0

    #  console1_speed = 115200

    #  console1_hwfc = 0

    #  console1_enabled = 1

    #  sleep_enabled = 0

    #  standby_enabled = 0

    #  standby_time = 10

    #  wifi_tx_msdu_lifetime = 0

    #  wifi_rx_msdu_lifetime = 0

    #  wifi_operational_mode = 0x00000011

    #  wifi_beacon_wakeup = 1

    #  wifi_beacon_interval = 100

    #  wifi_listen_interval = 0

    #  wifi_rts_threshold = 3000

    #  wifi_ssid = 43:4C:46:32:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    #  wifi_ssid_len = 4

    #  wifi_txfail_thresh = 5

    #  wifi_ht_mode = 0

    #  wifi_channelnum = 1

    #  wifi_opr_rate_mask = 0x00003FCF

    #  wifi_bas_rate_mask = 0x0000000F

    #  wifi_mode = 1

    #  wifi_auth_type = 0

    #  wifi_atim_window = 0

    #  wifi_powersave = 0

    #  wifi_tx_power = 18

    #  wifi_rssi_thresh = 0

    #  wifi_rssi_hyst = 0

    #  wifi_ap_idle_timeout = 120

    #  wifi_beacon_loss_thresh = 10

    #  wifi_priv_mode = 2

    #  wifi_wep_keys[0] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    #  wifi_wep_keys[1] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    #  wifi_wep_keys[2] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    #  wifi_wep_keys[3] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    #  wifi_wep_key_lens = 00:00:00:00

    #  wifi_wep_default_key = 0

    #  wifi_wpa_psk_raw = 0A:C9:1E:70:69:21:CE:16:3D:D4:F9:AE:DE:96:95:05:6D:B6:30:06:53:CF:47:6C:9A:C7:F0:A8:F3:D1:FB:73

    #  wifi_wpa_psk_text = ******

    #  ip_use_dhcp = 1

    #  ip_use_httpd = 1

    #  ip_mtu = 1500

    #  ip_hostname = iwm-FF-D2-0C

    #  ip_apdomainname = pb4.wifi

    #  ip_apredirect = index.html

    #  ip_ipaddr = 192.168.0.50

    #  ip_netmask = 255.255.255.0

    #  ip_gw = 192.168.0.1

    #  ip_dns = 172.31.12.1

    #  ip_http_get_recv_timeout = 3000

    #  ip_wait_timeout = 12000

    #  ip_dhcp_timeout = 20

    #  ip_sockd_timeout = 250

     

    OK

    Gerardo GALLUCCI
    ST Employee
    October 5, 2015
    Posted on October 05, 2015 at 15:57

    Hi Mark,

    I tried to reproduce the hardfault, but I don't see the error.

    Can I have your filesystem image/content of SOCKW?

    Thanks

    jerry

    markb
    markbAuthor
    Associate III
    October 5, 2015
    Posted on October 05, 2015 at 16:58

    Hi Jerry,

    You can find the image here:

    https://dl.dropboxusercontent.com/u/53627836/test.img

    Load index.html into your browser.

    Typical payload of the SOCKW would be a simple string like this:

    NAME@192.168.1.106:4000

    Cheers,

    Mark

    markb
    markbAuthor
    Associate III
    October 5, 2015
    Posted on October 05, 2015 at 17:24

    Jerry,

    One other thing I forgot to mention is that the module is also listening on TCP port 4000 (AT+S.SOCKD=4000) but

    at the time the crashes occur, no incoming connection has occurred.

    Cheers,

    Mark

    markb
    markbAuthor
    Associate III
    October 5, 2015
    Posted on October 05, 2015 at 17:45

    Yet another thing I forgot to mention is that the module is in ST mode connected to an AP.

    You may recall that UDP broadcast doesn't actually work when the module is in AP mode!

    Nickname3786_O
    Visitor II
    October 6, 2015
    Posted on October 06, 2015 at 10:46

    Hi Mark,

    I successfully reproduced the issue using exactly your use case:

    - module in STA

    - module listening on a TCP port but no incoming connection

    - module sends 1 packet (NAME@192.168.1.106:4000) per sec to an UDP server

    - external user continuously opens the index.html (uploaded the test.img)

    After a while, the hard fault has been observed. 

    We will investigate on it and we will give you a feedback asap.

    Cheers,

    Salvatore

    markb
    markbAuthor
    Associate III
    October 6, 2015
    Posted on October 06, 2015 at 11:31

    Glad to hear you have confirmed the problem.

    Cheers,

    Mark

    Gerardo GALLUCCI
    ST Employee
    October 6, 2015
    Posted on October 06, 2015 at 11:37

    Hi Mark,

    Faster than light, there is simple workaround also.

    Please try to reduce ip_wait_timeout variable (down to 1000). As a temporary workaround should be fine. Confirm please :)

    Tnx

    j

    ps: about UDP broadcast in miniAP, I suspect the problem is that miniAP is not a Router. However, it's under investigation...

    markb
    markbAuthor
    Associate III
    October 6, 2015
    Posted on October 06, 2015 at 12:07

    Sorry, setting ip_wait_timeout to 1000 didn't help. The module is still crashing when I reload index.html.