Hi!
I'm porting our application from nRF52832 (SD132 6.3.1, SDK 15.2.0) to nRF52811. We're intereset in the nRF52811 because of its smaller size with the WLCSP package. Our application is quite heavy in that it allows 2 concurrent connections with DLE, LESC, bonding and peer manager, as well as DFU. So I'm obviously expecting to have to cut down on something to make everything fit in the reduced Flash and RAM. I've already cut down on the Central capability, which is not available now with SD112.
I'm aiming for the nRF52811 with Soft Device 112, version 7.2.0 and SDK 17.1.0. I'm currently developing on the nRF52840 DK, using IAR EW ARM 9.30. I started on the ble_app_template example project and started adding our code and settings.
Right now, Flash seems to fit. However, I'm having a bit of trouble with RAM. The error I get is that either the linker runs out of space and fails to build or the soft device refuses to run because there's too much RAM used by the application. I've read through the guide to fine tune the RAM and flash start addresses, I'm already using the maximum RAM size the Soft Device will allow me. I've already tried bringing down the MTU size to the minimum and maximum connections to 1, but it's still a bit short.
This is the IAR Linker output:
68'812 bytes of readonly code memory
14'487 bytes of readonly data memory
18'625 bytes of readwrite data memory
What else can I do to bring the RAM footprint down? Either for the app or for the SoftDevice. There must be something in the sdk_config that I can disable but it's too big to start trying without some common sense guidance.
I've noticed that disabling the log has a big impact and actually makes it fit. After setting "#define NRF_LOG_ENABLED 0", this is the output.
57'464 bytes of readonly code memory
3'479 bytes of readonly data memory
16'280 bytes of readwrite data memory
Why is there so much memory being used by the log? There's like 10k of readonly data memory, which probably is for the logged strings right? (not the actual log storage, but the contents of the eventually logged messages, if that makes sense). Is this being placed in RAM or FLASH? If it's in RAM, is there a way to change them to flash?
Thanks and take care!