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

DFU separate files. inside

nRF52, S132, SDK13.

I need flash two .hex files. One- firmware, second- data. It flashed on a factory. data- veans serial number and other personal chips info. Now I can separate those files and merged first like discribed: devzone.nordicsemi.com/.../

and merged with bootloader. After I can flash via nrf go studio second file with personal data. All works fine. But If I flash app_dfu_package.zip (prepared for first file) by DFU, nRF doesn't work more. I need flash app_dfu_package.zip and don't erase second file. How can I do it?

Parents
  • Hi Mikhail,

    What exactly you mean nRF doesn't work more ? Have you tried to debug if it can get to main() in the application ? Would it be the result of your application data being erased ?

    Where do you locate the your application data ? If you want to preserve your data you need to follow this guide.

    Note that the bootloader assume the application data starts right before the beginning of the bootloader.

    Make sure you also count the room for fds data if you use that module (by default used by peer manager)

  • Hi again!

    I'll try to explan again in more details: in the my app I have structure located by separate sddress-

    struct_t abc __attribute__((section(".ARM.__at_0x37800"))) = 
    

    After compiling I have .hex. This .hex I manual divide for two .hex.

    1- 0x1F000 - 0x377FF ...

    :1077F0000000000000000000000000000000000089
    :00000001FF
    

    ...

    2 0x 37800- 0x37940

    ...

    :0C7940002FC490D003146137022303FF12
    :040000050001F20103
    :00000001FF
    

    ...

    Via nrf go studio I can flash SD than 1 and 2 .hex. Works fine.

    I can run merge with nrfutil.exe. And get merged bootloader_setting.hex nrf52832_xxaa_s132.hex 1.hex --output boot_55.hex

    before I get .zip for DFU.

    Ok. Via nrf go studio erase all, flash SD, flash boot_55.hex, flash my hex 2 with struct. Works fine.

    go next. Transfer by UART command into bootload mode- ok. DFU upgrade-ok. my same flashed app- does not work any more. ???

Reply
  • Hi again!

    I'll try to explan again in more details: in the my app I have structure located by separate sddress-

    struct_t abc __attribute__((section(".ARM.__at_0x37800"))) = 
    

    After compiling I have .hex. This .hex I manual divide for two .hex.

    1- 0x1F000 - 0x377FF ...

    :1077F0000000000000000000000000000000000089
    :00000001FF
    

    ...

    2 0x 37800- 0x37940

    ...

    :0C7940002FC490D003146137022303FF12
    :040000050001F20103
    :00000001FF
    

    ...

    Via nrf go studio I can flash SD than 1 and 2 .hex. Works fine.

    I can run merge with nrfutil.exe. And get merged bootloader_setting.hex nrf52832_xxaa_s132.hex 1.hex --output boot_55.hex

    before I get .zip for DFU.

    Ok. Via nrf go studio erase all, flash SD, flash boot_55.hex, flash my hex 2 with struct. Works fine.

    go next. Transfer by UART command into bootload mode- ok. DFU upgrade-ok. my same flashed app- does not work any more. ???

Children
No Data
Related