Hello,
I am currently evaluating the nrf52840 and nrf52832 for the purpose of bluetooth mesh. I found flash usage information in the mesh SDK documentation as follows:
Build type: MinSizeRel (-Os), Logging: None
| Flash usage (kB) | RAM usage (kB) | Example |
|---|---|---|
| 79.296 | 8.672 | Beaconing |
| 79.608 | 8.964 | DFU with serial interface |
| 90.104 | 12.080 | DFU without serial interface |
| 90.820 | 11.504 | EnOcean switch translator client |
| 89.640 | 11.140 | Light switch dimming client |
| 93.860 | 11.200 | Light switch dimming server |
| 105.004 | 11.536 | Low Power node |
| 89.288 | 11.396 | Light switch client |
| 82.916 | 10.208 | Light switch provisioner |
| 89.208 | 10.940 | Light switch server |
| 79.644 | 9.352 | PB-remote client |
| 80.412 | 8.560 | PB-remote server |
| 76.928 | 11.016 |
Now, if I compile the Light switch server in Segger 4.12 I get the following flash and ram usage : 247.5KB / 24.7KB 
How were the numbers in the table achieved?
Also, when doing a DFU over the air, how does it work? Let's say my binary running takes 200KB and I want to do a DFU over the air with another binary that takes 200KB. During the process does the full new image is stored in a different place of the flash and keep the present binary running until the new image is fully transfered?
Thank you in advance.