Hi,
it's my first post in this forum, and I glad to join to Nordic Community.
After few month of developing project on Nordic MCU, I try to migrate form SDK 12.2.0 to SDK 14.2.0. (S132, SES, Windows 10 Pro, nRF52 DK)
I decided to do it step by step, according to the migration guides (12.2.0 to 13.0.0 and then 13.0.0 to 14.2.0).
After first step (SDK 13.0.0) my application work. But on 14.2.0, when i set NRF_LOG_DEFERRED to 0, my application, after several second, get reset, logging faster (RTT) than normal and I'm not able to connect to device via BLE.
I noticed difference in file nrf_log_control_internal.h between SDK 14.2.0 and 13.0.0. In 13.0.0 and 12.2.0 when:
#if NRF_LOG_DEFERRED == 0 #define NRF_LOG_INTERNAL_PROCESS() false
I added similar condition to 14.2.0 in file nrf_log_ctrl.h
replaced line 101:
#define NRF_LOG_PROCESS() NRF_LOG_INTERNAL_PROCESS()
to:
#if (NRF_LOG_DEFERRED == 0) #define NRF_LOG_PROCESS() false #else #define NRF_LOG_PROCESS() NRF_LOG_INTERNAL_PROCESS() #endif
problem disappear/"is resolved".
My questions:
- Is there any reason not to do my modification?
- Why do non-deferred log in my app work with 12.0.0, but with 14.2.0 not?
- Why must non-deferred log to be processed by nrf_log_frontend_dequeue() when i want to use SDK 14.2.0?
- Or did i miss something during migration?
BTW. I think, my problem is similar to https://devzone.nordicsemi.com/f/nordic-q-a/35527/hang-in-logger-frontend
During debug of broken app, rd_idx is bigger than wr_idx, and it is not good. Is it possible, that I want log to much?