Read BD address from CS not working
ID: DA1459xSDK-786
Status: Fixed
First reported: 10.1.2.86
Fixed in: 10.1.4.104
Description
When a (public) BD address is programmed into the Configuration Script, the SDK ignores the programmed address and uses the default BD address.
Workaround
Replace function static void read_public_address() in file ../sdk/interfaces/ble/adapter/src/ with the follwoing function:
static void read_public_address()
{
uint8_t default_addr[BD_ADDR_LEN] = defaultBLE_STATIC_ADDRESS;
bool valid;
uint32_t *values;
uint8_t size = 0;
sys_tcs_get_custom_values(SYS_TCS_GROUP_BD_ADDR, &values, &size);
if (size)
{
memcpy(public_address, values, BD_ADDR_LEN);
return;
}
valid = ad_ble_read_nvms_param(public_address, BD_ADDR_LEN, NVPARAM_BLE_PLATFORM_BD_ADDRESS,
NVPARAM_OFFSET_BLE_PLATFORM_BD_ADDRESS);
if (!valid) {
memcpy(public_address, &default_addr, BD_ADDR_LEN);
}
}