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

Tutorial on setting up the bootloader for nrf52832 in IAR

Hi.

 

I' m using nRF52832, SDK v15.0.0, S132.

 

I'm want tutorial how make bootloader DFU in IAR.

 

How I make bootloader DFU for nrf52832 in IAR?

Parents Reply Children
  • Thanks bjorn-spockeli. 

    I get new problem. I mayn't build progect in IAR. Progect  Buttonless DFU.

    I get errors:

    Error[Pe020]: identifier "nrf_dfu_set_peer_data_svci_async_t" is undefined 
    Error[Pe020]: identifier "nrf_dfu_set_peer_data_svci_async_t" is undefined 
    Error[Pe020]: identifier "nrf_dfu_set_peer_data_svci_async_t" is undefined 3
    Error[Pe020]: identifier "nrf_dfu_peer_data_t" is undefined 
    Error[Pe020]: identifier "nrf_dfu_peer_data_t" is undefined 
    Error[Pe020]: identifier "SYSTEM_SERVICE_ATT_SIZE" is undefined  

  • nrf_dfu_peer_data_t is defined in nrf_dfu_types.h - Make sure that you have added this in the include path in IAR ( the file is located in components\libraries\bootloader\dfu) 

    nrf_dfu_set_peer_data_svci_async_t is defined when NRF_SVCI_ASYNC_FUNC_DECLARE(NRF_DFU_SVCI_SET_PEER_DATA, nrf_dfu_set_peer_data, nrf_dfu_peer_data_t, nrf_dfu_peer_data_state_t); is called nrf_dfu_ble_svci_bond_sharing.h

    #define NRF_SVCI_ASYNC_FUNC_DECLARE(svci_num,                                           \
                                        name,                                               \
                                        param_type,                                         \
                                        state_type)                                         \
    /*lint --e{19} */                                                                       \
    NRF_SVCI_ACYNC_FUNC_TYPEDEF(name, param_type, state_type);                              \
    NRF_SVCI_ASYNC_EVENT_FUNC_TYPEDEF(name, state_type);                                    \
                                                                                            \
    typedef struct                                                                          \
    {                                                                                       \
        name ## _async_fn_t     async_func;                                                 \
        name ## _event_fn_t     sys_evt_handler;                                            \
        state_type              state;                                                      \
    } name ## _svci_async_t;
    

  • I add file \libraries\bootloader\dfu figure IAR error_1.

    I include in main.c following libraries:

    #include "nrf_dfu_ble_svci_bond_sharing.h"
    #include "nrf_svci_async_function.h"
    #include "nrf_svci_async_handler.h"


    figure library nrf_dfu_ble_svci_bond_sharing.h

    figure library nrf_svci_async_function.h

    Errors remained.

  • I build project.  

    I added peer_id.c, peer_data_storage.c, peer_database.c, peer_manager.c, pm_buffer.c, pm_mutex.c, security_dispatcher.c, security_manager.c, gatt_cache_manager.c, gatts_cache_manager.c,id_manager.c include in sdk_config.h CRC16_EABLE, FDS_ENABLE, NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS,  NRF_SDH_BLE_SERVICE_CHANGED and BLE_DFU_ENABLED and added BL_SETTINGS_ACCESS_ONLY, NRF_DFU_SVCI_ENABLED
    NRF_DFU_TRANSPORT_BLE=1

    There is a guide or an application note that explains the several steps needed to integrate buttonless DFU to a custom application?

    What do I must make for full completions buttonless DFU?

  • No, unfortunately we do not have such a guide. 

    I suggest that you compare the project settings of your ble_app_uart project IAR project with the settings of the ble_app_buttonless_dfu IAR project. You will then see which .c files that are nescessary , which paths to .h files that must be added to the include directories path and which Preprocessor definitions that are needed. 

Related