Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Mozi
rt-thread
提交
c220e224
R
rt-thread
项目概览
Mozi
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c220e224
编写于
7月 24, 2020
作者:
B
Bernard Xiong
提交者:
GitHub
7月 24, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3761 from supperthomas/supperthomas
[bsp/nrf5x] add the config of softdevice
上级
1a42ca90
2446ee8b
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
162 addition
and
52 deletion
+162
-52
bsp/nrf5x/libraries/drivers/SConscript
bsp/nrf5x/libraries/drivers/SConscript
+2
-0
bsp/nrf5x/libraries/drivers/drv_gpio.c
bsp/nrf5x/libraries/drivers/drv_gpio.c
+1
-1
bsp/nrf5x/nrf52840/.config
bsp/nrf5x/nrf52840/.config
+30
-9
bsp/nrf5x/nrf52840/applications/application.c
bsp/nrf5x/nrf52840/applications/application.c
+6
-21
bsp/nrf5x/nrf52840/board/Kconfig
bsp/nrf5x/nrf52840/board/Kconfig
+31
-0
bsp/nrf5x/nrf52840/board/board.c
bsp/nrf5x/nrf52840/board/board.c
+82
-19
bsp/nrf5x/nrf52840/board/sdk_config.h
bsp/nrf5x/nrf52840/board/sdk_config.h
+1
-1
bsp/nrf5x/nrf52840/rtconfig.h
bsp/nrf5x/nrf52840/rtconfig.h
+9
-1
未找到文件。
bsp/nrf5x/libraries/drivers/SConscript
浏览文件 @
c220e224
...
...
@@ -19,6 +19,8 @@ if GetDepend(['BSP_USING_QSPI_FLASH']):
if
GetDepend
([
'BSP_USING_SPI'
]):
src
+=
[
'drv_spi.c'
]
if
GetDepend
([
'BSP_USING_GPIO'
]):
src
+=
[
'drv_gpio.c'
]
path
=
[
cwd
]
...
...
bsp/nrf5x/libraries/drivers/drv_gpio.c
浏览文件 @
c220e224
...
...
@@ -371,5 +371,5 @@ int rt_hw_pin_init(void)
}
}
INIT_BOARD_EXPORT
(
rt_hw_pin_init
);
#endif
/* RT_USING_PIN */
bsp/nrf5x/nrf52840/.config
浏览文件 @
c220e224
...
...
@@ -122,6 +122,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_I2C is not set
CONFIG_RT_USING_PIN
=
y
# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
...
...
@@ -194,7 +195,9 @@ CONFIG_RT_USING_LIBC=y
#
# IoT - internet of things
#
# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
# CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_UMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_WEBNET is not set
# CONFIG_PKG_USING_MONGOOSE is not set
...
...
@@ -240,7 +243,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
# CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set
# CONFIG_PKG_USING_TENCENT_IOT
HUB
is not set
# CONFIG_PKG_USING_TENCENT_IOT
_EXPLORER
is not set
# CONFIG_PKG_USING_JIOT-C-SDK is not set
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
...
...
@@ -270,6 +273,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
#
# language packages
...
...
@@ -315,12 +319,7 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_LWEXT4 is not set
# CONFIG_PKG_USING_PARTITION is not set
# CONFIG_PKG_USING_FAL is not set
# CONFIG_PKG_USING_FAL_V00500 is not set
# CONFIG_PKG_USING_FAL_V00400 is not set
# CONFIG_PKG_USING_FAL_V00300 is not set
# CONFIG_PKG_USING_FAL_V00200 is not set
# CONFIG_PKG_USING_FAL_V00100 is not set
# CONFIG_PKG_USING_FAL_LATEST_VERSION is not set
# CONFIG_PKG_USING_FLASHDB is not set
# CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
...
...
@@ -333,6 +332,8 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_SYSWATCH is not set
# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
# CONFIG_PKG_USING_PLCCORE is not set
# CONFIG_PKG_USING_RAMDISK is not set
# CONFIG_PKG_USING_MININI is not set
#
# peripheral libraries and drivers
...
...
@@ -352,6 +353,8 @@ CONFIG_RT_USING_LIBC=y
# CONFIG_PKG_USING_LITTLED is not set
# CONFIG_PKG_USING_LKDGUI 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_NRFX_PATH
=
"/packages/peripherals/nrfx"
CONFIG_PKG_USING_NRFX_V210
=
y
...
...
@@ -381,6 +384,10 @@ CONFIG_PKG_NRFX_VER="v2.1.0"
# CONFIG_PKG_USING_BEEP is not set
# CONFIG_PKG_USING_EASYBLINK is not set
# CONFIG_PKG_USING_PMS_SERIES is not set
# CONFIG_PKG_USING_CAN_YMODEM is not set
# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
# CONFIG_PKG_USING_QLED is not set
# CONFIG_PKG_USING_PAJ7620 is not set
#
# miscellaneous packages
...
...
@@ -427,12 +434,26 @@ CONFIG_SOC_NRF52840=y
# Onboard Peripheral Drivers
#
# CONFIG_BSP_USING_JLINK_TO_USART is not set
# CONFIG_BSP_USING_QSPI_FLASH is not set
#
# On-chip Peripheral Drivers
#
# CONFIG_BSP_USING_GPIO is not set
# CONFIG_BSP_USING_
ON_CHIP_FLASH
is not set
CONFIG_BSP_USING_GPIO
=
y
# CONFIG_BSP_USING_
SOFTDEVICE
is not set
CONFIG_BSP_USING_UART
=
y
CONFIG_BSP_USING_UART0
=
y
CONFIG_BSP_UART0_RX_PIN
=
8
CONFIG_BSP_UART0_TX_PIN
=
6
# CONFIG_BSP_USING_UART1 is not set
# CONFIG_BSP_USING_SPI is not set
# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
#
# On-chip flash config
#
CONFIG_MCU_FLASH_START_ADDRESS
=
0
x00000000
CONFIG_MCU_FLASH_SIZE_KB
=
1024
CONFIG_MCU_SRAM_START_ADDRESS
=
0
x20000000
CONFIG_MCU_SRAM_SIZE_KB
=
256
CONFIG_MCU_FLASH_PAGE_SIZE
=
0
x1000
bsp/nrf5x/nrf52840/applications/application.c
浏览文件 @
c220e224
/*
* File : application.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2015, RT-Thread Development Team
* Copyright (c) 2006-2020, RT-Thread Development Team
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rt-thread.org/license/LICENSE
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2015-03-01 Yangfs the first version
* 2015-03-27 Bernard code cleanup.
*/
/**
* @addtogroup NRF52832
* 2020-04-29 supperthomas first version
*
*/
/*@{*/
#include <rtthread.h>
#ifdef RT_USING_FINSH
#include <finsh.h>
#include <shell.h>
#endif
#include <drv_gpio.h>
#include <rtdevice.h>
#define DK_BOARD_LED_1 13
#define DK_BOARD_LED_2 14
int
main
(
void
)
{
...
...
@@ -44,4 +30,3 @@ int main(void)
return
RT_EOK
;
}
/*@}*/
bsp/nrf5x/nrf52840/board/Kconfig
浏览文件 @
c220e224
...
...
@@ -55,6 +55,37 @@ menu "On-chip Peripheral Drivers"
bool "Enable GPIO"
select RT_USING_PIN
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
bool "Enable UART"
...
...
bsp/nrf5x/nrf52840/board/board.c
浏览文件 @
c220e224
/*
* 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 <rthw.h>
#include <nrfx_systick.h>
#include "board.h"
#include "drv_gpio.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 */
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
);
}
if
(
int_type
==
NRFX_RTC_INT_TICK
)
{
rt_interrupt_enter
();
rt_tick_increase
();
rt_interrupt_leave
();
}
}
#else
/**
* This is the timer interrupt service routine.
*
...
...
@@ -32,27 +47,61 @@ void SysTick_Handler(void)
/* leave interrupt */
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
)
{
rt_hw_interrupt_enable
(
0
);
// sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
/* Activate deep sleep mode */
SCB
->
SCR
|=
SCB_SCR_SLEEPDEEP_Msk
;
SysTick_Configuration
();
#if defined(RT_USING_HEAP)
rt_system_heap_init
((
void
*
)
HEAP_BEGIN
,
(
void
*
)
HEAP_END
);
#endif
/* Pin driver initialization is open by default */
#ifdef RT_USING_PIN
rt_hw_pin_init
();
#endif
#ifdef RT_USING_SERIAL
rt_hw_uart_init
();
#endif
...
...
@@ -65,5 +114,19 @@ void rt_hw_board_init(void)
rt_components_board_init
();
#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
}
bsp/nrf5x/nrf52840/board/sdk_config.h
浏览文件 @
c220e224
...
...
@@ -48,6 +48,7 @@
#endif
// <h> nRF_BLE
#include <rtconfig.h>
//==========================================================
// <q> BLE_ADVERTISING_ENABLED - ble_advertising - Advertising module
...
...
@@ -11694,7 +11695,6 @@
#endif
// </e>
// </h>
//==========================================================
#ifndef NRFX_SYSTICK_ENABLED
#define NRFX_SYSTICK_ENABLED 1
...
...
bsp/nrf5x/nrf52840/rtconfig.h
浏览文件 @
c220e224
...
...
@@ -155,13 +155,21 @@
/* Onboard Peripheral Drivers */
#define BSP_USING_JLINK_TO_USART
/* On-chip Peripheral Drivers */
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART0
#define BSP_UART0_RX_PIN 8
#define BSP_UART0_TX_PIN 6
/* On-chip flash config */
#define MCU_FLASH_START_ADDRESS 0x00000000
#define MCU_FLASH_SIZE_KB 1024
#define MCU_SRAM_START_ADDRESS 0x20000000
#define MCU_SRAM_SIZE_KB 256
#define MCU_FLASH_PAGE_SIZE 0x1000
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录