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

DFU not working on S332 2.0 SDK12 . Help me setting Target IROM1 and IRAM1?

Hi 

   I am trying to implement DFU to my project. I have done all the steps to generate packages,  private and public keys etc. My program now starts at dfu and I can upload the package to nrf52 but it then get stuck to (Jump to 0x0029000).

Can anyone help me target setting on keil? Thanks

  

Parents
  • Hi Stark,

    Could you try to test updating an example in our SDK (you need to configure it so it works with S332) instead of your application, just to make sure that DFU works properly ?  You can also start with testing with a simple application to blink an LED. 

    I assume your app works if you don't flash the bootloader ? 

  • Hi Hung,

                 I got successful in running dfu on s132 but struggling on s332. I think its IROM1 and IRAM1 settings for dfu bootloader. Currently settings are

    IROM1: 0x75000 and size: 0xB000

    IRAM1: 0x20002E00 and size: 0xD370 

    I am working on nrf52832 512k chip. 

    Is there any way to find out the correct IRAM1?

  • I don't think it's the RAM/ROM configuration issue. If you have wrong configuration, the softdevice will assert and the bootloader would crash even before it starts advertising. 

    But note that the SUM of IRAM1 location + size must fit inside 0x10000 since it's the physical size of RAM. You should not have something above 0x10000. 

    Could you follow this guide and check at which step it doesn't work ? 

    Note that if you change the optimization level of the bootloader to 0, you can step into the code of the bootloader and debug. 

Reply
  • I don't think it's the RAM/ROM configuration issue. If you have wrong configuration, the softdevice will assert and the bootloader would crash even before it starts advertising. 

    But note that the SUM of IRAM1 location + size must fit inside 0x10000 since it's the physical size of RAM. You should not have something above 0x10000. 

    Could you follow this guide and check at which step it doesn't work ? 

    Note that if you change the optimization level of the bootloader to 0, you can step into the code of the bootloader and debug. 

Children
Related