component/bt : support UART HCI and fix some bugs
1. support UART HCI, devolper need not to make a bridge between VHCI and UART. 2. fix bug of rand/srand called in ISR. 3. fix bug of BLE rx packets may cause assert.
This commit is contained in:
parent
f5ebeb4c4d
commit
95d691afdb
3 changed files with 28 additions and 8 deletions
|
@ -33,12 +33,12 @@ config BT_DRAM_RELEASE
|
|||
Open this option will release about 30K DRAM from Classic BT.
|
||||
The released DRAM will be used as system heap memory.
|
||||
|
||||
#config BTDM_CONTROLLER_RUN_APP_CPU
|
||||
# bool "Run controller on APP CPU"
|
||||
# depends on BT_ENABLED
|
||||
# default n
|
||||
# help
|
||||
# Run controller on APP CPU.
|
||||
config BTDM_CONTROLLER_RUN_APP_CPU
|
||||
bool "Run controller on APP CPU"
|
||||
depends on BT_ENABLED && !FREERTOS_UNICORE && 0
|
||||
default n
|
||||
help
|
||||
Run controller on APP CPU.
|
||||
|
||||
menuconfig HCI_UART
|
||||
bool "HCI use UART as IO"
|
||||
|
|
|
@ -87,6 +87,8 @@ struct osi_funcs_t {
|
|||
int32_t (*_mutex_lock)(void *mutex);
|
||||
int32_t (*_mutex_unlock)(void *mutex);
|
||||
int32_t (* _read_efuse_mac)(uint8_t mac[6]);
|
||||
void (* _srand)(unsigned int seed);
|
||||
int (* _rand)(void);
|
||||
};
|
||||
|
||||
/* Static variable declare */
|
||||
|
@ -142,6 +144,16 @@ static int32_t IRAM_ATTR read_mac_wrapper(uint8_t mac[6])
|
|||
return esp_read_mac(mac, ESP_MAC_BT);
|
||||
}
|
||||
|
||||
static void IRAM_ATTR srand_wrapper(unsigned int seed)
|
||||
{
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
static int IRAM_ATTR rand_wrapper(void)
|
||||
{
|
||||
return (int)esp_random();
|
||||
}
|
||||
|
||||
static struct osi_funcs_t osi_funcs = {
|
||||
._set_isr = xt_set_interrupt_handler,
|
||||
._ints_on = xt_ints_on,
|
||||
|
@ -154,7 +166,9 @@ static struct osi_funcs_t osi_funcs = {
|
|||
._mutex_create = mutex_create_wrapper,
|
||||
._mutex_lock = mutex_lock_wrapper,
|
||||
._mutex_unlock = mutex_unlock_wrapper,
|
||||
._read_efuse_mac = read_mac_wrapper
|
||||
._read_efuse_mac = read_mac_wrapper,
|
||||
._srand = srand_wrapper,
|
||||
._rand = rand_wrapper,
|
||||
};
|
||||
|
||||
bool esp_vhci_host_check_send_available(void)
|
||||
|
@ -223,9 +237,15 @@ void esp_bt_controller_init()
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BTDM_CONTROLLER_RUN_APP_CPU
|
||||
xTaskCreatePinnedToCore(bt_controller_task, "btController",
|
||||
ESP_TASK_BT_CONTROLLER_STACK, NULL,
|
||||
ESP_TASK_BT_CONTROLLER_PRIO, &btControllerTaskHandle, 1);
|
||||
#else
|
||||
xTaskCreatePinnedToCore(bt_controller_task, "btController",
|
||||
ESP_TASK_BT_CONTROLLER_STACK, NULL,
|
||||
ESP_TASK_BT_CONTROLLER_PRIO, &btControllerTaskHandle, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
void esp_bt_controller_deinit(void)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit f1c0c65171e5bd02e1d63137b3582af3bcbb85a4
|
||||
Subproject commit 0986936c6d21a009d7d4249cbae8a23b0f3bd20b
|
Loading…
Reference in a new issue