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

bootloader firmware size issue - wonder if it's okey

I'm developing custom board of nrF51822 CEAA (256k, 16k)

I set my bootloader ROM, RAM just like below

image description

as I understand,

  • Firmware size should not larger than 0x3C00 = 15360(decimal)
  • RAM should not larger than 0x1380 + 0x80 = 0x1400 = 5120(decimal)

but when I compile my bootloader program, size result is below

image description

so, firmware = code+RO+RW = 14692+1532+340 = 16564 (Exceed!!) RAM = RW+ZI = 340+4232= 4572

As you know, address 0x3FC00, we use 1 byte for BANK_VALID_APP I think firmware size is exceeded, It might be a problem.

Please check, if there's any problem or need to fix things when ROM for RAM size is exceeded.

FYI, DFU works fine though

Parents
  • Hi Jeong,

    In the bootloader there is a page used for bootloader setting that is allocated on flash and used __attribute(used) to avoid the linker put something else on it. It's recognized by KEIL as ZI data but wouldn't consume any space inside the IROM1 area (because it's located outside of it).

    As long as the linker doesn't complain about exceeding size, you should be safe.

    In your case it exceeded more than 1 page, it's quite strange, maybe you also declare smth with __attribute(used) ? can you post your .map file ?

Reply
  • Hi Jeong,

    In the bootloader there is a page used for bootloader setting that is allocated on flash and used __attribute(used) to avoid the linker put something else on it. It's recognized by KEIL as ZI data but wouldn't consume any space inside the IROM1 area (because it's located outside of it).

    As long as the linker doesn't complain about exceeding size, you should be safe.

    In your case it exceeded more than 1 page, it's quite strange, maybe you also declare smth with __attribute(used) ? can you post your .map file ?

Children
No Data
Related