Hello, I've tried to implement rtt logging in my own project but the control block cannot be found. So I tried the saadc example and that did not work either, I tried to use the blinky example and enabled LOG_ENABLED and LOG_BACKEND_RTT_ENABLED without luck. I checked my map file and it says that _SEGGER_RTT is placed outside ram somehow, ie not included in ram.
I use nordic sdk 17.1.0 with my nrf52810 chip. Blinky works as the led blinks which means the board is working.
Here is my linker script:
SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys)
MEMORY
{
FLASH (rx) : ORIGIN = 0x0, LENGTH = 192K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 24K
}
SECTIONS
{
}
SECTIONS
{
. = ALIGN(4);
.mem_section_dummy_ram :
{
}
.log_dynamic_data :
{
PROVIDE(__start_log_dynamic_data = .);
KEEP(*(SORT(.log_dynamic_data*)))
PROVIDE(__stop_log_dynamic_data = .);
} > RAM
.log_filter_data :
{
PROVIDE(__start_log_filter_data = .);
KEEP(*(SORT(.log_filter_data*)))
PROVIDE(__stop_log_filter_data = .);
} > RAM
} INSERT AFTER .data;
SECTIONS
{
.mem_section_dummy_rom :
{
}
.log_const_data :
{
PROVIDE(__start_log_const_data = .);
KEEP(*(SORT(.log_const_data*)))
PROVIDE(__stop_log_const_data = .);
} > FLASH
.log_backends :
{
PROVIDE(__start_log_backends = .);
KEEP(*(SORT(.log_backends*)))
PROVIDE(__stop_log_backends = .);
} > FLASH
.nrf_balloc :
{
PROVIDE(__start_nrf_balloc = .);
KEEP(*(.nrf_balloc))
PROVIDE(__stop_nrf_balloc = .);
} > FLASH
} INSERT AFTER .text
INCLUDE "nrf_common.ld"
RTT logging works on my nrf51802 chip with sdk 12.3.0 so there is nothing wrong with my jlink or my jlink setup either.
Here is a part of my map file:
.bss._SEGGER_RTT
0x00000000 0x78 _build/nrf52810_xxaa/SEGGER_RTT.c.o
How can I resolve this?