Hi,I have some problems when disable peer manage in ble_app_buttonless_dfu project in sdk15.3.0 on nrf52810.
I disable PEER_MANAGER_ENABLED in config.h and remove the peer manage module relevant code in main.c.
In config.h
// <e> PEER_MANAGER_ENABLED - peer_manager - Peer Manager //========================================================== #ifndef PEER_MANAGER_ENABLED #define PEER_MANAGER_ENABLED 0//1 //For_code_size_optimization//DEBUG_BY_LUOGF #endif
In main.c
#if 1 //For_code_size_optimization #else /**@brief Function for handling Peer Manager events. * * @param[in] p_evt Peer Manager event. */ static void pm_evt_handler(pm_evt_t const * p_evt) { pm_handler_on_pm_evt(p_evt); pm_handler_flash_clean(p_evt); } #endif #if 1 //For_code_size_optimization #else /**@brief Function for the Peer Manager initialization. */ static void peer_manager_init() { ble_gap_sec_params_t sec_param; ret_code_t err_code; err_code = pm_init(); APP_ERROR_CHECK(err_code); memset(&sec_param, 0, sizeof(ble_gap_sec_params_t)); // Security parameters to be used for all security procedures. sec_param.bond = SEC_PARAM_BOND; sec_param.mitm = SEC_PARAM_MITM; sec_param.lesc = SEC_PARAM_LESC; sec_param.keypress = SEC_PARAM_KEYPRESS; sec_param.io_caps = SEC_PARAM_IO_CAPABILITIES; sec_param.oob = SEC_PARAM_OOB; sec_param.min_key_size = SEC_PARAM_MIN_KEY_SIZE; sec_param.max_key_size = SEC_PARAM_MAX_KEY_SIZE; sec_param.kdist_own.enc = 1; sec_param.kdist_own.id = 1; sec_param.kdist_peer.enc = 1; sec_param.kdist_peer.id = 1; err_code = pm_sec_params_set(&sec_param); APP_ERROR_CHECK(err_code); err_code = pm_register(pm_evt_handler); APP_ERROR_CHECK(err_code); } /** @brief Clear bonding information from persistent storage. */ static void delete_bonds(void) { ret_code_t err_code; NRF_LOG_INFO("Erase bonds!"); err_code = pm_peers_delete(); APP_ERROR_CHECK(err_code); } #endif /**@brief Function for application main entry. */ int main(void) { bool erase_bonds; ret_code_t err_code; log_init(); #if 0 // Initialize the async SVCI interface to bootloader before any interrupts are enabled. err_code = ble_dfu_buttonless_async_svci_init(); APP_ERROR_CHECK(err_code); #endif timers_init(); power_management_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); #if 1 //For_code_size_optimization #else peer_manager_init(); #endif gap_params_init(); gatt_init(); advertising_init(); services_init(); conn_params_init(); NRF_LOG_INFO("Buttonless DFU Application started."); // Start execution. application_timers_start(); advertising_start(erase_bonds); // Enter main loop. for (;;) { idle_state_handle(); } }
The device advertise well, but can not be connected by application.
I wonder if I miss something useful.ThanKs.