Hello @Celine,
You are correct. The above code is not needed when using the custom linker script:
SECTION_PROLOGUE(.dw_drivers,,)
{
. = ALIGN(4);
dw_drivers_load_start = .;
dw_drivers_start = .;
__dw_drivers_start = dw_drivers_start;
KEEP(*(.dw_drivers .dw_drivers.))
. = ALIGN(4);
} GROUP_LINK_IN(ROMABLE_REGION)
dw_drivers_end = dw_drivers_start + SIZEOF(.dw_drivers);
dw_drivers_size = SIZEOF(.dw_drivers);
__dw_drivers_end = dw_drivers_end;
dw_drivers_load_end = dw_drivers_end;
together with the linker flags suggested by @tobias
The code existed before the custom linker script requirement was known
BTW, is it possible to expose a library API so the custom linker script is not required?
The dwt_probe()
call is made in an application example after dw3000_init()
.
Another issue is a crash on ex_02g_simple_rx_sts_sdc example if -O2, … are used (default is -O0). The crash occurs in standard DW3xxx_XR6.0C_24Feb2022 release
under nRF52 SDK (it is not a Zephyr issue). It may possibly be caused by write to stack
argument in library function using wrong length (e.g. writing *int instead of *short).
Carl