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

DFU app update over BLE with non-BLE app.

HI,

I got nrfutil + BLE DFU app update working using the ble_app_hrs for the test.    I am using the nrf52DK + SES for development, and I have also an external nrf52832 + MPU9250 external board attached to it.  The DFU update work fine on both the nrf52DK and also on the external board.  So the process is not an issue.

When I want to do the same with my app, the DFU process doest not work.

My app is a 9-axis motion capture with fusion (Invensense) based on the following exemple:   nRF52832_pesky/peripheral/md612/    https://github.com/e27182/nRF52832_pesky/tree/master/peripheral/md612

Instead of BLE, the external IMU board is communicating with the central (nrf52DK) using Enhance Shockburst (ESB).  Everything work fine.

However, if  I tried to update the app over DFU, the app won't start.  

From what I  have read in several post, i believe that my app is not flash at the wright location, because its not a BLE app and it conflict with the DFU or softdevice section, please correct me if I am wrong.

Here is the linked placement macro in SES: 

FLASH_PH_START=0x0

FLASH_PH_SIZE=0x80000

RAM_PH_START=0x20000000

RAM_PH_SIZE=0x10000

FLASH_START=0x0

FLASH_SIZE=0x80000

RAM_START=0x20000000

RAM_SIZE=0x10000

I am not to shure if its the wright thing to do but I have tried to change the FLASH_START address  to 0x26000 as in ble_app_hrs exemple.  The app will compile but won't run when flash directly on my external nef52 board with SES and the nrf52DK.

I have a played also with the RAM_START adress but the app won't compile.

Help would be greatly appreciate.

  • This is the link that I was using for the RAM and FLASH position:https://devzone.nordicsemi.com/nordic/short-range-guides/b/getting-started/posts/adjustment-of-ram-and-flash-memory

    For my s132 softdevice v7.0.0 the Ram start at 0x20001668 and Flash start at 0x26000 work just fine with my apps without the softdevice.  I had also to decrease the HEAP size to solve an error.

    I played also with the app version with the softdevice but did no solved completely the error mention above:

    ASSERTION FAILED at ../../../../../../integration/nrfx/nrfx_glue.h:107

    A work around was to remove the line SOFTDEVICE_PRESENT in the preprocessor.  I used the RAM and flash setting above. The ESB was not working until I change  .radio_irq_priority = 1, to 2 in the nerf_esb.h header file.

    I don't need the softdevice version since the first app is now working properly , so I won't pursue that route.   Your help was greatly appreciate.

Related