[bsp/nrf5x]:add nimble and fix kconfig

This commit is contained in:
supperthomas 2020-09-12 17:20:22 +08:00
parent 421dea8fdb
commit 5cc9f45a3e
2 changed files with 36 additions and 145 deletions

View File

@ -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

View File

@ -14,25 +14,8 @@
#include "board.h"
#include "drv_uart.h"
#ifdef BSP_USING_SOFTDEVICE
#include <nrfx_rtc.h>
#include <nrfx_clock.h>
#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
}