This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bootloader hardfault

Hi,

Im trying to use BLE DFU Bootloader from examples. I loaded SD8 and then bootloader via nrfStudio (dont have a valid app flashed), but I cant see the device from Android app. I decided to do some debugging via Keil. I recompiled Bootloader with no optimisation and moved bootloader address to 0x3A000.

If I try to debug in Keil it doesnt stop at main, but if i manually press stop it gets into hardfault: image description

Memory settings: image description

Compilation settings: image description

Im using Revision 3 chip. What do I do wrong?

app.zip

hex

Bootloader

Bootloader hex O3

bootloader package without BANK_VALID_APP

Bootloader HEX without BANK_VALID_APP

Memory map according to NRF Studio: Memory map

Bootloader optimisation Level 2 gets stuck on run: image description

Image size > 0x6400

Parents
  • Your application is 70kB and not 47kB. This means that you need at least 140kB of application flash space( two banks of 70kB each) when using a Dual Bank Bootloader. If you use the default ROM settings for the bootloader, i.e. the bootloader starts at 0x3C000 then you'll have

    0x3C000 - 0x18000 = 0x24000( 144kB left) 
    

    However, extending the bootloader section in order to debug the bootloader you are left with

    0x3A000 - 0x18000 = 0x22000( 136kB left) 
    

    which is not enough and you will get the Data Size Exceeds Limiterror

  • ive added a screenshot of NRF Studio where it shows that start address of bootloader is 0x3A000, so if the image size would be 0x6000 it wouldnt fit and we would get a programming error, correct? Then the question is why you think image size is 0x6000, but NRF Studio programs it as 0x5C00 without errors and BL also works.

    Nevertheless I did what you suggested - Increased BL memory by another 1K, but the result is still the same - getting Exceeded Data Size error. Do you have some other suggestions?

Reply
  • ive added a screenshot of NRF Studio where it shows that start address of bootloader is 0x3A000, so if the image size would be 0x6000 it wouldnt fit and we would get a programming error, correct? Then the question is why you think image size is 0x6000, but NRF Studio programs it as 0x5C00 without errors and BL also works.

    Nevertheless I did what you suggested - Increased BL memory by another 1K, but the result is still the same - getting Exceeded Data Size error. Do you have some other suggestions?

Children
No Data
Related