nRF52832 Memory Mismatch in nRF Connect Programmer v3.0.8

Hello,

I am developing an application with the nRF52832 that is pretty stringent on the memory requirements -- we really want to see how much we can squeeze out of every byte with some local data saving on a BLE application.

I noticed that after flashing my program via the nRF Connect Programmer (v3.0.8) to an nRF52-DK, everything looks as it should like in the picture below:

I touch NOTHING ELSE, but I power cycle the nRF52-DK with the power switch and then I read the memory again. This is the result:

If I DO NOT power cycle and just "Read" the memory right after programming, the memory layout looks exactly as it does in picture #1.

These are the values of the memory chunks, I hope someone can see these and recognize what might be sliding their way into these memory chunks:

File memory layout: NRF52832_xxAA_REV2

For more context:

1.) SDK Version: 16.0.0

2.) Custom application -- built off of ble_app_template

3.) Includes buttonless DFU functionality and therefore the requisite files:

3.1) Bootloader settings (black) -- generated from custom application with nrfutil

3.2) Bootloader (red) -- built from secure_bootloader_ble_s132_pca10040

3.3) Application (green)

3.4) SoftDevice (blue) -- v7.2.0

3.5) MBR (orange)

I cannot for the life of me figure out why a power cycle adds so many extra pieces of memory. Is it the UICR? I want to know exactly how many bytes of data I can jam into the flash storage and where, but this discrepancy between newly flashed and reboot is throwing me for a loop. Please help me, thank you so much! :)

*NOTE: Everything runs just fine, and there is enough memory for DFU to complete, I just need to know what these extra chunks of memory are and if I can move or remove them.

-ToothKing

Related