This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Memory configuration, cannot add vendor specific UUID count

Hello!

I'm having trouble adding vendor specific UUID and configuring the memory. My service will require 3 vendor specific 128 bit UUID. One for the service and two for characteristics. I have been using the NUS peripheral as an example. I'm using gcc.

In the linked script for the NUS peripheral example this is the memory configuration in the linker script:

MEMORY
{
  FLASH (rx) : ORIGIN = 0x1f000, LENGTH = 0x61000
  RAM (rwx) :  ORIGIN = 0x200025f8, LENGTH = 0xda08
}

I configure the system to use 3 UUID with this code:

memset(&ble_cfg, 0x00, sizeof(ble_cfg));
ble_cfg.common_cfg.vs_uuid_cfg.vs_uuid_count        = BLE_NUM_VENDOR_UUID; // 3
err_code = sd_ble_cfg_set(BLE_COMMON_CFG_VS_UUID, &ble_cfg, ram_start);
APP_ERROR_CHECK(err_code);

When enabling the softdevice i get the message that the memory settings should be changed:

SDH:DEBUG:RAM start at 0x200025f8.
SDH:WARNING:RAM start should be adjusted to 0x20002588.
SDH:WARNING:RAM size should be adjusted to 0xda78.

When changing according to this in the linker script i end up in some error state. What am i missing here?

Furher:

At a later point i am planning to increase the number of concurrent connections, how should i configure the linker script for this? I.e, how much more RAM is required by the softdevice for this? I didn't find the numbers in the documentation (i believe i just missed it).

Edit: I realized that the default number of vendor specific UUID is 10, however, i am not able to add my UUIDs anyway,

Parents Reply Children
No Data
Related