Hello,
I am modifying mqtt_simple example to send float over mqtt.
If I change %f to %d, it works without crash.
I have tried enable/disable FPU or increasing HEAP_MEM_POOL_SIZE in prj.conf but not working.
My workaround is to print %d.%d instead of %f. But any advice is appreciated.
2021-10-18T03:42:02.353Z DEBUG modem << [00:02:25.606,597] [1;31m<err> os: ***** USAGE FAULT *****[0m 2021-10-18T03:42:02.364Z DEBUG modem << [00:02:25.606,597] [1;31m<err> os: Stack overflow (context area not valid)[0m 2021-10-18T03:42:02.407Z DEBUG modem << [00:02:25.606,628] [1;31m<err> os: r0/a1: 0x200149f8 r1/a2: 0x000204fb r2/a3: 0x00000020[0m 2021-10-18T03:42:02.409Z DEBUG modem << [00:02:25.606,628] [1;31m<err> os: r3/a4: 0x20015b78 r12/ip: 0x2001cc98 r14/lr: 0x0002731b[0m 2021-10-18T03:42:02.413Z DEBUG modem << [00:02:25.606,628] [1;31m<err> os: xpsr: 0xfffffe00[0m 2021-10-18T03:42:02.417Z DEBUG modem << [00:02:25.606,628] [1;31m<err> os: s[ 0]: 0x00000000 s[ 1]: 0x00000000 s[ 2]: 0x00000000 s[ 3]: 0x00000000[0m 2021-10-18T03:42:02.466Z DEBUG modem << [00:02:25.606,658] [1;31m<err> os: s[ 4]: 0x00000000 s[ 5]: 0x00000000 s[ 6]: 0x00000000 s[ 7]: 0x00000000[0m 2021-10-18T03:42:02.469Z DEBUG modem << [00:02:25.606,658] [1;31m<err> os: s[ 8]: 0x00000000 s[ 9]: 0x00000000 s[10]: 0x00000003 s[11]: 0x00000000[0m 2021-10-18T03:42:02.472Z DEBUG modem << [00:02:25.606,658] [1;31m<err> os: s[12]: 0x00000000 s[13]: 0x00000000 s[14]: 0x00000000 s[15]: 0x00000000[0m 2021-10-18T03:42:02.474Z DEBUG modem << [00:02:25.606,658] [1;31m<err> os: fpscr: 0x00000066[0m 2021-10-18T03:42:02.476Z DEBUG modem << [00:02:25.606,689] [1;31m<err> os: Faulting instruction address (r15/pc): 0x00000020[0m 2021-10-18T03:42:02.480Z DEBUG modem << [00:02:25.606,689] [1;31m<err> os: >>> ZEPHYR FATAL ERROR 2: Stack overflow on CPU 0[0m 2021-10-18T03:42:02.483Z DEBUG modem << [00:02:25.606,689] [1;31m<err> os: Current thread: 0x20015b78 (unknown)[0m 2021-10-18T03:42:02.484Z DEBUG modem << [00:02:25.711,181] [1;31m<err> os: Halting system[0m
Call stack: F00EFF7F bl 0x000216B4 <sniprintf> F000FB51 bl 0x00021DA4 <_svfprintf_r> F7FFF827 bl 0x00020FB4 <_printf_float> F006FA31 bl 0x00027530 <__cvt> F7EAF972 bl 0x00011868 <_dtoa_r> B099 sub sp, sp, #0x64 SECTION_SUBSEC_FUNC(TEXT,__fault,z_arm_exc_spurious) mrs r0, MSP mrs r1, PSP push {r0, lr}
int err; char buf[150]; int len; len = snprintf(buf, sizeof(buf), "{" "\"pressure\":%f" "}", pressure); if (len < 0) { LOG_ERR("Failed to create ALT cloud message"); return false; } err = data_publish(&client, MQTT_QOS_1_AT_LEAST_ONCE, buf, len);