1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #10243 from aabadie/pr/board/common_nrf51

boards/common: add common place for nrf51 based boards
This commit is contained in:
Hauke Petersen 2018-11-26 10:07:31 +01:00 committed by GitHub
commit ac50b4a052
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 223 additions and 392 deletions

View File

@ -1,3 +1,4 @@
MODULE = board
DIRS = $(RIOTBOARD)/common/nrf51
include $(RIOTBASE)/Makefile.base

View File

@ -1,3 +1 @@
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += nrfmin
endif
include $(RIOTBOARD)/common/nrf51/Makefile.dep

View File

@ -1,15 +1,8 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_adc
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_spi
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Various other features (if any)
# The board MPU family (used for grouping by the CI system)
FEATURES_MCU_GROUP = cortex_m0_2
include $(RIOTCPU)/nrf51/Makefile.features
# include common nrf51 based boards features
include $(RIOTBOARD)/common/nrf51/Makefile.features

View File

@ -1,16 +1,18 @@
# define the used CPU
export CPU = nrf51
# define the used CPU model
export CPU_MODEL = nrf51x22xxaa
# include common nrf51 boards module into the build
USEMODULE += boards_common_nrf51
# define the default port depending on the host OS
PORT_LINUX ?= /dev/ttyUSB0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# this board uses an ST-Link v2 debug adapter
DEBUG_ADAPTER ?= stlink
STLINK_VERSION ?= 2
export DEBUG_ADAPTER ?= stlink
export STLINK_VERSION ?= 2
PROGRAMMER = openocd
# this board uses openocd
include $(RIOTMAKE)/tools/openocd.inc.mk
# include nrf51 boards common configuration
include $(RIOTBOARD)/common/nrf51/Makefile.include

View File

@ -1,28 +0,0 @@
/*
* Copyright (C) 2014 Christian Mehlis <mehlis@inf.fu-berlin.de>
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License v2.1. See the file LICENSE in the top level directory for more
* details.
*/
/**
* @ingroup boards_airfy-beacon
* @{
*
* @file
* @brief Board specific implementations for the Airfy Beacon board
*
* @author Christian Mehlis <mehlis@inf.fu-berlin.de>
*
* @}
*/
#include "board.h"
#include "cpu.h"
void board_init(void)
{
/* initialize the CPU */
cpu_init();
}

View File

@ -19,27 +19,10 @@
#ifndef BOARD_H
#define BOARD_H
#include "cpu.h"
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Xtimer configuration
* @{
*/
#define XTIMER_WIDTH (24)
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @brief Initialize board specific hardware, including clock, LEDs and std-IO
*/
void board_init(void);
#ifdef __cplusplus
} /* end extern "C" */
extern "C" {}
#endif
#endif /* BOARD_H */

View File

@ -21,6 +21,7 @@
#define PERIPH_CONF_H
#include "periph_cpu.h"
#include "periph_conf_common.h"
#ifdef __cplusplus
extern "C" {
@ -41,20 +42,6 @@
* 2: derived from HFCLK */
/** @} */
/**
* @name Timer configuration
* @{
*/
static const timer_conf_t timer_config[] = {
/* dev, channels, width */
{ NRF_TIMER0, 3, TIMER_BITMODE_BITMODE_24Bit, TIMER0_IRQn }
};
#define TIMER_0_ISR isr_timer0
#define TIMER_NUMOF (sizeof(timer_config) / sizeof(timer_config[0]))
/** @} */
/**
* @name UART configuration
*
@ -66,16 +53,6 @@ static const timer_conf_t timer_config[] = {
#define UART_PIN_TX 18
/** @} */
/**
* @name Real time counter configuration
* @{
*/
#define RTT_NUMOF (1U)
#define RTT_DEV (1) /* NRF_RTC1 */
#define RTT_MAX_VALUE (0x00ffffff)
#define RTT_FREQUENCY (1024)
/** @} */
/**
* @name SPI configuration
* @{

View File

@ -1,14 +1,7 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
FEATURES_PROVIDED += periph_pwm
# Various other features (if any)
# The board MPU family (used for grouping by the CI system)
FEATURES_MCU_GROUP = cortex_m0_1
include $(RIOTCPU)/nrf51/Makefile.features
# include common nrf51 based boards features
include $(RIOTBOARD)/common/nrf51/Makefile.features

View File

@ -1,16 +1,14 @@
# define the used CPU
export CPU = nrf51
export CPU_MODEL = nrf51x22xxab
# define the default port depending on the host OS
PORT_LINUX ?= /dev/ttyACM0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# we support flashing through plain fscopy or using JLink
# this board supports flashing through plain fscopy, using JLink or using
# openocd
PROGRAMMER ?= fscopy
ifeq (fscopy,$(PROGRAMMER))
export FFLAGS =
export DEBUGGER_FLAGS =
@ -18,9 +16,9 @@ ifeq (fscopy,$(PROGRAMMER))
export FLASHER = $(RIOTBOARD)/$(BOARD)/dist/flash.sh
export DEBUGGER =
export DEBUGSERVER =
else ifeq (jlink,$(PROGRAMMER))
export JLINK_DEVICE := nrf51822
include $(RIOTMAKE)/tools/jlink.inc.mk
else
$(info ERROR: invalid flash tool specified)
else ifeq (openocd,$(PROGRAMMER))
DEBUG_ADAPTER = jlink
endif
# include nrf51 boards common configuration
include $(RIOTBOARD)/common/nrf51/Makefile.include

View File

@ -22,21 +22,12 @@
#ifndef BOARD_H
#define BOARD_H
#include "cpu.h"
#include "periph_conf.h"
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Xtimer configuration
* @{
*/
#define XTIMER_WIDTH (24)
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @name LED matrix pin configuration
* @{
@ -65,11 +56,6 @@ extern "C" {
#define BTN1_MODE GPIO_IN
/** @} */
/**
* @brief Initialize the board, also triggers the CPU initialization
*/
void board_init(void);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,3 @@
MODULE = boards_common_nrf51
include $(RIOTBASE)/Makefile.base

View File

@ -0,0 +1,3 @@
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += nrfmin
endif

View File

@ -0,0 +1,5 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_timer
-include $(RIOTCPU)/nrf51/Makefile.features

View File

@ -0,0 +1,18 @@
# define the used CPU
export CPU = nrf51
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# include common nrf51 headers
INCLUDES += -I$(RIOTBOARD)/common/nrf51/include
ifeq ($(PROGRAMMER),openocd)
# use common openocd configuration for nrf51
export OPENOCD_CONFIG = $(RIOTBOARD)/common/nrf51/dist/openocd.cfg
include $(RIOTMAKE)/tools/openocd.inc.mk
else ifeq ($(PROGRAMMER),jlink)
# setup JLink for flashing
export JLINK_DEVICE := nrf51822
include $(RIOTMAKE)/tools/jlink.inc.mk
endif

View File

@ -7,11 +7,11 @@
*/
/**
* @ingroup boards_yunjia-nrf51822
* @ingroup boards_common_nrf51
* @{
*
* @file
* @brief Board specific implementations for the Yunjia NRF51822 board
* @brief Board initialization for the nRF51 based boards
*
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
*

View File

@ -0,0 +1,50 @@
/*
* Copyright (C) 2017 Freie Universität Berlin
* 2018 Inria
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @defgroup boards_common_nrf51 NRF51 common
* @ingroup boards_common
* @brief Shared files and configuration for some nRF51 boards.
* @{
*
* @file
* @brief Shared configuration for some nRF51-based boards
*
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
* @author Alexandre Abadie <alexandre.abadie@inria.fr>
*/
#ifndef BOARD_COMMON_H
#define BOARD_COMMON_H
#include "cpu.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Xtimer configuration
* @{
*/
#define XTIMER_WIDTH (24)
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @brief Initialize the platform
*/
void board_init(void);
#ifdef __cplusplus
}
#endif
#endif /* BOARD_COMMON_H */
/** @} */

View File

@ -0,0 +1,56 @@
/*
* Copyright (C) 2018 Inria
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @ingroup boards_common_nrf51
* @{
*
* @file
* @brief Common peripheral MCU configuration for some nrf51 based boards
*
* @author Alexandre Abadie <alexandre.abadie@inria.fr>
*/
#ifndef PERIPH_CONF_COMMON_H
#define PERIPH_CONF_COMMON_H
#include "periph_cpu.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Timer configuration
* @{
*/
static const timer_conf_t timer_config[] = {
/* dev, channels, width */
{ NRF_TIMER0, 3, TIMER_BITMODE_BITMODE_24Bit, TIMER0_IRQn }
};
#define TIMER_0_ISR isr_timer0
#define TIMER_NUMOF (sizeof(timer_config) / sizeof(timer_config[0]))
/** @} */
/**
* @name Real time counter configuration
* @{
*/
#define RTT_NUMOF (1U)
#define RTT_DEV (1) /* NRF_RTC1 */
#define RTT_MAX_VALUE (0x00ffffff)
#define RTT_FREQUENCY (1024)
/** @} */
#ifdef __cplusplus
} /* end extern "C" */
#endif
#endif /* PERIPH_CONF_COMMON_H */

View File

@ -8,6 +8,4 @@ ifneq (,$(filter saul_default,$(USEMODULE)))
USEMODULE += mma8x5x
endif
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += nrfmin
endif
include $(RIOTBOARD)/common/nrf51/Makefile.dep

View File

@ -1,13 +1,6 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Various other features (if any)
# The board MPU family (used for grouping by the CI system)
FEATURES_MCU_GROUP = cortex_m0_1
include $(RIOTCPU)/nrf51/Makefile.features
# include common nrf51 based boards features
include $(RIOTBOARD)/common/nrf51/Makefile.features

View File

@ -1,16 +1,14 @@
# define the used CPU
export CPU = nrf51
export CPU_MODEL = nrf51x22xxab
# define the default port depending on the host OS
PORT_LINUX ?= /dev/ttyACM0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# we support flashing through plain fscopy or using JLink
# this board supports flashing through plain fscopy, using JLink or using
# openocd. Default programmer is fscopy
PROGRAMMER ?= fscopy
ifeq (fscopy,$(PROGRAMMER))
export FFLAGS =
export DEBUGGER_FLAGS =
@ -18,9 +16,10 @@ ifeq (fscopy,$(PROGRAMMER))
export FLASHER = $(RIOTBOARD)/$(BOARD)/dist/flash.sh
export DEBUGGER =
export DEBUGSERVER =
else ifeq (jlink,$(PROGRAMMER))
export JLINK_DEVICE := nrf51822
include $(RIOTMAKE)/tools/jlink.inc.mk
else
$(info ERROR: invalid flash tool specified)
else ifeq (openocd,$(PROGRAMMER))
# this board uses a daplink adapter by default
DEBUG_ADAPTER = dap
endif
# include nrf51 boards common configuration
include $(RIOTBOARD)/common/nrf51/Makefile.include

View File

@ -20,21 +20,12 @@
#ifndef BOARD_H
#define BOARD_H
#include "cpu.h"
#include "periph_conf.h"
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Xtimer configuration
* @{
*/
#define XTIMER_WIDTH (24)
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @name LED matrix pin configuration
* @{
@ -79,11 +70,6 @@ extern "C" {
#define MAG3110_PARAM_ADDR 0x0e
/** @} */
/**
* @brief Initialize the board, also triggers the CPU initialization
*/
void board_init(void);
#ifdef __cplusplus
}
#endif

View File

@ -1,3 +1 @@
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += nrfmin
endif
include $(RIOTBOARD)/common/nrf51/Makefile.dep

View File

@ -1,12 +1,5 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Various other features (if any)
# The board MPU family (used for grouping by the CI system)
FEATURES_MCU_GROUP = cortex_m0_1
include $(RIOTCPU)/nrf51/Makefile.features
# include common nrf51 based boards features
include $(RIOTBOARD)/common/nrf51/Makefile.features

View File

@ -1,14 +1,17 @@
# define the used CPU
export CPU = nrf51
export CPU_MODEL = nrf51x22xxab
# define the default port depending on the host OS
PORT_LINUX ?= /dev/ttyACM0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
# setup JLink for flashing
export JLINK_DEVICE := nrf51822
include $(RIOTMAKE)/tools/jlink.inc.mk
# use jlink to program this board
PROGRAMMER ?= jlink
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# set required jlink debug adapter for openocd if it's used
ifeq (openocd,$(PROGRAMMER))
DEBUG_ADAPTER = jlink
endif
# include nrf51 boards common configuration
include $(RIOTBOARD)/common/nrf51/Makefile.include

View File

@ -19,21 +19,12 @@
#ifndef BOARD_H
#define BOARD_H
#include "cpu.h"
#include "periph_conf.h"
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Xtimer configuration
* @{
*/
#define XTIMER_WIDTH (24)
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @name LED pin definitions and handlers
* @{
@ -59,11 +50,6 @@ extern "C" {
#define LED2_TOGGLE (NRF_GPIO->OUT ^= LED2_MASK)
/** @} */
/**
* @brief Initialize the board, also triggers the CPU initialization
*/
void board_init(void);
#ifdef __cplusplus
}
#endif

View File

@ -20,6 +20,7 @@
#define PERIPH_CONF_H
#include "periph_cpu.h"
#include "periph_conf_common.h"
#ifdef __cplusplus
extern "C" {
@ -40,30 +41,6 @@ extern "C" {
* 2: derived from HFCLK */
/** @} */
/**
* @name Timer configuration
* @{
*/
static const timer_conf_t timer_config[] = {
/* dev, channels, width */
{ NRF_TIMER0, 3, TIMER_BITMODE_BITMODE_24Bit, TIMER0_IRQn }
};
#define TIMER_0_ISR isr_timer0
#define TIMER_NUMOF (sizeof(timer_config) / sizeof(timer_config[0]))
/** @} */
/**
* @name Real time counter configuration
* @{
*/
#define RTT_NUMOF (1U)
#define RTT_DEV (1) /* NRF_RTC1 */
#define RTT_MAX_VALUE (0x00ffffff)
#define RTT_FREQUENCY (1024)
/** @} */
/**
* @name UART configuration
* @{

View File

@ -1,3 +1 @@
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += nrfmin
endif
include $(RIOTBOARD)/common/nrf51/Makefile.dep

View File

@ -1,13 +1,8 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_spi
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Various other features (if any)
# The board MPU family (used for grouping by the CI system)
FEATURES_MCU_GROUP = cortex_m0_2
# include common nrf51 based boards features
include $(RIOTBOARD)/common/nrf51/Makefile.features
include $(RIOTCPU)/nrf51/Makefile.features

View File

@ -1,21 +1,17 @@
# define the used CPU
export CPU = nrf51
export CPU_MODEL = nrf51x22xxaa
# set default port depending on operating system
PORT_LINUX ?= /dev/ttyUSB0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
# define flash and debugging environment
export FLASHER = $(RIOTBOARD)/$(BOARD)/dist/flash.sh
export DEBUGGER = $(RIOTBOARD)/$(BOARD)/dist/debug.sh
export DEBUGSERVER = JLinkGDBServer -device nrf51822 -if SWD
export RESET = $(RIOTBOARD)/$(BOARD)/dist/reset.sh
# use jlink to program this board
PROGRAMMER ?= jlink
HEXFILE = $(BINFILE)
export FFLAGS = $(BINDIR) $(HEXFILE)
export DEBUGGER_FLAGS = $(BINDIR) $(ELFFILE)
export RESET_FLAGS = $(BINDIR)
# set required debug adapter for openocd if it's used
ifeq (openocd,$(PROGRAMMER))
DEBUG_ADAPTER = jlink
endif
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# include nrf51 boards common configuration
include $(RIOTBOARD)/common/nrf51/Makefile.include

View File

@ -1,17 +0,0 @@
#!/bin/sh
# Start in-circuit debugging on this board: this script starts up the GDB
# client and connects to a GDB server.
#
# Start the GDB server first using the 'make debugserver' target
# @author Hauke Petersen <hauke.petersen@fu-berlin.de>
BINDIR=$1
ELFFILE=$2
# write GDB config file
echo "target extended-remote 127.0.0.1:2331" > $BINDIR/gdb.cfg
# run GDB
arm-none-eabi-gdb -tui -command=$BINDIR/gdb.cfg $ELFFILE

View File

@ -1,25 +0,0 @@
#!/bin/sh
# This flash script dynamically generates a file with a set of commands which
# have to be handed to the flashing script of SEGGER (JLinkExe >4.84).
# After that, JLinkExe will be executed with that set of commands to flash the
# latest .bin file to the board.
# @author Timo Ziegler <timo.ziegler@fu-berlin.de>
# @author Hauke Petersen <hauke.petersen@fu-berlin.de>
BINDIR=$1
HEXFILE=$2
# setup JLink command file
echo "device nrf51822" > $BINDIR/burn.seg
echo "speed 1000" >> $BINDIR/burn.seg
echo "w4 4001e504 1" >> $BINDIR/burn.seg
echo "loadbin $HEXFILE 0" >> $BINDIR/burn.seg
echo "r" >> $BINDIR/burn.seg
echo "g" >> $BINDIR/burn.seg
echo "exit" >> $BINDIR/burn.seg
echo "" >> $BINDIR/burn.seg
# flash new binary to the board
JLinkExe < $BINDIR/burn.seg

View File

@ -1,18 +0,0 @@
#!/bin/sh
# This script resets a nrf51822 target using JLink called
# with a pre-defined reset sequence.
# @author Hauke Petersen <hauke.petersen@fu-berlin.de>
BINDIR=$1
# create JLink command file for resetting the board
echo "device nrf51822" > $BINDIR/reset.seg
echo "r" >> $BINDIR/reset.seg
echo "g" >> $BINDIR/reset.seg
echo "exit" >> $BINDIR/reset.seg
echo " " >> $BINDIR/reset.seg
# reset the board
JLinkExe < $BINDIR/reset.seg

View File

@ -23,6 +23,7 @@
#define PERIPH_CONF_H
#include "periph_cpu.h"
#include "periph_conf_common.h"
#ifdef __cplusplus
extern "C" {
@ -43,30 +44,6 @@ extern "C" {
* 2: derived from HFCLK */
/** @} */
/**
* @name Timer configuration
* @{
*/
static const timer_conf_t timer_config[] = {
/* dev, channels, width */
{ NRF_TIMER0, 3, TIMER_BITMODE_BITMODE_24Bit, TIMER0_IRQn }
};
#define TIMER_0_ISR isr_timer0
#define TIMER_NUMOF (sizeof(timer_config) / sizeof(timer_config[0]))
/** @} */
/**
* @name Real time counter configuration
* @{
*/
#define RTT_NUMOF (1U)
#define RTT_DEV (1) /* NRF_RTC1 */
#define RTT_MAX_VALUE (0x00ffffff)
#define RTT_FREQUENCY (1024)
/** @} */
/**
* @name UART configuration
* @{

View File

@ -1,3 +1,4 @@
MODULE = board
DIRS = $(RIOTBOARD)/common/nrf51
include $(RIOTBASE)/Makefile.base

View File

@ -1,3 +1 @@
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += nrfmin
endif
include $(RIOTBOARD)/common/nrf51/Makefile.dep

View File

@ -1,15 +1,8 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_adc
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_spi
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart
# Various other features (if any)
# The board MPU family (used for grouping by the CI system)
FEATURES_MCU_GROUP = cortex_m0_2
include $(RIOTCPU)/nrf51/Makefile.features
# include common nrf51 based boards features
include $(RIOTBOARD)/common/nrf51/Makefile.features

View File

@ -1,16 +1,19 @@
# define the used CPU
export CPU = nrf51
# define the used CPU model
export CPU_MODEL = nrf51x22xxaa
# include common nrf51 boards module into the build
USEMODULE += boards_common_nrf51
# define the default port depending on the host OS
PORT_LINUX ?= /dev/ttyUSB0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk
# This board uses an ST-Link v2 debug adapter
export DEBUG_ADAPTER ?= stlink
export STLINK_VERSION ?= 2
# this board uses openocd
include $(RIOTMAKE)/tools/openocd.inc.mk
# use openocd to program this board
PROGRAMMER = openocd
# import nrf51 boards common configuration
include $(RIOTBOARD)/common/nrf51/Makefile.include

View File

@ -1,3 +0,0 @@
set WORKAREASIZE 0x4000
source [find target/nrf51.cfg]
$_TARGETNAME configure -rtos auto

View File

@ -19,27 +19,10 @@
#ifndef BOARD_H
#define BOARD_H
#include "cpu.h"
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Xtimer configuration
* @{
*/
#define XTIMER_WIDTH (24)
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @brief Initialize board specific hardware, including clock, LEDs and std-IO
*/
void board_init(void);
#ifdef __cplusplus
}
extern "C" {}
#endif
#endif /* BOARD_H */

View File

@ -20,6 +20,7 @@
#define PERIPH_CONF_H
#include "periph_cpu.h"
#include "periph_conf_common.h"
#ifdef __cplusplus
extern "C" {
@ -40,20 +41,6 @@ extern "C" {
* 2: derived from HFCLK */
/** @} */
/**
* @name Timer configuration
* @{
*/
static const timer_conf_t timer_config[] = {
/* dev, channels, width */
{ NRF_TIMER0, 3, TIMER_BITMODE_BITMODE_24Bit, TIMER0_IRQn }
};
#define TIMER_0_ISR isr_timer0
#define TIMER_NUMOF (sizeof(timer_config) / sizeof(timer_config[0]))
/** @} */
/**
* @name UART configuration
* @{
@ -64,16 +51,6 @@ static const timer_conf_t timer_config[] = {
#define UART_PIN_TX 2
/** @} */
/**
* @name Real time counter configuration
* @{
*/
#define RTT_NUMOF (1U)
#define RTT_DEV (1) /* NRF_RTC1 */
#define RTT_MAX_VALUE (0x00ffffff)
#define RTT_FREQUENCY (1024)
/** @} */
/**
* @name SPI configuration
* @{

View File

@ -1 +1,3 @@
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
-include $(RIOTCPU)/nrf5x_common/Makefile.features