I have a DWM3001CDK and am trying to add some BLE functionality to the example CLI project in the DWM3001CDK DK Software, Sources, Tools and Developer Guide.
I’ve managed to mostly merge in the configuration from Nordic’s nrf52833 sample config project (DWM3001CDK_SDK\Sources\SDK_BSP\Nordic\NORDIC_SDK_17_1_0\config\nrf52833\ses\generic_nrf52833_xxaa.emProject
), but am struggling with the flash configuration.
The flash_placement.xml
files are quite different from the Nordic and Qorvo examples, each one having various sections that are not present in the other. I made a best effort at combining the two.
I ran (right-click project)->“Import Section Placement” with the combined flash_placement.xml
file, and included the following preprocessor definitions (from the Nordic generic example project):
PP_TIMER_V2
APP_TIMER_V2_RTC1_ENABLED
FLOAT_ABI_HARD
INITIALIZE_USER_SECTIONS
NRF_SD_BLE_API_VERSION=7
NO_VTOR_CONFIG
S113
SOFTDEVICE_PRESENT
When I try building this though, I get the following errors:
uilding ‘AssetTracker’ from solution ‘AssetTracker’ in configuration ‘Common’
Generating linker script ‘AssetTracker.ld’
Linking AssetTracker.elf
C:/Users/MyName/Documents/GitHub/invicton-labs/AssetTracker/DWM3001C/ses/Output/Common/Exe/AssetTracker.elf section `.text.bsp_board_led_on' will not fit in region `UNPLACED_SECTIONS'
region `UNPLACED_SECTIONS' overflowed by 59964 bytes
Output/AssetTracker Common/Obj/common/nrf_sdh.o:(.rodata.sdh_stack_observers+0x0): undefined reference to `__start_sdh_stack_observers'
Output/AssetTracker Common/Obj/common/nrf_sdh.o:(.rodata.sdh_stack_observers+0x4): undefined reference to `__stop_sdh_stack_observers'
Output/AssetTracker Common/Obj/FreeRTOS/config.o: in function `load_bssConfig':
config.c:(.text.load_bssConfig+0x70): undefined reference to `__fconfig_start'
config.c:(.text.load_bssConfig+0x7c): undefined reference to `__config_entry_start'
config.c:(.text.load_bssConfig+0x80): undefined reference to `__config_entry_end'
Output/AssetTracker Common/Obj/FreeRTOS/config.o: in function `save_bssConfig':
config.c:(.text.save_bssConfig+0x38): undefined reference to `__fconfig_start'
Output/AssetTracker Common/Obj/cmd/cmd.o: in function `command_parser':
cmd.c:(.text.command_parser+0x148): undefined reference to `__known_commands_end'
cmd.c:(.text.command_parser+0x150): undefined reference to `__known_commands_start'
Output/AssetTracker Common/Obj/Startup/ses_startup_nrf_common.o: in function `InitializeUserMemorySections':
(.init+0x50): undefined reference to `__start_nrf_sections'
Output/AssetTracker Common/Obj/Startup/thumb_crt0.o: in function `memory_set':
(.init+0xd8): undefined reference to `__data_load_start__'
(.init+0xdc): undefined reference to `__data_start__'
(.init+0xe0): undefined reference to `__data_end__'
(.init+0xe4): undefined reference to `__text_load_start__'
(.init+0xe8): undefined reference to `__text_start__'
(.init+0xec): undefined reference to `__text_end__'
(.init+0xf0): undefined reference to `__fast_load_start__'
(.init+0xf4): undefined reference to `__fast_start__'
(.init+0xf8): undefined reference to `__fast_end__'
(.init+0xfc): undefined reference to `__ctors_load_start__'
(.init+0x100): undefined reference to `__ctors_start__'
(.init+0x104): undefined reference to `__ctors_end__'
(.init+0x108): undefined reference to `__dtors_load_start__'
(.init+0x10c): undefined reference to `__dtors_start__'
(.init+0x110): undefined reference to `__dtors_end__'
(.init+0x114): undefined reference to `__rodata_load_start__'
(.init+0x118): undefined reference to `__rodata_start__'
(.init+0x11c): undefined reference to `__rodata_end__'
(.init+0x120): undefined reference to `__tdata_load_start__'
(.init+0x124): undefined reference to `__tdata_start__'
(.init+0x128): undefined reference to `__tdata_end__'
../external/QorvoSDK/Libs/dwt_uwb_driver/lib/libdwt_uwb_driver-m4-hfp-6.0.14.a(deca_compat.c.obj): in function `dwt_probe':
deca_compat.c:(.text.dwt_probe+0x8c): undefined reference to `__dw_drivers_start'
deca_compat.c:(.text.dwt_probe+0x90): undefined reference to `__dw_drivers_end'
Build failed
I’m not sure where this UNPLACED_SECTIONS
is coming from, since I’ve included all sections from both projects in the flash_placement.xml
file. I’m also not clear on why all of these references are undefined.
I’ve also tried updating the section placement macros to add an offset for the SoftDevice in Flash, but that doesn’t change the errors from the build.
Has anyone successfully added a Nordic SoftDevice into the Qorvo example project and enabled BLE? What am I missing here?
@carlos.silva Given that the entire purpose of the DWM3001C was to combine UWB with BLE/Zigbee/etc. functionality, I find it surprising that there are no examples of a project that enables both Qorvo UWB and Nordic BLE/SoftDevice. Clearly, there are major changes that are necessary to support both chips in one application. Are there any plans to add such an example to the SDK/documentation?
Thanks!