DWM3001C - port project from nRF52840 to nRF52833

I want to port my project from the nRF52840 to the nRF52833. I am working on the DWM3001C using SDK version 16. I changed the required files in the project but I think I’m not able to get it to work because of the linker_section_placement_macros.

Has anyone been able to successfully port their project? What are the values for your flash, ram, etc?

My project builds and downloads but nothing happens.

These are the errors that I’ve been getting.

Hi @jenna !

What files did you change?
As it is more like a Nordic/Segger challenge maybe is worth taking a look at the Nordic forum.
They have some results for “Migration from nRF52840 to nRF52833”.

In one of them they said:

"Basically it’s the startup files need to be changed, RAM, FLASH configuration, cryptocell missing. "

I would add to check the pinout too!

Best regards!

Hi @carlos.silva ,

I changed the Preprocessor Definitions to BOARD_PCA10100 and nRF52833_XXAA. The target device is set to nRF52833_xxAA. The register definition file is set to nrf52833.svd. I changed the ses startup file to ses_startup_nrf52833.s.

The Memory Segments (RAM and FLASH) are as follows:

FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x20000

The Segment Placement Macros are as follows:

FLASH_PH_START=0x0
FLASH_PH_SIZE=0x80000
RAM_PH_START=0x20000000
RAM_PH_SIZE=0x20000
FLASH_START=0x0
FLASH_SIZE=0x80000
FCONFIG_START=0x10000
FCONFIG_SIZE=0x400
DEFAULT_CONFIG_START=0x10500
DEFAULT_CONFIG_SIZE=0x400
INIT_START=0x12000
RAM_START=0x20000000
RAM_SIZE=0x20000

I configured the cryptocell according to this post here (I referenced this post when porting my project):

It downloads successfully to the device but gets a Hard Fault error. I have found just about every Nordic forum post related to migrating projects between boards. My next guess is that the problem is in the Section Placement Macros. The Qorvo API has other memory sections such as FCONFIG and INIT. I’m not sure where to find documentation on these so my guess is that’s what is causing the handler error. These probably have to be reconfigured as well.

Here is an update for anyone else struggling.

We were successfully able to port the project from an nRF52840 to an nRF52833. We are developing on the DWM3001CDK.

We used the generic template for the nRF52833 that is buried in the SDK v16.

Our configuration is:

arm_linker_heap_size = 8192
arm_linker_stack_size = 8192
arm_target_device_name = nRF52833_xxAA

FLASH_PH_START=0x0
FLASH_PH_SIZE=0x80000
RAM_PH_START=0x20000000
RAM_PH_SIZE=0x20000
FLASH_START=0x0
FLASH_SIZE=0x59000
FCONFIG_START=0x10000
FCONFIG_SIZE=0x400
DEFAULT_CONFIG_START=0x10500
DEFAULT_CONFIG_SIZE=0x400
INIT_START=0x12000
RAM_START=0x20000000
RAM_SIZE=0x40000

No SoftDevice present. We also included system_nrf52833.c and ses_startup_nrf52833.s

Everything builds and runs just fine after we included all the Qorvo API files.

1 Like

I’m beginning to setup and test the Segger toolchain and working to build for DWM3001CDK, the example provided by Qorvo. I think I have a related issue to the above, since I get a linker error message:

8> Compiling ‘main.c’
1> Generating linker script ‘DWM3001CDK.ld’
1> Linking DWM3001CDK.elf
1> /Applications/SEGGER Embedded Studio for ARM 6.32b/gcc/arm-none-eabi/bin/ld: error: .default_config is larger than specified size
1> /Applications/SEGGER Embedded Studio for ARM 6.32b/gcc/arm-none-eabi/bin/ld: error: .fconfig is larger than specified size
Build failed

I tried cutting and pasting the above configuration into the Section Placement Macros of the project “options” but they seem to have no positive effect. Can you provide clarification on how to update these memory section placement values properly for the DWM3001CDK?

Thanks!