This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52833 uart bootloader

Apologies in case query is dumb or not conveyed properly or duplicate query( related topic responses did not resolve/clear up topic for me)

What are the changes required to port pca10056_uart dfu bootloader to pca10100?

From a previous forum response to related topic "... You'll have to migrate to SDK16.0 as it is the only SDK with support for the 52833. The code will be almost identical for 52833 as for 52832, with the exception of some startup files, bitfields header file, and bugfixes specific for 52832 and 52833."

Will following steps be sufficient? Or is there any additional changes missing?

replacing ses_startup_nrf52840.s and system_nrf52840.c with corresponding files for nrf52833, editing sdk_config.h,

editing Options>Linker>Section placement macros,

editing Options>Preprocessor change to BOARD_PCA10100, NRF52833_XXAA and

Options>Build>Memory Segments

From same answer ".. Pick an example that targets the nRF52833 and import the code you need and modify the sdk_config.h file to match.."

I assume using either a peripheral blank example (uart example for pca10100) or ble_secure_dfu example (for pca10100) in this case? If using a blank example how to add MBR to project? If using ble_secure_dfu example what are the steps to remove ble transport and softdevice dependency (configuration changes (from Options)) apart from removing code related to ble transport.

Forum query response referred:

https://devzone.nordicsemi.com/f/nordic-q-a/53565/migration---nrf52832-nrf52833-code-compability

  • Hi ShowMaker, 

    Apologies for the late reply. We're working through the backlog from the Christmas holidays. 

    I would recommend porting the pca10040_uart example instead of the pca10056_uart, since the nRF52833 like  nRF52832 does not have the Cryptocell and you do not have to deal with the crypto backend settings ets.

    So to port the pca10040_uart example to run on the pca10100 you will have to do the following changes in the Preprocessor Definitions

    • replace NRF52832_XXAA with NRF52833_XXAA
    • replace BOARD_PCA10040 with BOARD_PCA10100

    Alter the Code > Linker > Section Placement Macros to the following

    FLASH_START=0x78000

    FLASH_SIZE=0x6000

    RAM_START=0x2000260c

    RAM_SIZE=0x1d9f4

    As you have pointed out you also have to replace ses_startup_nrf52.s with ses_startup_nrf52833.s.

    The MBR is loaded as an additional load file under Debug > Loader > Additional Load File[0] in the Project settings. If you port the pca10040_uart examle then you do not have to do any changes there. I also beleive that the sdk_config.h file can be left unchanged. 

    Best regards

    Bjørn

  • Thank you for the helpful response. Just to clarify for non soft device applications ( uart transport bootloader ) with MBR isn't RAM start address supposed to be 0x20000008 or is this the placement address for nRF52833?

  • Hi did you get this working for NRF52833? any changes in addtion to those listed by Bjorn?

    Would appreciate anything that helped with this, thanks

Related