diff --git a/libraries/CurieBLE/src/internal/BLEProfileManager.cpp b/libraries/CurieBLE/src/internal/BLEProfileManager.cpp index 1211b4b8..aa43f63c 100644 --- a/libraries/CurieBLE/src/internal/BLEProfileManager.cpp +++ b/libraries/CurieBLE/src/internal/BLEProfileManager.cpp @@ -44,6 +44,7 @@ BLEProfileManager* BLEProfileManager::instance() BLEProfileManager::BLEProfileManager (): _start_discover(false), + _discover_gap_gatt(false), _discovering(false), _discover_rsp_timestamp(0), _cur_discover_service(NULL), diff --git a/system/libarc32_arduino101/drivers/rpc/rpc_deserialize.c b/system/libarc32_arduino101/drivers/rpc/rpc_deserialize.c index 5dd6fa7c..04870957 100644 --- a/system/libarc32_arduino101/drivers/rpc/rpc_deserialize.c +++ b/system/libarc32_arduino101/drivers/rpc/rpc_deserialize.c @@ -336,8 +336,6 @@ static void deserialize_control(uint8_t fn_index, const uint8_t *buf, rpc_init_cb(struct_data.version, true); } break; - break; - panic(-1); } } diff --git a/system/libarc32_arduino101/framework/src/services/ble/dtm.c b/system/libarc32_arduino101/framework/src/services/ble/dtm.c index 04a5afe3..9517c713 100644 --- a/system/libarc32_arduino101/framework/src/services/ble/dtm.c +++ b/system/libarc32_arduino101/framework/src/services/ble/dtm.c @@ -15,6 +15,7 @@ */ #include #include +#include #include #include @@ -40,6 +41,7 @@ int ble_dtm_cmd(struct dtm_cmd_params *params) { return -EINVAL; } + memset(&req, 0, sizeof(req)); switch(params->cmd_type) { case DTM_START_RX: req.tx_rx_freq = params->rx.freq; diff --git a/system/libarc32_arduino101/framework/src/services/ble/gap.c b/system/libarc32_arduino101/framework/src/services/ble/gap.c index cd272341..c2ed934b 100644 --- a/system/libarc32_arduino101/framework/src/services/ble/gap.c +++ b/system/libarc32_arduino101/framework/src/services/ble/gap.c @@ -385,6 +385,8 @@ static int hci_le_create_conn(struct bt_conn *conn) { struct nble_gap_connect_req conn_params; + memset(&conn_params, 0, sizeof(conn_params)); + conn_params.bda = conn->le.dst; conn_params.conn_params.interval_min = conn->le.interval_min; conn_params.conn_params.interval_max = conn->le.interval_max; diff --git a/system/libarc32_arduino101/framework/src/services/ble/gatt.c b/system/libarc32_arduino101/framework/src/services/ble/gatt.c index 22fe2701..f831572b 100644 --- a/system/libarc32_arduino101/framework/src/services/ble/gatt.c +++ b/system/libarc32_arduino101/framework/src/services/ble/gatt.c @@ -900,6 +900,7 @@ void on_nble_gatts_write_exec_evt(const struct nble_gatts_write_exec_evt *evt) req.conn_handle = evt->conn_handle; req.status = 0; + req.offset = 0; BT_DBG("write_exec_evt"); diff --git a/variants/arduino_101/libarc32drv_arduino101.a b/variants/arduino_101/libarc32drv_arduino101.a index 61019398..70fb9e49 100644 Binary files a/variants/arduino_101/libarc32drv_arduino101.a and b/variants/arduino_101/libarc32drv_arduino101.a differ