|
5 | 5 | ***************************************************************************** |
6 | 6 | * @attention |
7 | 7 | * |
8 | | - * Copyright (c) 2018-2023 STMicroelectronics. |
| 8 | + * Copyright (c) 2018-2024 STMicroelectronics. |
9 | 9 | * All rights reserved. |
10 | 10 | * |
11 | 11 | * This software is licensed under terms that can be found in the LICENSE file |
|
35 | 35 | * equal to BLE_DEFAULT_ATT_MTU (23). |
36 | 36 | */ |
37 | 37 | #define BLE_PREP_WRITE_X_ATT(max_att) \ |
38 | | - (DIVC(max_att, BLE_DEFAULT_ATT_MTU - 5) * 2) |
| 38 | + (DIVC(max_att, BLE_DEFAULT_ATT_MTU - 5) * 2) |
39 | 39 |
|
40 | 40 | /* |
41 | 41 | * BLE_DEFAULT_PREP_WRITE_LIST_SIZE: default minimum Prepare Write List size. |
42 | 42 | */ |
43 | 43 | #define BLE_DEFAULT_PREP_WRITE_LIST_SIZE \ |
44 | | - BLE_PREP_WRITE_X_ATT(BLE_DEFAULT_MAX_ATT_SIZE) |
| 44 | + BLE_PREP_WRITE_X_ATT(BLE_DEFAULT_MAX_ATT_SIZE) |
45 | 45 |
|
46 | 46 | /* |
47 | 47 | * BLE_MEM_BLOCK_X_MTU: compute how many memory blocks are needed to compose |
48 | 48 | * an ATT packet with ATT_MTU=mtu. |
49 | 49 | */ |
50 | 50 | #define BLE_MEM_BLOCK_SIZE 32 |
51 | 51 |
|
| 52 | +#if (SLAVE_ONLY != 0) ||(BASIC_FEATURES != 0) |
| 53 | +#define BLE_MEM_BLOCK_X_PTX(n_link) 0 |
| 54 | +#else |
| 55 | +#define BLE_MEM_BLOCK_X_PTX(n_link) (n_link) |
| 56 | +#endif |
| 57 | + |
52 | 58 | #define BLE_MEM_BLOCK_X_TX(mtu) \ |
53 | | - (DIVC((mtu) + 4U, BLE_MEM_BLOCK_SIZE) + 1U) |
| 59 | + (DIVC((mtu) + 4U, BLE_MEM_BLOCK_SIZE) + 1) |
54 | 60 |
|
55 | 61 | #define BLE_MEM_BLOCK_X_RX(mtu, n_link) \ |
56 | | - ((DIVC((mtu) + 4U, BLE_MEM_BLOCK_SIZE) + 2U) * (n_link) + 1) |
| 62 | + ((DIVC((mtu) + 4U, BLE_MEM_BLOCK_SIZE) + 2U) * (n_link) + 1) |
57 | 63 |
|
58 | 64 | #define BLE_MEM_BLOCK_X_MTU(mtu, n_link) \ |
59 | | - (BLE_MEM_BLOCK_X_TX(mtu) + BLE_MEM_BLOCK_X_RX(mtu, n_link)) |
| 65 | + (BLE_MEM_BLOCK_X_TX(mtu) + BLE_MEM_BLOCK_X_PTX(n_link) + \ |
| 66 | + BLE_MEM_BLOCK_X_RX(mtu, n_link)) |
60 | 67 |
|
61 | 68 | /* |
62 | 69 | * BLE_MBLOCKS_SECURE_CONNECTIONS: minimum number of blocks required for |
|
72 | 79 | * - n_link: maximum number of simultaneous connections |
73 | 80 | */ |
74 | 81 | #define BLE_MBLOCKS_CALC(pw, mtu, n_link) \ |
75 | | - ((pw) + MAX(BLE_MEM_BLOCK_X_MTU(mtu, n_link), \ |
76 | | - BLE_MBLOCKS_SECURE_CONNECTIONS)) |
| 82 | + ((pw) + MAX(BLE_MEM_BLOCK_X_MTU(mtu, n_link), \ |
| 83 | + BLE_MBLOCKS_SECURE_CONNECTIONS)) |
77 | 84 |
|
78 | 85 | /* |
79 | 86 | * BLE_FIXED_BUFFER_SIZE_BYTES: |
|
90 | 97 | * mentioned parameters. |
91 | 98 | */ |
92 | 99 | #if (BEACON_ONLY != 0) |
93 | | -#define BLE_FIXED_BUFFER_SIZE_BYTES 4092 /* Beacon only */ |
| 100 | +#define BLE_FIXED_BUFFER_SIZE_BYTES 4100 /* Beacon only */ |
94 | 101 | #elif (LL_ONLY_BASIC != 0) |
95 | | -#define BLE_FIXED_BUFFER_SIZE_BYTES 5788 /* LL only Basic*/ |
| 102 | +#define BLE_FIXED_BUFFER_SIZE_BYTES 6040 /* LL only Basic*/ |
96 | 103 | #elif (LL_ONLY != 0) |
97 | | -#define BLE_FIXED_BUFFER_SIZE_BYTES 6036 /* LL only Full */ |
| 104 | +#define BLE_FIXED_BUFFER_SIZE_BYTES 6288 /* LL only Full */ |
98 | 105 | #elif (SLAVE_ONLY != 0) |
99 | | -#define BLE_FIXED_BUFFER_SIZE_BYTES 6300 /* Peripheral only */ |
| 106 | +#define BLE_FIXED_BUFFER_SIZE_BYTES 6408 /* Peripheral only */ |
100 | 107 | #elif (BASIC_FEATURES != 0) |
101 | | -#define BLE_FIXED_BUFFER_SIZE_BYTES 6632 /* Basic Features */ |
| 108 | +#define BLE_FIXED_BUFFER_SIZE_BYTES 7184 /* Basic Features */ |
102 | 109 | #else |
103 | | -#define BLE_FIXED_BUFFER_SIZE_BYTES 7152 /* Full stack */ |
| 110 | +#define BLE_FIXED_BUFFER_SIZE_BYTES 7468 /* Full stack */ |
104 | 111 | #endif |
105 | 112 |
|
106 | 113 | /* |
107 | 114 | * BLE_PER_LINK_SIZE_BYTES: additional memory size used per link |
108 | 115 | */ |
109 | 116 | #if (BEACON_ONLY != 0) |
110 | | -#define BLE_PER_LINK_SIZE_BYTES 112 /* Beacon only */ |
| 117 | +#define BLE_PER_LINK_SIZE_BYTES 108 /* Beacon only */ |
111 | 118 | #elif (LL_ONLY_BASIC != 0) |
112 | 119 | #define BLE_PER_LINK_SIZE_BYTES 244 /* LL only Basic */ |
113 | 120 | #elif (LL_ONLY != 0) |
114 | 121 | #define BLE_PER_LINK_SIZE_BYTES 244 /* LL only Full */ |
115 | 122 | #elif (SLAVE_ONLY != 0) |
116 | | -#define BLE_PER_LINK_SIZE_BYTES 344 /* Peripheral only */ |
| 123 | +#define BLE_PER_LINK_SIZE_BYTES 392 /* Peripheral only */ |
117 | 124 | #elif (BASIC_FEATURES != 0) |
118 | 125 | #define BLE_PER_LINK_SIZE_BYTES 420 /* Basic Features */ |
119 | 126 | #else |
|
131 | 138 | * @param mblocks_count: Number of memory blocks allocated for packets. |
132 | 139 | */ |
133 | 140 | #define BLE_TOTAL_BUFFER_SIZE(n_link, mblocks_count) \ |
134 | | - (16 + BLE_FIXED_BUFFER_SIZE_BYTES + \ |
135 | | - (BLE_PER_LINK_SIZE_BYTES * (n_link)) + \ |
136 | | - ((BLE_MEM_BLOCK_SIZE + 12) * (mblocks_count))) |
| 141 | + (16 + BLE_FIXED_BUFFER_SIZE_BYTES + \ |
| 142 | + (BLE_PER_LINK_SIZE_BYTES * (n_link)) + \ |
| 143 | + ((BLE_MEM_BLOCK_SIZE + 8) * (mblocks_count))) |
137 | 144 |
|
138 | 145 | /* |
139 | 146 | * BLE_EXT_ADV_BUFFER_SIZE |
|
148 | 155 | * Valid values are from 31 to 1650. |
149 | 156 | */ |
150 | 157 | #define BLE_EXT_ADV_BUFFER_SIZE(set_nbr, data_len) \ |
151 | | - (2512 + ((892 + (DIVC(data_len, 207) * 244)) * (set_nbr))) |
| 158 | + (2512 + ((892 + (DIVC(data_len, 207) * 244)) * (set_nbr))) |
152 | 159 |
|
153 | 160 | /* |
154 | 161 | * BLE_TOTAL_BUFFER_SIZE_GATT: this macro returns the amount of memory, |
|
168 | 175 | * @param att_value_array_size: Size of the storage area for Attribute values. |
169 | 176 | */ |
170 | 177 | #define BLE_TOTAL_BUFFER_SIZE_GATT(num_gatt_attributes, num_gatt_services, att_value_array_size) \ |
171 | | - (((((att_value_array_size) - 1) | 3) + 1) + \ |
172 | | - (40 * (num_gatt_attributes)) + (48 * (num_gatt_services))) |
| 178 | + (((((att_value_array_size) - 1) | 3) + 1) + \ |
| 179 | + (40 * (num_gatt_attributes)) + (48 * (num_gatt_services))) |
173 | 180 |
|
174 | 181 |
|
175 | 182 | #endif /* BLE_BUFSIZE_H__ */ |
0 commit comments