Which SDK version are you using, is it SDK v12.x.x? Which function returns NRF_ERROR_NO_MEM
? Is it sd_ble_gatts_service_add()
or sd_ble_gatts_characteristic_add()
?
If it is one of those two functions then you need to increase the size of the GATT table by setting the .attr_tab_size
field of ble_enable_params.gatts_enable_params
in ble_stack_init()
, e.g.
ble_enable_params.gatts_enable_params.attr_tab_size = 0x1000;
Otherwise if will be set equal to SOFTDEVICE_GATTS_ATTR_TAB_SIZE
== BLE_GATTS_ATTR_TAB_SIZE_DEFAULT
== 0x000
which causes the SoftDevice to use the default GATT table size which is 0x580 bytes for S130 v2.x.x.
即修改GATT属性列表大小: