From ac87ddfb0561ee5c141453c6dc3b6c205d10b11b Mon Sep 17 00:00:00 2001 From: Tian Hao Date: Fri, 25 Nov 2016 15:54:18 +0800 Subject: [PATCH 1/3] component/bt : close sdp to free dram 1. free 15K --- components/bt/bluedroid/bta/include/bta_api.h | 1 + components/bt/bluedroid/include/bt_target.h | 2 +- components/bt/bluedroid/stack/btm/btm_ble_gap.c | 4 +++- components/bt/bluedroid/stack/gap/gap_ble.c | 1 + components/bt/bluedroid/stack/gatt/gatt_api.c | 3 ++- components/bt/bluedroid/stack/gatt/gatt_attr.c | 1 + components/bt/bluedroid/stack/include/dyn_mem.h | 3 ++- components/bt/bluedroid/stack/include/gap_api.h | 1 + 8 files changed, 12 insertions(+), 4 deletions(-) diff --git a/components/bt/bluedroid/bta/include/bta_api.h b/components/bt/bluedroid/bta/include/bta_api.h index f9c6c154f5..338fb96891 100644 --- a/components/bt/bluedroid/bta/include/bta_api.h +++ b/components/bt/bluedroid/bta/include/bta_api.h @@ -29,6 +29,7 @@ #include "bt_types.h" #include "btm_api.h" // #include "uipc_msg.h" +#include "sdp_api.h" #if BLE_INCLUDED == TRUE #include "btm_ble_api.h" diff --git a/components/bt/bluedroid/include/bt_target.h b/components/bt/bluedroid/include/bt_target.h index 5f894a5d61..e9a1625e01 100644 --- a/components/bt/bluedroid/include/bt_target.h +++ b/components/bt/bluedroid/include/bt_target.h @@ -978,7 +978,7 @@ ******************************************************************************/ #ifndef SDP_INCLUDED -#define SDP_INCLUDED TRUE +#define SDP_INCLUDED FALSE //TRUE #endif /* This is set to enable SDP server functionality. */ diff --git a/components/bt/bluedroid/stack/btm/btm_ble_gap.c b/components/bt/bluedroid/stack/btm/btm_ble_gap.c index 0e484d9526..906300a8a8 100644 --- a/components/bt/bluedroid/stack/btm/btm_ble_gap.c +++ b/components/bt/bluedroid/stack/btm/btm_ble_gap.c @@ -2615,13 +2615,15 @@ BOOLEAN btm_ble_update_inq_result(tINQ_DB_ENT *p_i, UINT8 addr_type, UINT8 evt_t BTM_BLE_AD_TYPE_16SRV_CMPL, &len)) != NULL) { UINT8 i; for (i = 0; i + 2 <= len; i = i + 2) { - /* if this BLE device support HID over LE, set HID Major in class of device */ +#if BTA_HH_LE_INCLUDED == TRUE + /* if this BLE device support HID over LE, set HID Major in class of device */ if ((p_uuid16[i] | (p_uuid16[i + 1] << 8)) == UUID_SERVCLASS_LE_HID) { p_cur->dev_class[0] = 0; p_cur->dev_class[1] = BTM_COD_MAJOR_PERIPHERAL; p_cur->dev_class[2] = 0; break; } +#endif /* BTA_HH_LE_INCLUDED */ } } } diff --git a/components/bt/bluedroid/stack/gap/gap_ble.c b/components/bt/bluedroid/stack/gap/gap_ble.c index 70c4a22f69..b560fad651 100644 --- a/components/bt/bluedroid/stack/gap/gap_ble.c +++ b/components/bt/bluedroid/stack/gap/gap_ble.c @@ -28,6 +28,7 @@ #include "gatt_int.h" #include "btm_int.h" #include "hcimsgs.h" +#include "sdpdefs.h" #define GAP_CHAR_ICON_SIZE 2 #define GAP_CHAR_DEV_NAME_SIZE 248 diff --git a/components/bt/bluedroid/stack/gatt/gatt_api.c b/components/bt/bluedroid/stack/gatt/gatt_api.c index 1a61d60b14..c464508da9 100644 --- a/components/bt/bluedroid/stack/gatt/gatt_api.c +++ b/components/bt/bluedroid/stack/gatt/gatt_api.c @@ -33,7 +33,8 @@ #include "gatt_int.h" #include "l2c_api.h" #include "btm_int.h" - +#include "sdpdefs.h" +#include "sdp_api.h" /******************************************************************************* ** diff --git a/components/bt/bluedroid/stack/gatt/gatt_attr.c b/components/bt/bluedroid/stack/gatt/gatt_attr.c index b7a87192b4..b0aa3f71d1 100644 --- a/components/bt/bluedroid/stack/gatt/gatt_attr.c +++ b/components/bt/bluedroid/stack/gatt/gatt_attr.c @@ -28,6 +28,7 @@ #include "gatt_api.h" #include "gatt_int.h" +#include "sdpdefs.h" #if BLE_INCLUDED == TRUE diff --git a/components/bt/bluedroid/stack/include/dyn_mem.h b/components/bt/bluedroid/stack/include/dyn_mem.h index 2693ae6362..9a95fb9565 100755 --- a/components/bt/bluedroid/stack/include/dyn_mem.h +++ b/components/bt/bluedroid/stack/include/dyn_mem.h @@ -31,7 +31,8 @@ #endif #ifndef SDP_DYNAMIC_MEMORY -#define SDP_DYNAMIC_MEMORY FALSE +//#define SDP_DYNAMIC_MEMORY FALSE +#define SDP_DYNAMIC_MEMORY TRUE #endif #ifndef L2C_DYNAMIC_MEMORY diff --git a/components/bt/bluedroid/stack/include/gap_api.h b/components/bt/bluedroid/stack/include/gap_api.h index 2dc9836a88..1f22db008d 100644 --- a/components/bt/bluedroid/stack/include/gap_api.h +++ b/components/bt/bluedroid/stack/include/gap_api.h @@ -19,6 +19,7 @@ #ifndef GAP_API_H #define GAP_API_H +#include "sdpdefs.h" #include "profiles_api.h" #include "btm_api.h" #include "l2c_api.h" From c9a0b9a45c94ffa8ddff12ef849c7ea77fc556e1 Mon Sep 17 00:00:00 2001 From: Tian Hao Date: Fri, 25 Nov 2016 21:24:16 +0800 Subject: [PATCH 2/3] component/bt : decrese dram 1. decrease some resource --- components/bt/bluedroid/bta/dm/bta_dm_act.c | 2 +- components/bt/bluedroid/bta/include/bta_gattc_int.h | 4 ++-- components/bt/bluedroid/include/bt_target.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/bt/bluedroid/bta/dm/bta_dm_act.c b/components/bt/bluedroid/bta/dm/bta_dm_act.c index 7b60655691..155602fac7 100644 --- a/components/bt/bluedroid/bta/dm/bta_dm_act.c +++ b/components/bt/bluedroid/bta/dm/bta_dm_act.c @@ -227,7 +227,7 @@ const tBTM_APPL_INFO bta_security = { }; -#define MAX_DISC_RAW_DATA_BUF (4096) +#define MAX_DISC_RAW_DATA_BUF (1024) UINT8 g_disc_raw_data_buf[MAX_DISC_RAW_DATA_BUF]; extern DEV_CLASS local_device_default_class; diff --git a/components/bt/bluedroid/bta/include/bta_gattc_int.h b/components/bt/bluedroid/bta/include/bta_gattc_int.h index bc200eddc3..d50c66226e 100644 --- a/components/bt/bluedroid/bta/include/bta_gattc_int.h +++ b/components/bt/bluedroid/bta/include/bta_gattc_int.h @@ -77,12 +77,12 @@ typedef UINT16 tBTA_GATTC_INT_EVT; /* max client application GATTC can support */ #ifndef BTA_GATTC_CL_MAX -#define BTA_GATTC_CL_MAX 8 // 32 +#define BTA_GATTC_CL_MAX 3 // 32 #endif /* max known devices GATTC can support */ #ifndef BTA_GATTC_KNOWN_SR_MAX -#define BTA_GATTC_KNOWN_SR_MAX 5 // 10 +#define BTA_GATTC_KNOWN_SR_MAX 3 // 10 #endif #define BTA_GATTC_CONN_MAX GATT_MAX_PHY_CHANNEL diff --git a/components/bt/bluedroid/include/bt_target.h b/components/bt/bluedroid/include/bt_target.h index e9a1625e01..9d042a2b4c 100644 --- a/components/bt/bluedroid/include/bt_target.h +++ b/components/bt/bluedroid/include/bt_target.h @@ -403,7 +403,7 @@ /* Includes SCO if TRUE */ #ifndef BTM_SCO_INCLUDED -#define BTM_SCO_INCLUDED TRUE /* TRUE includes SCO code */ +#define BTM_SCO_INCLUDED FALSE //TRUE /* TRUE includes SCO code */ #endif /* Includes SCO if TRUE */ @@ -480,7 +480,7 @@ /* The number of SCO links. */ #ifndef BTM_MAX_SCO_LINKS -#define BTM_MAX_SCO_LINKS 3 +#define BTM_MAX_SCO_LINKS 1 //3 #endif /* The preferred type of SCO links (2-eSCO, 0-SCO). */ From 1173106a20b64b6285efa64570ea237e0bd4642a Mon Sep 17 00:00:00 2001 From: Tian Hao Date: Fri, 25 Nov 2016 23:37:46 +0800 Subject: [PATCH 3/3] component/bt : change task to decease dram(heap) 1. decrease the task size(HCI cannot < 1024, btu cannot < 4096) 2. btc task can config by menuconfig(default 2048) --- components/bt/Kconfig | 11 ++++++++-- .../bt/bluedroid/btc/include/btc_task.h | 6 +----- components/bt/bluedroid/hci/hci_hal_h4.c | 4 ++-- components/bt/bluedroid/hci/hci_layer.c | 4 ++-- components/bt/bluedroid/osi/include/thread.h | 20 +++++++++++++++++++ components/bt/bluedroid/stack/btu/btu_init.c | 2 +- 6 files changed, 35 insertions(+), 12 deletions(-) diff --git a/components/bt/Kconfig b/components/bt/Kconfig index e2f7d97340..4e8e317927 100644 --- a/components/bt/Kconfig +++ b/components/bt/Kconfig @@ -8,11 +8,11 @@ config BT_ENABLED help This compiles in the low-level BT stack. -menu "BT_UTIL" +menu "BT UTILITY OPTION" visible if BT_ENABLED config BT_USE_ETS_PRINT - bool "BT USE ETS_PRINT" + bool "BT use print which has lock" default y depends on BT_ENABLED help @@ -20,6 +20,13 @@ config BT_USE_ETS_PRINT endmenu #menu +config BTC_TASK_STACK_SIZE + int "BT event (callback to application) task stack size" + default 2048 + depends on BT_ENABLED + help + This select btc task stack size + #config BT_BTLE # bool "Enable BTLE" # depends on BT_ENABLED diff --git a/components/bt/bluedroid/btc/include/btc_task.h b/components/bt/bluedroid/btc/include/btc_task.h index 923b8b84e5..1574dae2f3 100644 --- a/components/bt/bluedroid/btc/include/btc_task.h +++ b/components/bt/bluedroid/btc/include/btc_task.h @@ -17,11 +17,7 @@ #include #include "bt_defs.h" - -#define BTC_TASK_QUEUE_NUM 20 -#define BTC_TASK_STACK_SIZE 4096 -#define BTC_TASK_NAME "btcT" -#define BTC_TASK_PRIO (configMAX_PRIORITIES - 5) +#include "thread.h" typedef struct btc_msg { uint8_t sig; //event signal diff --git a/components/bt/bluedroid/hci/hci_hal_h4.c b/components/bt/bluedroid/hci/hci_hal_h4.c index 8665dd284e..922ee6ecc0 100644 --- a/components/bt/bluedroid/hci/hci_hal_h4.c +++ b/components/bt/bluedroid/hci/hci_hal_h4.c @@ -101,8 +101,8 @@ static bool hal_open(const hci_hal_callbacks_t *upper_callbacks) hci_hal_env_init(HCI_HAL_SERIAL_BUFFER_SIZE, SIZE_MAX); - xHciH4Queue = xQueueCreate(60, sizeof(BtTaskEvt_t)); - xTaskCreate(hci_hal_h4_rx_handler, "HciH4T", 4096 + 2048, NULL, configMAX_PRIORITIES - 3, &xHciH4TaskHandle); + xHciH4Queue = xQueueCreate(HCI_H4_QUEUE_NUM, sizeof(BtTaskEvt_t)); + xTaskCreate(hci_hal_h4_rx_handler, HCI_H4_TASK_NAME, HCI_H4_TASK_STACK_SIZE, NULL, HCI_H4_TASK_PRIO, &xHciH4TaskHandle); //register vhci host cb API_vhci_host_register_callback(&vhci_host_cb); diff --git a/components/bt/bluedroid/hci/hci_layer.c b/components/bt/bluedroid/hci/hci_layer.c index 4627268977..045b0c359e 100644 --- a/components/bt/bluedroid/hci/hci_layer.c +++ b/components/bt/bluedroid/hci/hci_layer.c @@ -113,8 +113,8 @@ int hci_start_up(void) goto error; } - xHciHostQueue = xQueueCreate(60, sizeof(BtTaskEvt_t)); - xTaskCreate(hci_host_thread_handler, "HciHostT", (4096 + 2048), NULL, configMAX_PRIORITIES - 3, &xHciHostTaskHandle); + xHciHostQueue = xQueueCreate(HCI_HOST_QUEUE_NUM, sizeof(BtTaskEvt_t)); + xTaskCreate(hci_host_thread_handler, HCI_HOST_TASK_NAME, HCI_HOST_TASK_STACK_SIZE, NULL, HCI_HOST_TASK_PRIO, &xHciHostTaskHandle); packet_fragmenter->init(&packet_fragmenter_callbacks); hal->open(&hal_callbacks); diff --git a/components/bt/bluedroid/osi/include/thread.h b/components/bt/bluedroid/osi/include/thread.h index f760ec0b27..11bf0f5850 100644 --- a/components/bt/bluedroid/osi/include/thread.h +++ b/components/bt/bluedroid/osi/include/thread.h @@ -43,6 +43,26 @@ enum { SIG_BTIF_WORK = 0xff }; +#define HCI_HOST_TASK_STACK_SIZE 1024 +#define HCI_HOST_TASK_PRIO (configMAX_PRIORITIES - 3) +#define HCI_HOST_TASK_NAME "hciHostT" +#define HCI_HOST_QUEUE_NUM 30 + +#define HCI_H4_TASK_STACK_SIZE 1024 +#define HCI_H4_TASK_PRIO (configMAX_PRIORITIES - 3) +#define HCI_H4_TASK_NAME "hciH4T" +#define HCI_H4_QUEUE_NUM 30 + +#define BTU_TASK_STACK_SIZE 4096 +#define BTU_TASK_PRIO (configMAX_PRIORITIES - 1) +#define BTU_TASK_NAME "btuT" +#define BTU_QUEUE_NUM 30 + +#define BTC_TASK_QUEUE_NUM 20 +#define BTC_TASK_STACK_SIZE CONFIG_BTC_TASK_STACK_SIZE //by menuconfig +#define BTC_TASK_NAME "btcT" +#define BTC_TASK_PRIO (configMAX_PRIORITIES - 5) + void btu_task_post(uint32_t sig); void hci_host_task_post(void); void hci_hal_h4_task_post(void); diff --git a/components/bt/bluedroid/stack/btu/btu_init.c b/components/bt/bluedroid/stack/btu/btu_init.c index 4c59d6f75b..b4309f42c4 100644 --- a/components/bt/bluedroid/stack/btu/btu_init.c +++ b/components/bt/bluedroid/stack/btu/btu_init.c @@ -201,7 +201,7 @@ void BTU_StartUp(void) } xBtuQueue = xQueueCreate(60, sizeof(BtTaskEvt_t)); - xTaskCreate(btu_task_thread_handler, "BtuT", 8192, NULL, configMAX_PRIORITIES - 1, &xBtuTaskHandle); + xTaskCreate(btu_task_thread_handler, BTU_TASK_NAME, BTU_TASK_STACK_SIZE, NULL, BTU_TASK_PRIO, &xBtuTaskHandle); btu_task_post(SIG_BTU_START_UP); /* // Continue startup on bt workqueue thread.