stm32/rfcore: Depend on NimBLE only when BLE enabled.
This fixes the build for non-STM32WB based boards when the NimBLE submodule has not been fetched, and also allows STM32WB boards to build with BLE disabled. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
parent
21c293fbcd
commit
240b3de8bc
@ -32,7 +32,6 @@
|
|||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
#include "extmod/modbluetooth.h"
|
#include "extmod/modbluetooth.h"
|
||||||
#include "nimble/nimble_npl.h"
|
|
||||||
#include "rtc.h"
|
#include "rtc.h"
|
||||||
#include "rfcore.h"
|
#include "rfcore.h"
|
||||||
|
|
||||||
@ -40,12 +39,23 @@
|
|||||||
|
|
||||||
#include "stm32wbxx_ll_ipcc.h"
|
#include "stm32wbxx_ll_ipcc.h"
|
||||||
|
|
||||||
#define DEBUG_printf(...) // printf("rfcore: " __VA_ARGS__)
|
#if MICROPY_PY_BLUETOOTH
|
||||||
|
|
||||||
|
#if MICROPY_BLUETOOTH_NIMBLE
|
||||||
|
// For mp_bluetooth_nimble_hci_uart_wfi
|
||||||
|
#include "nimble/nimble_npl.h"
|
||||||
|
#else
|
||||||
|
#error "STM32WB must use NimBLE."
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS
|
#if !MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS
|
||||||
#error "STM32WB must use synchronous events in the BLE implementation."
|
#error "STM32WB must use synchronous BLE events."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DEBUG_printf(...) // printf("rfcore: " __VA_ARGS__)
|
||||||
|
|
||||||
// Define to 1 to print traces of HCI packets
|
// Define to 1 to print traces of HCI packets
|
||||||
#define HCI_TRACE (0)
|
#define HCI_TRACE (0)
|
||||||
|
|
||||||
@ -600,7 +610,9 @@ void rfcore_ble_hci_cmd(size_t len, const uint8_t *src) {
|
|||||||
if (mp_hal_ticks_ms() - timeout_start_ticks_ms > 100) {
|
if (mp_hal_ticks_ms() - timeout_start_ticks_ms > 100) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#if MICROPY_PY_BLUETOOTH && MICROPY_BLUETOOTH_NIMBLE
|
||||||
mp_bluetooth_nimble_hci_uart_wfi();
|
mp_bluetooth_nimble_hci_uart_wfi();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent sending another command until this one returns with HCI_EVENT_COMMAND_{COMPLETE,STATUS}.
|
// Prevent sending another command until this one returns with HCI_EVENT_COMMAND_{COMPLETE,STATUS}.
|
||||||
@ -653,7 +665,9 @@ void rfcore_end_flash_erase(void) {
|
|||||||
tl_sys_hci_cmd_resp(HCI_OPCODE(OGF_VENDOR, OCF_C2_FLASH_ERASE_ACTIVITY), &buf, 1, 0);
|
tl_sys_hci_cmd_resp(HCI_OPCODE(OGF_VENDOR, OCF_C2_FLASH_ERASE_ACTIVITY), &buf, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
// IPCC IRQ Handlers
|
// IPCC IRQ Handlers
|
||||||
|
|
||||||
void IPCC_C1_TX_IRQHandler(void) {
|
void IPCC_C1_TX_IRQHandler(void) {
|
||||||
IRQ_ENTER(IPCC_C1_TX_IRQn);
|
IRQ_ENTER(IPCC_C1_TX_IRQn);
|
||||||
IRQ_EXIT(IPCC_C1_TX_IRQn);
|
IRQ_EXIT(IPCC_C1_TX_IRQn);
|
||||||
@ -667,9 +681,11 @@ void IPCC_C1_RX_IRQHandler(void) {
|
|||||||
if (LL_C2_IPCC_IsActiveFlag_CHx(IPCC, IPCC_CH_BLE)) {
|
if (LL_C2_IPCC_IsActiveFlag_CHx(IPCC, IPCC_CH_BLE)) {
|
||||||
LL_C1_IPCC_ClearFlag_CHx(IPCC, IPCC_CH_BLE);
|
LL_C1_IPCC_ClearFlag_CHx(IPCC, IPCC_CH_BLE);
|
||||||
|
|
||||||
|
#if MICROPY_PY_BLUETOOTH
|
||||||
// Queue up the scheduler to process UART data and run events.
|
// Queue up the scheduler to process UART data and run events.
|
||||||
extern void mp_bluetooth_hci_systick(uint32_t ticks_ms);
|
extern void mp_bluetooth_hci_systick(uint32_t ticks_ms);
|
||||||
mp_bluetooth_hci_systick(0);
|
mp_bluetooth_hci_systick(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
IRQ_EXIT(IPCC_C1_RX_IRQn);
|
IRQ_EXIT(IPCC_C1_RX_IRQn);
|
||||||
|
Loading…
Reference in New Issue
Block a user