Greetings,
I'm having some trouble displaying logs to the SES Debug Terminal... Basically, I can see the logs with RTTviewer but not in SES Debug Terminal. However printf works just fine on the SES Debug Terminal
My setup:
OS: Windows 10
Board: NRF52-DK
SDK: 15.3.0
Example: peripheral\bsp
IDE: Segger Embedded Studio 4.16
After reading lots of posts and documentation that's what I've done so far:
1) tried many other examples and got the same problem
2) NO, I'm not using RTTviewer and SES Debug Terminal at the same time
3) On SDK_Config.h made sure that settings are:
NRF_LOG_BACKEND_RTT_ENABLE 1 NRF_LOG_BACKEND_RTT_ENABLE 0 NRF_LOG_ENABLE 1 NRF_LOG_DEFFERED 1 NRF_LOG_DEFAULT_LEVEL 3 //AKA Info
4) Tried to build clean, build Debug, build Release
5) On main:
Initializing NRF_LOG:
APP_ERROR_CHECK(NRF_LOG_INIT(NULL)); NRF_LOG_DEFAULT_BACKENDS_INIT();
On main loop:
NRF_LOG_INFO("BSP example started."); NRF_LOG_FLUSH();
6) If instead of NRF_LOG_INFO I use printf the SES Debug Terminal prints my message just fine
7) If I open the SES J-Link Control Panel Window while debugging, I can see the message on the RTT tab, but still not in Debug Terminal:
8) Verified Project Debug Settings:
9) Tried changing NRF_LOG_FLUSH() to NRF_LOG_PROCESS() . No difference...
10) I also notice that something is been send to the Debug Terminal because the cursor moves to a new line every time a new NRF_LOG should be displayed.
Any ideas of what I am doing wrong?
Hi,
There is an issue in the SDK, which adds \r\r\n instead of \r\n to the output message.postfix_process() wants to add \r\n, but nrf_printf() also explicitly adds \r before \n without checking if it is already present.
In ES (V4.16) this clears the current line and does a line break.
You can work around this by adding #define NRF_PRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 0 to your sdk_config.h
Best regardsJohannes
For some reason, this hasn't worked for me. Here is the start of my sdk_config.h file.
#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 0#define NRF_LOG_BACKEND_RTT_ENABLED 1#define NRF_LOG_BACKEND_UART_ENABLED 0#define NRF_LOG_ENABLED 1#define NRF_LOG_DEFERRED 1
Am I forgetting something?
Did you double-check it's not getting re-defined further down the file?
No re-definitions to my knowledge. Debug terminal appears to only work sometimes. I either get a few outputs or the screen remains blank... any ideas?
Figured it out. If I continually restart the debugger rather than simply press the play button, the debug terminal works. Thanks for the help
FWIW, I have found that, in GNUARMEclipse, if I stop a debug session with RTT viewer connected, the viewer will not show messages, even if I disconnect and reconnect. I have to close and reopen RTT Viewer, then connect, if I have had RTT Viewer connected when stopping a debug session.