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);
    }
}