7
7
#include <zephyr/kernel.h>
8
8
#include <zephyr/init.h>
9
9
10
+ #include "app_conf.h"
11
+ #if defined(CONFIG_BT_STM32WBA )
10
12
#include "blestack.h"
11
13
#include "bpka.h"
14
+ #endif /* CONFIG_BT_STM32WBA */
12
15
#include "ll_intf.h"
13
16
14
17
K_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 ;
16
20
struct k_work ble_ctrl_stack_work , bpka_work ;
17
-
21
+ #endif /* CONFIG_BT_STM32WBA */
22
+ struct k_work_q ll_work_q ;
18
23
uint8_t ll_state_busy ;
19
24
20
25
/* TODO: More tests to be done to optimize thread stacks' sizes */
26
+ #if defined(CONFIG_BT_STM32WBA )
21
27
#define BLE_CTRL_THREAD_STACK_SIZE (256 * 7)
22
- #define LL_THREAD_STACK_SIZE (256 * 7)
23
28
#define BLE_CTRL_THREAD_PRIO (14)
29
+ #endif /* CONFIG_BT_STM32WBA */
30
+ #define LL_THREAD_STACK_SIZE (256 * 7)
31
+
24
32
/* The LL thread has higher priority than the BLE CTRL thread and the Zephyr BLE stack threads */
25
33
#define LL_THREAD_PRIO (4)
26
34
35
+ #if defined(CONFIG_BT_STM32WBA )
27
36
K_THREAD_STACK_DEFINE (ble_ctrl_work_area , BLE_CTRL_THREAD_STACK_SIZE );
37
+ #endif /* CONFIG_BT_STM32WBA */
28
38
K_THREAD_STACK_DEFINE (ll_work_area , LL_THREAD_STACK_SIZE );
29
39
40
+ #if defined(CONFIG_BT_STM32WBA )
30
41
void HostStack_Process (void );
42
+ #endif /* CONFIG_BT_STM32WBA */
31
43
44
+ #if defined(CONFIG_BT_STM32WBA )
32
45
static void ble_ctrl_stack_handler (struct k_work * work )
33
46
{
34
47
uint8_t running = 0x00 ;
@@ -53,25 +66,33 @@ static void bpka_work_handler(struct k_work *work)
53
66
{
54
67
BPKA_BG_Process ();
55
68
}
69
+ #endif /* CONFIG_BT_STM32WBA */
56
70
57
- static int stm32wba_ble_ctrl_init (void )
71
+ static int stm32wba_ctrl_init (void )
58
72
{
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
+
59
78
k_work_queue_init (& ble_ctrl_work_q );
60
79
k_work_queue_start (& ble_ctrl_work_q , ble_ctrl_work_area ,
61
80
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 */
63
86
64
87
k_work_queue_init (& ll_work_q );
65
88
k_work_queue_start (& ll_work_q , ll_work_area ,
66
89
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 );
71
91
72
92
return 0 ;
73
93
}
74
94
95
+ #if defined(CONFIG_BT_STM32WBA )
75
96
void HostStack_Process (void )
76
97
{
77
98
k_work_submit_to_queue (& ble_ctrl_work_q , & ble_ctrl_stack_work );
@@ -81,5 +102,6 @@ void BPKACB_Process(void)
81
102
{
82
103
k_work_submit_to_queue (& ble_ctrl_work_q , & bpka_work );
83
104
}
105
+ #endif /* CONFIG_BT_STM32WBA */
84
106
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