From c4a7e8570dd17a4900839fba8b6d5d04f70a8e52 Mon Sep 17 00:00:00 2001 From: Oleksandr Grytsov Date: Wed, 16 Jan 2019 17:43:52 +0200 Subject: [PATCH] [samr21] Add possibility to define board with command line (#3491) By default Makefile-samr21 builds for SAM R21 Xplained Pro board. Another board can be specified with BOARD variable through command line: make -f examples/Makefile-samr21 BOARD= Currently supported following boards: SAMR21_XPLAINED_PRO, SAMR21G18_MODULE, SAMR21B18_MODULE. Signed-off-by: Oleksandr Grytsov --- examples/Makefile-samr21 | 17 +++++++++++++++++ examples/platforms/samr21/Makefile.am | 8 -------- third_party/microchip/include/conf_board.h | 11 ++++++++++- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/examples/Makefile-samr21 b/examples/Makefile-samr21 index f9c935231..9c7c4f863 100644 --- a/examples/Makefile-samr21 +++ b/examples/Makefile-samr21 @@ -41,6 +41,21 @@ OBJCOPY = arm-none-eabi-objcopy BuildJobs ?= 10 + +# Board setup + +BOARD ?= SAMR21_XPLAINED_PRO + +ifeq ($(BOARD), SAMR21_XPLAINED_PRO) + CPU = __SAMR21G18A__ +else ifeq ($(BOARD), SAMR21G18_MODULE) + CPU = __SAMR21G18A__ +else ifeq ($(BOARD), SAMR21B18_MODULE) + CPU=__SAMR21G18A__ +else + $(error Invalid BOARD=$(BOARD) (currently supported SAMR21_XPLAINED_PRO, SAMR21G18_MODULE, SAMR21B18_MODULE)) +endif + configure_OPTIONS = \ --enable-cli \ --enable-diag \ @@ -60,6 +75,8 @@ CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-samr21 CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/samr21/ COMMONCFLAGS := \ + -DBOARD=$(BOARD) \ + -D$(CPU) \ -fdata-sections \ -ffunction-sections \ -Os \ diff --git a/examples/platforms/samr21/Makefile.am b/examples/platforms/samr21/Makefile.am index 072f15957..a3aaade0d 100644 --- a/examples/platforms/samr21/Makefile.am +++ b/examples/platforms/samr21/Makefile.am @@ -33,16 +33,8 @@ lib_LIBRARIES = libopenthread-samr21.a override CFLAGS := $(filter-out -pedantic-errors,$(CFLAGS)) override CXXFLAGS := $(filter-out -pedantic-errors,$(CXXFLAGS)) -#SAMR21_BOARD=USER_BOARD -#SAMR21_CPU=__SAMR21E18A__ - -SAMR21_BOARD=SAMR21_XPLAINED_PRO -SAMR21_CPU=__SAMR21G18A__ - libopenthread_samr21_a_CPPFLAGS = \ -D ARM_MATH_CM0PLUS=true \ - -D BOARD=$(SAMR21_BOARD) \ - -D $(SAMR21_CPU) \ -D PHY_AT86RF233 \ -D SAL_TYPE=AT86RF2xx \ -D USART_CALLBACK_MODE=true \ diff --git a/third_party/microchip/include/conf_board.h b/third_party/microchip/include/conf_board.h index d15d28f02..79034ab80 100644 --- a/third_party/microchip/include/conf_board.h +++ b/third_party/microchip/include/conf_board.h @@ -51,10 +51,19 @@ #define AT86RFX_SPI_BAUDRATE 5000000UL -#if BOARD==USER_BOARD +#if (BOARD==SAMR21G18_MODULE) || (BOARD==SAMR21B18_MODULE) #define CONF_USER_ROW_EXIST +#define UART_SERCOM_MODULE SERCOM2 +#define UART_SERCOM_MUX_SETTING USART_RX_3_TX_2_XCK_3 +#define UART_SERCOM_PINMUX_PAD0 PINMUX_UNUSED +#define UART_SERCOM_PINMUX_PAD1 PINMUX_UNUSED +#define UART_SERCOM_PINMUX_PAD2 PINMUX_PA14C_SERCOM2_PAD2 +#define UART_SERCOM_PINMUX_PAD3 PINMUX_PA15C_SERCOM2_PAD3 +#define UART_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX +#define UART_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX + #endif #if BOARD==SAMR21_XPLAINED_PRO