location of peer manager storage and gcc linker file

I use Peer Manager for storing bonding infomation with nRF52832 (SDK14.2) using gcc.

I understand Peer Manager uses FDS, and FDS uses flash memory from 0x7D000 to 0x80000.

Looking at nordic example, there is no declaration of that FDS are in link file(xxx.ld). 

How does gcc know FDS area?

I am afraid if I use flash memory of Application program over 0x7D000, it must crash.

  • How does gcc know FDS area?

    It does not.

    The address for FDS is calculated at runtime, depending whether there is a bootloader present or not.

    If there is no bootloader, FDS uses top-of-flash minus (at least) 3 pages. You can read top-of-flash indirectly from FICR.

    If there IS a bootloader present, it uses bootloader start address minus 3 pages.

    I recommend just reading the SDK source code in any case.

Reply Children
No Data