]> granicus.if.org Git - esp-idf/commitdiff
component/bt : change task to decease dram(heap)
authorTian Hao <tianhao@espressif.com>
Fri, 25 Nov 2016 15:37:46 +0000 (23:37 +0800)
committerTian Hao <tianhao@espressif.com>
Fri, 25 Nov 2016 15:37:46 +0000 (23:37 +0800)
1. decrease the task size(HCI cannot < 1024, btu cannot < 4096)
2. btc task can config by menuconfig(default 2048)

components/bt/Kconfig
components/bt/bluedroid/btc/include/btc_task.h
components/bt/bluedroid/hci/hci_hal_h4.c
components/bt/bluedroid/hci/hci_layer.c
components/bt/bluedroid/osi/include/thread.h
components/bt/bluedroid/stack/btu/btu_init.c

index e2f7d973408dc85ee48042317d4669e322368398..4e8e3179277bbf7a56b052f17c0111acbbe18472 100644 (file)
@@ -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
index 923b8b84e5c76e3d470c343b524017aeba7dd499..1574dae2f351b651682429e6631a69c14c99a56f 100644 (file)
 
 #include <stdint.h>
 #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
index 8665dd284eb4bc74680e8da428c07b19c59115c3..922ee6ecc06fecd9eea0b8b24564781ea7813f7e 100644 (file)
@@ -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);
index 46272689774befd6d7fd204a174ab1579a909ae7..045b0c359eca2d6f7d3d0b0ff8b25727f65f153d 100644 (file)
@@ -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);
index f760ec0b2775182c5351d7830372f63e14b1d0a0..11bf0f585047f34c2f52e65b76c6b1f77b5cf16f 100644 (file)
@@ -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);
index 4c59d6f75bbf49644b7abc549131b1e7e47a278c..b4309f42c4b76792f5782e94d955132e7bd1bf2a 100644 (file)
@@ -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.