Hello,
I'm using a nrf51822 board as a DFU controller to update another board's application, the client board runs the bootloader secure example. When I write data to the control point characteristic, the client board does not generate any event. It should generate a BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event on the client board.
The function write data as fellows:
uint32_t ble_dfu_send_cmd(ble_dfu_target *p_ble_dfu_target, uint8_t *p_string, uint16_t length) { VERIFY_PARAM_NOT_NULL(p_ble_dfu_target); if (length > 20) { return NRF_ERROR_INVALID_PARAM; } if ( p_ble_dfu_target->conn_handle == BLE_CONN_HANDLE_INVALID) { return NRF_ERROR_INVALID_STATE; } const ble_gattc_write_params_t write_params = { .write_op = BLE_GATTS_OP_WRITE_CMD, .flags = BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE, .handle = p_ble_dfu_target->handles.dfu_ctrl_pt_handle, .offset = 0, .len = length, .p_value = p_string }; return sd_ble_gattc_write(p_ble_dfu_target->conn_handle, &write_params); }
And I use 12.3.0 SDK and s130 softdevice