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

nRF5_SDK_17.0.2_d674dde\examples\dfu\secure_bootloader\pca10056_s140_ble_debug\ses won't advertise DfuTarg name

So I now have nRF 52840 dk and I'm working through the secure bootloader example. I am using SES. (Windows).

So I built and flashed the the app and it looks fine, it has Leds 1 and 2 lit and the software layout looks fine (in nRF Connect)

In trying to use the Connect J-Link, I see the output (in part)

<debug> nrf_dfu_ble: Enabling the BLE stack.
<debug> nrf_dfu_ble: No advertising name found
<debug> nrf_dfu_ble: Using default advertising name
<debug> nrf_dfu_ble: Advertising...

As far as I know the advertising name is defined in the sdk_config.h?

// <s> NRF_DFU_BLE_ADV_NAME - Default advertising name.
#ifndef NRF_DFU_BLE_ADV_NAME
#define NRF_DFU_BLE_ADV_NAME "DfuTarg"
#endif

I've tried following the code and stepping into, but it's a rabbit warren and I got lost.

Can you help please.

Gordon

Parents
  • In nrf_dfu_ble.c I found some code

    #if (!NRF_DFU_BLE_REQUIRES_BONDS)
    
        err_code = gap_address_change();
        VERIFY_SUCCESS(err_code);
    
        if ((m_flags & DFU_BLE_FLAG_USE_ADV_NAME) != 0)
        {
            NRF_LOG_DEBUG("Setting adv name: %s, length: %d", m_adv_name.name, m_adv_name.len);
            device_name = m_adv_name.name;
            name_len    = m_adv_name.len;
        }
        else
    #endif

    So as far as I can tell by setting a break point m_flags is zero and DFU_BLE_FLAG_USE_ADV_NAME is decimal 2 binary 10

    So, and I admit my bitwise boolean algebra might be rusty but doesn't that give us 0000000000 = false?

    Probably irrelevant as m_adv_name.name is 0 anyway.

    However, it does point to the variable (struct)  m_adv_name, so where is that set?

    It is defined in this file, but I can't see where it's value is set? Has it been set? (if it's a static struct does that mean it's scope exists throughout the solution?)

Reply
  • In nrf_dfu_ble.c I found some code

    #if (!NRF_DFU_BLE_REQUIRES_BONDS)
    
        err_code = gap_address_change();
        VERIFY_SUCCESS(err_code);
    
        if ((m_flags & DFU_BLE_FLAG_USE_ADV_NAME) != 0)
        {
            NRF_LOG_DEBUG("Setting adv name: %s, length: %d", m_adv_name.name, m_adv_name.len);
            device_name = m_adv_name.name;
            name_len    = m_adv_name.len;
        }
        else
    #endif

    So as far as I can tell by setting a break point m_flags is zero and DFU_BLE_FLAG_USE_ADV_NAME is decimal 2 binary 10

    So, and I admit my bitwise boolean algebra might be rusty but doesn't that give us 0000000000 = false?

    Probably irrelevant as m_adv_name.name is 0 anyway.

    However, it does point to the variable (struct)  m_adv_name, so where is that set?

    It is defined in this file, but I can't see where it's value is set? Has it been set? (if it's a static struct does that mean it's scope exists throughout the solution?)

Children
No Data
Related