[bsp/nrf5x] add the softdevice config
This commit is contained in:
parent
ebba4e1a9d
commit
2446ee8b95
|
@ -371,5 +371,5 @@ int rt_hw_pin_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
INIT_BOARD_EXPORT(rt_hw_pin_init);
|
||||||
#endif /* RT_USING_PIN */
|
#endif /* RT_USING_PIN */
|
||||||
|
|
|
@ -353,6 +353,8 @@ CONFIG_RT_USING_LIBC=y
|
||||||
# CONFIG_PKG_USING_LITTLED is not set
|
# CONFIG_PKG_USING_LITTLED is not set
|
||||||
# CONFIG_PKG_USING_LKDGUI is not set
|
# CONFIG_PKG_USING_LKDGUI is not set
|
||||||
# CONFIG_PKG_USING_NRF5X_SDK is not set
|
# CONFIG_PKG_USING_NRF5X_SDK is not set
|
||||||
|
# CONFIG_PKG_USING_NRF5X_SDK_V1300 is not set
|
||||||
|
# CONFIG_PKG_USING_NRF5X_SDK_LATEST_VERSION is not set
|
||||||
CONFIG_PKG_USING_NRFX=y
|
CONFIG_PKG_USING_NRFX=y
|
||||||
CONFIG_PKG_NRFX_PATH="/packages/peripherals/nrfx"
|
CONFIG_PKG_NRFX_PATH="/packages/peripherals/nrfx"
|
||||||
CONFIG_PKG_USING_NRFX_V210=y
|
CONFIG_PKG_USING_NRFX_V210=y
|
||||||
|
@ -438,6 +440,7 @@ CONFIG_SOC_NRF52840=y
|
||||||
# On-chip Peripheral Drivers
|
# On-chip Peripheral Drivers
|
||||||
#
|
#
|
||||||
CONFIG_BSP_USING_GPIO=y
|
CONFIG_BSP_USING_GPIO=y
|
||||||
|
# CONFIG_BSP_USING_SOFTDEVICE is not set
|
||||||
CONFIG_BSP_USING_UART=y
|
CONFIG_BSP_USING_UART=y
|
||||||
CONFIG_BSP_USING_UART0=y
|
CONFIG_BSP_USING_UART0=y
|
||||||
CONFIG_BSP_UART0_RX_PIN=8
|
CONFIG_BSP_UART0_RX_PIN=8
|
||||||
|
|
|
@ -1,32 +1,18 @@
|
||||||
/*
|
/*
|
||||||
* File : application.c
|
* Copyright (c) 2006-2020, RT-Thread Development Team
|
||||||
* This file is part of RT-Thread RTOS
|
|
||||||
* COPYRIGHT (C) 2015, RT-Thread Development Team
|
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
* found in the file LICENSE in this distribution or at
|
|
||||||
* http://www.rt-thread.org/license/LICENSE
|
|
||||||
*
|
*
|
||||||
* Change Logs:
|
* Change Logs:
|
||||||
* Date Author Notes
|
* Date Author Notes
|
||||||
* 2015-03-01 Yangfs the first version
|
* 2020-04-29 supperthomas first version
|
||||||
* 2015-03-27 Bernard code cleanup.
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup NRF52832
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
|
#include <rtdevice.h>
|
||||||
#ifdef RT_USING_FINSH
|
|
||||||
#include <finsh.h>
|
|
||||||
#include <shell.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <drv_gpio.h>
|
|
||||||
#define DK_BOARD_LED_1 13
|
#define DK_BOARD_LED_1 13
|
||||||
|
#define DK_BOARD_LED_2 14
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
@ -44,4 +30,3 @@ int main(void)
|
||||||
return RT_EOK;
|
return RT_EOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@}*/
|
|
||||||
|
|
|
@ -55,6 +55,37 @@ menu "On-chip Peripheral Drivers"
|
||||||
bool "Enable GPIO"
|
bool "Enable GPIO"
|
||||||
select RT_USING_PIN
|
select RT_USING_PIN
|
||||||
default y
|
default y
|
||||||
|
menuconfig BSP_USING_SOFTDEVICE
|
||||||
|
bool "Enable NRF SOFTDEVICE"
|
||||||
|
select PKG_USING_NRF5X_SDK
|
||||||
|
default n
|
||||||
|
if BSP_USING_SOFTDEVICE
|
||||||
|
config NRFX_CLOCK_ENABLED
|
||||||
|
int "NRFX_CLOCK_ENABLED"
|
||||||
|
default 1
|
||||||
|
config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY
|
||||||
|
int "NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY"
|
||||||
|
default 7
|
||||||
|
config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY
|
||||||
|
int "NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY"
|
||||||
|
default 7
|
||||||
|
config NRFX_RTC_ENABLED
|
||||||
|
int "NRFX_RTC_ENABLED"
|
||||||
|
default 1
|
||||||
|
config NRF_CLOCK_ENABLED
|
||||||
|
int "NRF_CLOCK_ENABLED"
|
||||||
|
default 1
|
||||||
|
config NRF_SDH_BLE_ENABLED
|
||||||
|
int "NRF_SDH_BLE_ENABLED"
|
||||||
|
default 1
|
||||||
|
config NRF_SDH_ENABLED
|
||||||
|
int "NRF_SDH_ENABLED"
|
||||||
|
default 1
|
||||||
|
config NRF_SDH_SOC_ENABLED
|
||||||
|
int "NRF_SDH_SOC_ENABLED"
|
||||||
|
default 1
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
menuconfig BSP_USING_UART
|
menuconfig BSP_USING_UART
|
||||||
bool "Enable UART"
|
bool "Enable UART"
|
||||||
|
|
|
@ -1,23 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2020, RT-Thread Development Team
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Change Logs:
|
||||||
|
* Date Author Notes
|
||||||
|
* 2020-04-29 supperthomas first version
|
||||||
|
*
|
||||||
|
*/
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
#include <rthw.h>
|
#include <rthw.h>
|
||||||
#include <nrfx_systick.h>
|
#include <nrfx_systick.h>
|
||||||
|
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "drv_gpio.h"
|
|
||||||
#include "drv_uart.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. */
|
||||||
|
|
||||||
void SysTick_Configuration(void)
|
static void rtc_handler(nrfx_rtc_int_type_t int_type)
|
||||||
{
|
{
|
||||||
/* Set interrupt priority */
|
if (int_type == NRFX_RTC_INT_TICK)
|
||||||
NVIC_SetPriority(SysTick_IRQn, 0xf);
|
{
|
||||||
|
rt_interrupt_enter();
|
||||||
/* Configure SysTick to interrupt at the requested rate. */
|
|
||||||
nrf_systick_load_set(SystemCoreClock / RT_TICK_PER_SECOND);
|
|
||||||
nrf_systick_val_clear();
|
|
||||||
nrf_systick_csr_set(NRF_SYSTICK_CSR_CLKSOURCE_CPU | NRF_SYSTICK_CSR_TICKINT_ENABLE
|
|
||||||
| NRF_SYSTICK_CSR_ENABLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
rt_tick_increase();
|
||||||
|
|
||||||
|
rt_interrupt_leave();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
/**
|
/**
|
||||||
* This is the timer interrupt service routine.
|
* This is the timer interrupt service routine.
|
||||||
*
|
*
|
||||||
|
@ -32,27 +47,61 @@ void SysTick_Handler(void)
|
||||||
/* leave interrupt */
|
/* leave interrupt */
|
||||||
rt_interrupt_leave();
|
rt_interrupt_leave();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
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
|
||||||
|
/* Set interrupt priority */
|
||||||
|
NVIC_SetPriority(SysTick_IRQn, 0xf);
|
||||||
|
|
||||||
|
/* Configure SysTick to interrupt at the requested rate. */
|
||||||
|
nrf_systick_load_set(SystemCoreClock / RT_TICK_PER_SECOND);
|
||||||
|
nrf_systick_val_clear();
|
||||||
|
nrf_systick_csr_set(NRF_SYSTICK_CSR_CLKSOURCE_CPU | NRF_SYSTICK_CSR_TICKINT_ENABLE
|
||||||
|
| NRF_SYSTICK_CSR_ENABLE);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void rt_hw_board_init(void)
|
void rt_hw_board_init(void)
|
||||||
{
|
{
|
||||||
|
rt_hw_interrupt_enable(0);
|
||||||
// sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
|
// sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
|
||||||
/* Activate deep sleep mode */
|
/* Activate deep sleep mode */
|
||||||
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
|
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
|
||||||
|
|
||||||
|
|
||||||
SysTick_Configuration();
|
SysTick_Configuration();
|
||||||
|
|
||||||
#if defined(RT_USING_HEAP)
|
#if defined(RT_USING_HEAP)
|
||||||
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Pin driver initialization is open by default */
|
|
||||||
#ifdef RT_USING_PIN
|
|
||||||
rt_hw_pin_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef RT_USING_SERIAL
|
#ifdef RT_USING_SERIAL
|
||||||
rt_hw_uart_init();
|
rt_hw_uart_init();
|
||||||
#endif
|
#endif
|
||||||
|
@ -65,5 +114,19 @@ void rt_hw_board_init(void)
|
||||||
rt_components_board_init();
|
rt_components_board_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_USING_SOFTDEVICE
|
||||||
|
extern uint32_t Image$$RW_IRAM1$$Base;
|
||||||
|
uint32_t const *const m_ram_start = &Image$$RW_IRAM1$$Base;
|
||||||
|
if ((uint32_t)m_ram_start == 0x20000000)
|
||||||
|
{
|
||||||
|
rt_kprintf("\r\n using softdevice the RAM couldn't be %p,please use the templete from package\r\n", m_ram_start);
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rt_kprintf("\r\n using softdevice the RAM at %p\r\n", m_ram_start);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#endif
|
#endif
|
||||||
// <h> nRF_BLE
|
// <h> nRF_BLE
|
||||||
|
|
||||||
|
#include <rtconfig.h>
|
||||||
//==========================================================
|
//==========================================================
|
||||||
// <q> BLE_ADVERTISING_ENABLED - ble_advertising - Advertising module
|
// <q> BLE_ADVERTISING_ENABLED - ble_advertising - Advertising module
|
||||||
|
|
||||||
|
@ -11694,7 +11695,6 @@
|
||||||
#endif
|
#endif
|
||||||
// </e>
|
// </e>
|
||||||
|
|
||||||
// </h>
|
|
||||||
//==========================================================
|
//==========================================================
|
||||||
#ifndef NRFX_SYSTICK_ENABLED
|
#ifndef NRFX_SYSTICK_ENABLED
|
||||||
#define NRFX_SYSTICK_ENABLED 1
|
#define NRFX_SYSTICK_ENABLED 1
|
||||||
|
|
Loading…
Reference in New Issue