Hello,
when writing content onto the CDC-ACM interface of the nrf52840, I sooner or later always end up in a Segmentation fault.
I'm on nRF52840 and using the SDK v16.
I'm writing the string "ABCDEFGHIJKLMNOPQRSTOVWXYZ" - per byte, using app_usbd_cdc_acm_write(&m_app_cdc_acm, &byte, 1); -
looping through the string.
The Segmentation fault happens in total different scenarios with different code and structures.
What's always the same though is, that my debugger shows it happening in:
Program received signal SIGSEGV, Segmentation fault.
0x0002786e in nrf_log_backend_flush (warning: while parsing target memory map (at line 1): Required element <memory> is missing
p_backend=0x1)
at ../../../../../../components/libraries/log/nrf_log_backend_interface.h:235
235 p_backend->p_api->flush(p_backend);
while the backtrace is an infinite scrolling of:
#0 0x0002786e in nrf_log_backend_flush (p_backend=0x1) at ../../../../../../components/libraries/log/nrf_log_backend_interface.h:235
#1 nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:895
#2 0x000277be in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:556
#3 std_n (args=0x0, nargs=0, p_str=0x3606c "Backends flushed", severity_mid=393218) at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:562
#4 nrf_log_frontend_std_0 (severity_mid=393218, p_str=p_str@entry=0x3606c "Backends flushed") at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:573
#5 0x0002788e in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:898
#6 0x000277be in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:556
#7 std_n (args=0x0, nargs=0, p_str=0x3606c "Backends flushed", severity_mid=393218) at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:562
#8 nrf_log_frontend_std_0 (severity_mid=393218, p_str=p_str@entry=0x3606c "Backends flushed") at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:573
#9 0x0002788e in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:898
#10 0x000277be in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:556
#11 std_n (args=0x0, nargs=0, p_str=0x3606c "Backends flushed", severity_mid=393218) at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:562
#12 nrf_log_frontend_std_0 (severity_mid=393218, p_str=p_str@entry=0x3606c "Backends flushed") at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:573s
#13 0x0002788e in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:898
#14 0x000277be in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:556
#15 std_n (args=0x0, nargs=0, p_str=0x3606c "Backends flushed", severity_mid=393218) at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:562
#16 nrf_log_frontend_std_0 (severity_mid=393218, p_str=p_str@entry=0x3606c "Backends flushed") at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:573
#17 0x0002788e in nrf_log_frontend_dequeue () at ../../../../../../components/libraries/log/src/nrf_log_frontend.c:898
[..]
I'm happy to create and provide a minimal test case, however the always same, yet seemingly unrelated backtrace (nrf_log_frontend) as well as the correlation with using app_usbd_cdc_acm_write
() makes me wonder whether I should start looking somewhere else for its cause.
I'd be happy for any hint!