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

nrf52840 + S140 6.1.1 + DFU example IAR + nRFGO

Good evening,

We are trying to flash the bootloader DFU debug example using 10056 ble debug example code to our nRF52840 based board.

Everytime we try to flash, we get an error message about writing in the SoftDevice area.

End of Softdevice address is 0X26000 for S140 6.1.1. We are not sure how to configure IAR to make it work.

We can flash Softdevice S140 6.1.1 with nRFGO studio + our application and it works.

However, we struggle to flash the bootloader nRF52840 BLE DFU debug example from the latest SDK (15.3.0)

We need to flash softdevice before flashing the DFU example right?  

Our chip is BL654 from Laird.

What has to be changed from the SDK files to make it work? What configuration in IAR?

Taking the SDK files without touching anything and trying to compile on IAR straight away gives us a mistake.

Do we only need to change the addresses in the linker configuration? If yes, could you guide us with the memory addresses we need to put? Do we need to manually modify the linker configuration document?

Where can we find the memory allocation for nrf52840 and S140 softdevice 6.1.1? we have found 6.0.X and read the migration documents but couldn't figure out the table as shown in the documentation.

Thank you!

Francois

Parents
  • Hi Francois.

    First of all, I recommend that you don't use nRFgoStudio any more, as it is outdated and will not be updated, you should use nRF Connect Programmer instead.

    It should not matter which part of the FLASH memory you program first, as long as it does not overlap.

    The structure of the FLASH memory is like this:

    Here is an example of how memory region looks for the bootloader example found in folder examples\dfu\secure_bootloader\pca10056_ble_debug and the S140 V6.1.1 SoftDevice:

    As you can see, the SoftDevice is at the bottom, and the bootloader is at the top of the memory region.

    When you say that you can flash the Application and the SoftDevice, but struggle to flash the bootloader, do you still have the Application flashed as well? Maybe it is the Application you flashed previous that occupy some memory?

    The examples from the SDK should come preconfigured, so you should not have to do any configurations.

    Best regards,

    Andreas

  • Thanks Andreas for your answer,
    we tried to use the nRF Connect programmer to flash the bootloader and see the memory structure; it is correctly configured (like the schema in the documentation).
    However, we can not start the DFU mode and see the BLE device.
    is there a change to be made in the bootloader code to enable the DFU mode (we do not use button in our chip to start this mode )?

    Best regards,

Reply
  • Thanks Andreas for your answer,
    we tried to use the nRF Connect programmer to flash the bootloader and see the memory structure; it is correctly configured (like the schema in the documentation).
    However, we can not start the DFU mode and see the BLE device.
    is there a change to be made in the bootloader code to enable the DFU mode (we do not use button in our chip to start this mode )?

    Best regards,

Children
No Data
Related