Hi all!
I am working on the SDK 15.2, with S132 6.0, and i use the SES IDE.
I have created a custom service with 32 characteristics for now. The goal in the future is to have 3 custom services and to use few SIG-adopted services.
I have met a problem about when adding my characteristics, I have the error NO_MEM. After searching on the forum, I have followed the instructions from this thread . I am using the SoftDevice Handler library, andnrf_sdh_ble_default_cfg_set() to configure the SoftDevice, so i have modified the attribute table size in NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE define in sdk_config.h.
My first question is: How do we know which size do we have to choose when adding new services? First it was at 1408, i have put at 2000. Is there a proper way to calculate it ?
So I have also changed the RAM size and RAM start, and my app is working, I have no more problem with the NO_MEMORY message and the stack_init but I have met another problem: normally every minute, my processor receive data through UART from another processor. Normally it works, but now not amymore. Because I have changed only the RAM part, I think the problem come from there.
My second question is How many minimum RAM size do we need for the program to work ? I think now there is not enough RAM to do that and I don't know what to do.
My third question is, is there a way to know what constitues each partition in the RAM? With SES I can see this picture of my RAM:
I would like to know what there is in each partirtion. Indeed, with that, one of the things that I would like to know is: I have taken an existing program, and the programmer modified the RAM size and start, but there were only the NUS custom Service, otherwise the others services were the SIG adopted ones GAP, Generic Attribute, and Device Information. The NUS service needs a lot of memory ?
When I have done these changes, the .reserved_ram was modified, 600 bytes were effectlively added. I can see that there is 31.5kb free, so normally there is enough memory available.
Thanks !