77#include <zephyr/kernel.h>
88#include <zephyr/init.h>
99
10+ #include "app_conf.h"
11+ #if defined(CONFIG_BT_STM32WBA )
1012#include "blestack.h"
1113#include "bpka.h"
14+ #endif /* CONFIG_BT_STM32WBA */
1215#include "ll_intf.h"
1316
1417K_MUTEX_DEFINE (ble_ctrl_stack_mutex );
15- struct k_work_q ble_ctrl_work_q , ll_work_q ;
18+ #if defined(CONFIG_BT_STM32WBA )
19+ struct k_work_q ble_ctrl_work_q ;
1620struct k_work ble_ctrl_stack_work , bpka_work ;
17-
21+ #endif /* CONFIG_BT_STM32WBA */
22+ struct k_work_q ll_work_q ;
1823uint8_t ll_state_busy ;
1924
2025/* TODO: More tests to be done to optimize thread stacks' sizes */
26+ #if defined(CONFIG_BT_STM32WBA )
2127#define BLE_CTRL_THREAD_STACK_SIZE (256 * 7)
22- #define LL_THREAD_STACK_SIZE (256 * 7)
2328#define BLE_CTRL_THREAD_PRIO (14)
29+ #endif /* CONFIG_BT_STM32WBA */
30+ #define LL_THREAD_STACK_SIZE (256 * 7)
31+
2432/* The LL thread has higher priority than the BLE CTRL thread and the Zephyr BLE stack threads */
2533#define LL_THREAD_PRIO (4)
2634
35+ #if defined(CONFIG_BT_STM32WBA )
2736K_THREAD_STACK_DEFINE (ble_ctrl_work_area , BLE_CTRL_THREAD_STACK_SIZE );
37+ #endif /* CONFIG_BT_STM32WBA */
2838K_THREAD_STACK_DEFINE (ll_work_area , LL_THREAD_STACK_SIZE );
2939
40+ #if defined(CONFIG_BT_STM32WBA )
3041void HostStack_Process (void );
42+ #endif /* CONFIG_BT_STM32WBA */
3143
44+ #if defined(CONFIG_BT_STM32WBA )
3245static void ble_ctrl_stack_handler (struct k_work * work )
3346{
3447uint8_t running = 0x00 ;
@@ -53,25 +66,33 @@ static void bpka_work_handler(struct k_work *work)
5366{
5467BPKA_BG_Process ();
5568}
69+ #endif /* CONFIG_BT_STM32WBA */
5670
57- static int stm32wba_ble_ctrl_init (void )
71+ static int stm32wba_ctrl_init (void )
5872{
73+ struct k_work_queue_config ll_cfg = {.name = "LL thread" };
74+
75+ #if defined(CONFIG_BT_STM32WBA )
76+ struct k_work_queue_config ble_ctrl_cfg = {.name = "ble ctrl thread" };
77+
5978k_work_queue_init (& ble_ctrl_work_q );
6079k_work_queue_start (& ble_ctrl_work_q , ble_ctrl_work_area ,
6180 K_THREAD_STACK_SIZEOF (ble_ctrl_work_area ),
62- BLE_CTRL_THREAD_PRIO , NULL );
81+ BLE_CTRL_THREAD_PRIO , & ble_ctrl_cfg );
82+
83+ k_work_init (& ble_ctrl_stack_work , & ble_ctrl_stack_handler );
84+ k_work_init (& bpka_work , & bpka_work_handler );
85+ #endif /* CONFIG_BT_STM32WBA */
6386
6487k_work_queue_init (& ll_work_q );
6588k_work_queue_start (& ll_work_q , ll_work_area ,
6689 K_THREAD_STACK_SIZEOF (ll_work_area ),
67- LL_THREAD_PRIO , NULL );
68-
69- k_work_init (& ble_ctrl_stack_work , & ble_ctrl_stack_handler );
70- k_work_init (& bpka_work , & bpka_work_handler );
90+ LL_THREAD_PRIO , & ll_cfg );
7191
7292return 0 ;
7393}
7494
95+ #if defined(CONFIG_BT_STM32WBA )
7596void HostStack_Process (void )
7697{
7798k_work_submit_to_queue (& ble_ctrl_work_q , & ble_ctrl_stack_work );
@@ -81,5 +102,6 @@ void BPKACB_Process(void)
81102{
82103k_work_submit_to_queue (& ble_ctrl_work_q , & bpka_work );
83104}
105+ #endif /* CONFIG_BT_STM32WBA */
84106
85- SYS_INIT (stm32wba_ble_ctrl_init , POST_KERNEL , CONFIG_KERNEL_INIT_PRIORITY_DEFAULT );
107+ SYS_INIT (stm32wba_ctrl_init , POST_KERNEL , CONFIG_KERNEL_INIT_PRIORITY_DEFAULT );
0 commit comments