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.
