Hi,
My code publish data to MQTT Server thru TinyGSM.
mqttcl->publish(buf,(const uint8_t *)data->cypherbuf_buf,pl,false)
However, it throw this error:Panic core_esp8266_main.cpp:133 __yield
I guess it's because there's a yield which is somehow forbidden.
Stream::readBytesUntil(char, char, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/Stream.cpp line 233*
I tried to move the publishing function to system_os_task but still same error.
Any suggestion?
Here's my crash log:
Decoding stack results
0x4020e797: std::_Function_base::_Base_manager ::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation) at /Users/chamroeun/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/functional line 1954
0x401007d6: millis() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring.cpp line 188
0x402110d9: __yield() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 135
0x4020fc0f: Stream::timedRead() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/Stream.cpp line 39
0x4020ef3c: std::_Function_handler ::_M_invoke(const std::_Any_data &, unsigned int &&) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 423
0x4020fe09: Stream::readBytesUntil(char, char*, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/Stream.cpp line 233
0x401007d6: millis() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring.cpp line 188
0x40202247: TinyGsmModem ::streamGetIntBefore(char) at /Users/chamroeun/Documents/Arduino/libraries/TinyGSM/src/TinyGsmModem.tpp line 307
0x40202da3: TinyGsmSim800::modemGetAvailable(unsigned char) at /Users/chamroeun/Documents/Arduino/libraries/TinyGSM/src/TinyGsmClientSIM800.h line 609
0x4020f324: HardwareSerial::write(unsigned char const*, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/HardwareSerial.h line 164
0x4020f330: HardwareSerial::write(unsigned char const*, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/HardwareSerial.h line 165
0x402064a1: TinyGsmTCP ::maintainImpl() at /Users/chamroeun/Documents/Arduino/libraries/TinyGSM/src/TinyGsmTCP.tpp line 330
0x401007d6: millis() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring.cpp line 188
0x40206549: TinyGsmTCP ::GsmClient::available() at /Users/chamroeun/Documents/Arduino/libraries/TinyGSM/src/TinyGsmTCP.tpp line 151
0x40212d5e: TinyGsmTCP ::GsmClient::connected() at /Users/chamroeun/Documents/Arduino/libraries/TinyGSM/src/TinyGsmTCP.tpp line 253
0x40212c38: PubSubClient::connected() at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/PubSubClient.cpp line 694
0x402015d0: PubSubClient::publish(char const*, unsigned char const*, unsigned int, bool) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/PubSubClient.cpp line 454
0x4021335c: Print::write(char) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/Print.h line 75
0x40239741: mqtt_if_output(netif*, pbuf*, ip_addr_t const*) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqttif.cpp line 208
0x4010113b: free(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 398
0x40100acc: vPortFree(void*, char const*, int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/heap.cpp line 308
0x40226b00: ip4_output_if_opt_src at core/ipv4/ip4.c line 1764
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x401009c1: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/interrupts.h line 29
0x40226b48: ip4_output_if_opt at core/ipv4/ip4.c line 1577
0x40226b6e: ip4_output_if at core/ipv4/ip4.c line 1550
0x40227703: ip_chksum_pseudo at core/inet_chksum.c line 395
0x40222b3a: tcp_output at core/tcp_out.c line 1361
0x40221e25: tcp_create_segment at core/tcp_out.c line 190
0x4022051e: tcp_input at core/tcp_in.c line 771
0x401007d6: millis() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring.cpp line 188
0x4022689e: ip4_input at core/ipv4/ip4.c line 1467
0x402397be: mqtt_if_Task(ETSEvent*) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqttif.cpp line 92
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x401009e0: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 172
0x401009c1: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/interrupts.h line 29
0x401009c1: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/interrupts.h line 29
0x40100904: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 135
0x4020d860: esp8266::MDNSImplementation::MDNSResponder::_udpAppendBuffer(unsigned char const*, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266mDNS/src/LEAmDNS_Transfer.cpp line 1096
0x4020d88e: esp8266::MDNSImplementation::MDNSResponder::_udpAppend8(unsigned char) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266mDNS/src/LEAmDNS_Transfer.cpp line 1112
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x4020d9d1: esp8266::MDNSImplementation::MDNSResponder::_write8(unsigned char, esp8266::MDNSImplementation::MDNSResponder::stcMDNSSendParameter&) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266mDNS/src/LEAmDNS_Transfer.cpp line 1254
0x4020dc0d: esp8266::MDNSImplementation::MDNSResponder::_writeMDNSHostDomain(char const*, bool, esp8266::MDNSImplementation::MDNSResponder::stcMDNSSendParameter&) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266mDNS/src/LEAmDNS_Transfer.cpp line 1382
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x40100734: ets_post(uint8, ETSSignal, ETSParam) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x401009e0: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 172
0x401009c1: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/interrupts.h line 29
0x401009e0: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 172
0x40100904: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 135
0x40101173: malloc(size_t) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 552
0x40101170: malloc(size_t) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 552
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x401009e0: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 172
0x401009c1: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/interrupts.h line 29
0x401004aa: SoftwareSerial::rxBitISR(SoftwareSerial*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/SoftwareSerial/src/SoftwareSerial.cpp line 509
0x401009e0: interrupt_handler(void*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_wiring_digital.cpp line 172
0x40238282: crypto_core_salsa20_tweet at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/tweetnacl.c line 133
0x4023839a: crypto_stream_salsa20_tweet_xor at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/tweetnacl.c line 165
0x40238464: crypto_stream_xsalsa20_tweet_xor at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/tweetnacl.c line 187
0x40101170: malloc(size_t) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/umm_malloc/umm_malloc.cpp line 552
0x402387d9: crypto_secretbox_xsalsa20poly1305_tweet_open at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/tweetnacl.c line 281
0x402275f8: mem_malloc at core/mem.c line 210
0x402210ac: pbuf_alloc_LWIP2 at core/pbuf.c line 284
0x4020f330: HardwareSerial::write(unsigned char const*, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/HardwareSerial.h line 165
0x4020f324: HardwareSerial::write(unsigned char const*, unsigned int) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/HardwareSerial.h line 164
0x40239920: mqtt_if_input(char const*, unsigned int, unsigned char const*, unsigned int) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqttif.cpp line 274
0x40100734: ets_post(uint8, ETSSignal, ETSParam) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x40239952: mqtt_if_input(char const*, unsigned int, unsigned char const*, unsigned int) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqttif.cpp line 285
0x4023986e: mqtt_if_input(char const*, unsigned int, unsigned char const*, unsigned int) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqttif.cpp line 238
0x40100734: ets_post(uint8, ETSSignal, ETSParam) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x402110bf: __yield() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_features.h line 92
0x40211104: optimistic_yield(uint32_t) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 151
0x402097ed: WiFiServer::available(unsigned char*) at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi/src/WiFiServer.cpp line 140
0x40201894: PubSubClient::loop() at /Users/chamroeun/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/functional line 2464
0x40206549: TinyGsmTCP ::GsmClient::available() at /Users/chamroeun/Documents/Arduino/libraries/TinyGSM/src/TinyGsmTCP.tpp line 151
0x40206ddd: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h line 311
0x402071ab: mqtt_loop(mqtt_if_data*) at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqttif.cpp line 337
0x40206fd8: loop() at /Users/chamroeun/Documents/Arduino/mqtt_vpn_webserver_tinygsm/mqtt_vpn_webserver_tinygsm.ino line 280
0x402111ac: loop_wrapper() at /Users/chamroeun/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 197