diff --git a/bsp/nrf5x/nrf52840/board/Kconfig b/bsp/nrf5x/nrf52840/board/Kconfig index 09ec92dff44ad9cc7f6ef74454568d1a45fbce2b..7cdd0b4a7f18f57e248d8a5120cccfeb21e460bc 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 d1e55f4c49c92106fadbe9742cae86ea86af4aca..2ba3214bfa8ed84bf1ea8ca3cd7f52cb1c0c8690 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 + }