From 5cc9f45a3e74f3337a54c0b93d667a462c9a129f Mon Sep 17 00:00:00 2001 From: supperthomas <78900636@qq.com> Date: Sat, 12 Sep 2020 17:20:22 +0800 Subject: [PATCH] [bsp/nrf5x]:add nimble and fix kconfig --- bsp/nrf5x/nrf52840/board/Kconfig | 128 +++++++------------------------ bsp/nrf5x/nrf52840/board/board.c | 53 ++----------- 2 files changed, 36 insertions(+), 145 deletions(-) diff --git a/bsp/nrf5x/nrf52840/board/Kconfig b/bsp/nrf5x/nrf52840/board/Kconfig index 09ec92dff4..7cdd0b4a7f 100644 --- a/bsp/nrf5x/nrf52840/board/Kconfig +++ b/bsp/nrf5x/nrf52840/board/Kconfig @@ -6,6 +6,12 @@ config SOC_NRF52840 select RT_USING_COMPONENTS_INIT select RT_USING_USER_MAIN default y + config NRFX_CLOCK_ENABLED + int + default 1 + config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY + int + default 7 config SOC_NORDIC bool @@ -177,106 +183,7 @@ menu "On-chip Peripheral Drivers" default 16 endif endif - menuconfig BSP_USING_SOFTDEVICE - bool "Enable NRF SOFTDEVICE" - select PKG_USING_NRF5X_SDK - select NRFX_CLOCK_ENABLED - default n -if BSP_USING_SOFTDEVICE - config NRFX_CLOCK_ENABLED - int - default 1 - config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY - int - default 7 - config NRFX_RTC_ENABLED - int - default 1 - config NRFX_RTC1_ENABLED - int - default 1 - config NRF_CLOCK_ENABLED - int - default 1 - config NRF_SDH_BLE_ENABLED - int - default 1 - config NRF_SDH_ENABLED - int - default 1 - config NRF_SDH_SOC_ENABLED - int - default 1 - config NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - int - default 1 - config BLE_ADVERTISING_ENABLED - int - default 1 - config NRF_BLE_QWR_ENABLED - int - default 1 - config NRF_SDH_BLE_VS_UUID_COUNT - int - default 1 - config NRF_BLE_CONN_PARAMS_ENABLED - int - default 1 - config NRF_BLE_CONN_PARAMS_MAX_SLAVE_LATENCY_DEVIATION - int - default 499 - config NRF_BLE_CONN_PARAMS_MAX_SUPERVISION_TIMEOUT_DEVIATION - int - default 65535 - config NRF_BLE_GATT_ENABLED - int - default 1 - - choice - prompt "sample(softdevice)" - default SD_BLE_APP_BEACON - - config SD_BLE_APP_BEACON - bool "ble_app_beacon" - default n - - config SD_BLE_APP_BLINKY - bool "ble_app_blinky" - default n - if SD_BLE_APP_BLINKY - config BLE_LBS_ENABLED - int - default 1 - endif - config SD_BLE_APP_UART - bool "ble_app_uart" - default n - if SD_BLE_APP_UART - config BLE_NUS_ENABLED - int - default 1 - config NRF_SDH_BLE_GATT_MAX_MTU_SIZE - int - default 247 - endif - - config SD_BLE_APP_HRS - bool "ble_app_hrs" - default n - if SD_BLE_APP_HRS - config BLE_HRS_ENABLED - int - default 1 - config NRF_SDH_BLE_GATT_MAX_MTU_SIZE - int - default 247 - endif - config SD_BLE_APP_HIDS_MOUSE - bool "ble_app_hids_mouse" - default n - endchoice -endif menuconfig BSP_USING_UART bool "Enable UART" @@ -422,4 +329,27 @@ endif endif endmenu + +choice +prompt "BLE STACK" +default BLE_STACK_USING_NULL +help + Select the ble stack + +config BLE_STACK_USING_NULL + bool "not use the ble stack" + +config BSP_USING_SOFTDEVICE + select PKG_USING_NRF5X_SDK + bool "Nordic softdevice(perpheral)" + +config BSP_USING_NIMBLE + select PKG_USING_NIMBLE + select PKG_NIMBLE_BSP_NRF52840 + bool "use nimble stack(iot)" +endchoice + + endmenu + + diff --git a/bsp/nrf5x/nrf52840/board/board.c b/bsp/nrf5x/nrf52840/board/board.c index d1e55f4c49..2ba3214bfa 100644 --- a/bsp/nrf5x/nrf52840/board/board.c +++ b/bsp/nrf5x/nrf52840/board/board.c @@ -14,25 +14,8 @@ #include "board.h" #include "drv_uart.h" -#ifdef BSP_USING_SOFTDEVICE -#include #include -#include "app_error.h" -#include "nrf_drv_clock.h" -const nrfx_rtc_t rtc = NRFX_RTC_INSTANCE(1); /**< Declaring an instance of nrf_drv_rtc for RTC0. */ - -static void rtc_handler(nrfx_rtc_int_type_t int_type) -{ - if (int_type == NRFX_RTC_INT_TICK) - { - rt_interrupt_enter(); - rt_tick_increase(); - - rt_interrupt_leave(); - } -} -#else /** * This is the timer interrupt service routine. * @@ -47,36 +30,14 @@ void SysTick_Handler(void) /* leave interrupt */ rt_interrupt_leave(); } -#endif + +static void clk_event_handler(nrfx_clock_evt_type_t event){} + void SysTick_Configuration(void) { -#ifdef BSP_USING_SOFTDEVICE - nrf_drv_clock_init(); - nrf_drv_clock_lfclk_request(NULL); - - uint32_t err_code; -#define TICK_RATE_HZ RT_TICK_PER_SECOND -#define SYSTICK_CLOCK_HZ ( 32768UL ) - -#define NRF_RTC_REG NRF_RTC1 - /* IRQn used by the selected RTC */ -#define NRF_RTC_IRQn RTC1_IRQn - /* Constants required to manipulate the NVIC. */ -#define NRF_RTC_PRESCALER ( (uint32_t) (NRFX_ROUNDED_DIV(SYSTICK_CLOCK_HZ, TICK_RATE_HZ) - 1) ) - nrfx_rtc_config_t config = NRFX_RTC_DEFAULT_CONFIG; - config.prescaler = NRF_RTC_PRESCALER; - - err_code = nrfx_rtc_init(&rtc, &config, rtc_handler); - // APP_ERROR_CHECK(err_code); - nrfx_rtc_tick_enable(&rtc, true); -#define COMPARE_COUNTERTIME (3UL) /**< Get Compare event COMPARE_TIME seconds after the counter starts from 0. */ - //Set compare channel to trigger interrupt after COMPARE_COUNTERTIME seconds - err_code = nrfx_rtc_cc_set(&rtc, 0, COMPARE_COUNTERTIME * 8, true); - // APP_ERROR_CHECK(err_code); - - //Power on RTC instance - nrfx_rtc_enable(&rtc); -#else + nrfx_clock_init(clk_event_handler); + nrfx_clock_enable(); + nrfx_clock_lfclk_start(); /* Set interrupt priority */ NVIC_SetPriority(SysTick_IRQn, 0xf); @@ -85,7 +46,7 @@ void SysTick_Configuration(void) nrf_systick_val_clear(); nrf_systick_csr_set(NRF_SYSTICK_CSR_CLKSOURCE_CPU | NRF_SYSTICK_CSR_TICKINT_ENABLE | NRF_SYSTICK_CSR_ENABLE); -#endif + } -- GitLab