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

Adding multiple base UUIDs

Hi,

There are similar questions posted, but none of them have able to help me out.

I am trying to add multiple base UUIDs in order to create 128-bit UUIDs for my characteristics that increment the LSB starting at a particular base UUID. I know the convention is to use sd_ble_uuid_vs_add with a base and then change byte 12 and 13, but I am required to only increment the LSB between these characteristics.

My code is failing when I try to add more than one base uuid using sd_ble_uuid_vs_add. It seems like the issue is that in my ble_stack_init() function I need to add this line of code in order to allow for more than one base UUID in the tabe.

ble_enable_params.common_enable_params.vs_uuid_count = 2;

However, with this added my call to softdevice_enable() is returning NRF_ERROR_NO_MEM.

From what I have read it seems that this could be there not being enough RAM allocated for the attribute table, but I am not sure where to start to fix that.

I am using Keil and it says my Read/Write Memory Areas are: IRAM1: Start: 0x20001FE8, Size: 0x6118

Parents
  • you need to start moving the IRAM1 up (and cutting down the size) until you have enough memory. There's a parameter which is both passed into, and returned from, the ble stack init function where you tell it how much memory you have (not enough returns the NRF_ERROR_NO_MEM) and on return tells you how much you actually need, so you can next time set IRAM to that.

Reply
  • you need to start moving the IRAM1 up (and cutting down the size) until you have enough memory. There's a parameter which is both passed into, and returned from, the ble stack init function where you tell it how much memory you have (not enough returns the NRF_ERROR_NO_MEM) and on return tells you how much you actually need, so you can next time set IRAM to that.

Children
Related