boards/alientek-pandora: Add support for Alientek Pandora
Co-authored-by: Marian Buschsieweke <maribu@users.noreply.github.com>
This commit is contained in:
parent
e46bd4b903
commit
de32f3a8bb
28
boards/alientek-pandora/Kconfig
Normal file
28
boards/alientek-pandora/Kconfig
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Copyright (C) 2021 Luo Jia (HUST IoT Security Lab)
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "alientek-pandora" if BOARD_ALIENTEK_PANDORA
|
||||||
|
|
||||||
|
config BOARD_ALIENTEK_PANDORA
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
select CPU_MODEL_STM32L475VE
|
||||||
|
|
||||||
|
# Put defined MCU peripherals here (in alphabetical order)
|
||||||
|
select HAS_PERIPH_RTC
|
||||||
|
select HAS_PERIPH_RTT
|
||||||
|
select HAS_PERIPH_TIMER
|
||||||
|
select HAS_PERIPH_UART
|
||||||
|
|
||||||
|
# Put other features for this board (in alphabetical order)
|
||||||
|
select HAS_RIOTBOOT
|
||||||
|
|
||||||
|
# Clock configuration
|
||||||
|
select BOARD_HAS_LSE
|
||||||
|
|
||||||
|
source "$(RIOTBOARD)/common/stm32/Kconfig"
|
||||||
3
boards/alientek-pandora/Makefile
Normal file
3
boards/alientek-pandora/Makefile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
MODULE = board
|
||||||
|
|
||||||
|
include $(RIOTBASE)/Makefile.base
|
||||||
3
boards/alientek-pandora/Makefile.dep
Normal file
3
boards/alientek-pandora/Makefile.dep
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
ifneq (,$(filter saul_default,$(USEMODULE)))
|
||||||
|
USEMODULE += saul_gpio
|
||||||
|
endif
|
||||||
11
boards/alientek-pandora/Makefile.features
Normal file
11
boards/alientek-pandora/Makefile.features
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
CPU = stm32
|
||||||
|
CPU_MODEL = stm32l475ve
|
||||||
|
|
||||||
|
# Put defined MCU peripherals here (in alphabetical order)
|
||||||
|
FEATURES_PROVIDED += periph_rtc
|
||||||
|
FEATURES_PROVIDED += periph_rtt
|
||||||
|
FEATURES_PROVIDED += periph_timer
|
||||||
|
FEATURES_PROVIDED += periph_uart
|
||||||
|
|
||||||
|
# Put other features for this board (in alphabetical order)
|
||||||
|
FEATURES_PROVIDED += riotboot
|
||||||
13
boards/alientek-pandora/Makefile.include
Normal file
13
boards/alientek-pandora/Makefile.include
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# we use shared STM32 configuration snippets
|
||||||
|
INCLUDES += -I$(RIOTBOARD)/common/stm32/include
|
||||||
|
|
||||||
|
# this board uses openocd with st-link
|
||||||
|
PROGRAMMER ?= openocd
|
||||||
|
OPENOCD_DEBUG_ADAPTER ?= stlink
|
||||||
|
|
||||||
|
# This board can become un-flashable after a hardfault,
|
||||||
|
# use connect_assert_srst to always be able to flash or reset the board.
|
||||||
|
OPENOCD_RESET_USE_CONNECT_ASSERT_SRST ?= 1
|
||||||
|
|
||||||
|
# openocd programmer is supported
|
||||||
|
PROGRAMMERS_SUPPORTED += openocd
|
||||||
30
boards/alientek-pandora/board.c
Normal file
30
boards/alientek-pandora/board.c
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 Luo Jia (HUST IoT Security Lab)
|
||||||
|
*
|
||||||
|
* 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_alientek-pandora
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Board specific implementations for the Alientek Pandora board
|
||||||
|
*
|
||||||
|
* @author Luo Jia <luojia@hust.edu.cn>
|
||||||
|
*
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "board.h"
|
||||||
|
#include "periph/gpio.h"
|
||||||
|
|
||||||
|
void board_init(void)
|
||||||
|
{
|
||||||
|
/* initialize LEDs */
|
||||||
|
gpio_init(LED0_PIN, GPIO_OUT);
|
||||||
|
gpio_init(LED1_PIN, GPIO_OUT);
|
||||||
|
gpio_init(LED2_PIN, GPIO_OUT);
|
||||||
|
}
|
||||||
40
boards/alientek-pandora/doc.txt
Normal file
40
boards/alientek-pandora/doc.txt
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/**
|
||||||
|
@defgroup boards_alientek-pandora Alientek Pandora
|
||||||
|
@ingroup boards
|
||||||
|
@brief Support for the Alientek Pandora board
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Alientek Pandora is a development board manufactured jointly by Alientek and RT-Thread company.
|
||||||
|
It is based on STM32L475VET6 and have on-board LCD, SD card and WiFi access.
|
||||||
|
Users may connect to its on board ST-Link 2.1 compatible debugger to flash or debug.
|
||||||
|
|
||||||
|
Documents of this board are available on its [Alientek official website](http://www.alientek.com/productinfo/716137.html).
|
||||||
|
It may require a translation software to read it in English.
|
||||||
|
Additional resources may be found on [RT-Thread bsp support page](https://gitee.com/rtthread/rt-thread/tree/master/bsp/stm32/stm32l475-atk-pandora).
|
||||||
|
|
||||||
|
### Flashing the board
|
||||||
|
|
||||||
|
To flash the board, use the on board ST-Link programmer/debugger.
|
||||||
|
Input the following command:
|
||||||
|
|
||||||
|
make BOARD=alientek-pandora -C examples/hello-world flash
|
||||||
|
|
||||||
|
The NRST pin is connected to the on board debugger, so users do not need to reset manually
|
||||||
|
every time it requires to flash.
|
||||||
|
|
||||||
|
If the operating system raised a fault, users may manually reset the chip by pressing the reset button.
|
||||||
|
This button has a black color and is located between the four keys and the LED light.
|
||||||
|
|
||||||
|
### STDIO
|
||||||
|
|
||||||
|
STDIO is connected to pins PA9 (TX) and PA10 (RX).
|
||||||
|
Before you begin, check that the both the jumper caps marked as 'USART1' is connected.
|
||||||
|
|
||||||
|
Use the `term` target to open a terminal:
|
||||||
|
|
||||||
|
make BOARD=alientek-pandora -C examples/hello-world term
|
||||||
|
|
||||||
|
An on-board ST-Link compatible debugger is used to transport serial STDIO message.
|
||||||
|
|
||||||
|
*/
|
||||||
84
boards/alientek-pandora/include/board.h
Normal file
84
boards/alientek-pandora/include/board.h
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 Luo Jia (HUST IoT Security Lab)
|
||||||
|
*
|
||||||
|
* 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_alientek-pandora
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Board specific definitions for the Alientek Pandora board
|
||||||
|
*
|
||||||
|
* @author Luo Jia <luojia@hust.edu.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BOARD_H
|
||||||
|
#define BOARD_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "cpu.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name LED pin definitions and handlers
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define LED0_PIN GPIO_PIN(PORT_E, 7) /**< LED0 gpio pin */
|
||||||
|
#define LED0_MASK (1 << 7) /**< LED0 gpio mask */
|
||||||
|
|
||||||
|
#define LED0_ON (GPIOB->BSRR = LED0_MASK) /**< Turn on LED0 */
|
||||||
|
#define LED0_OFF (GPIOB->BSRR = (LED0_MASK << 16)) /**< Turn off LED0 */
|
||||||
|
#define LED0_TOGGLE (GPIOB->ODR ^= LED0_MASK) /**< Toggle LED0 */
|
||||||
|
|
||||||
|
#define LED1_PIN GPIO_PIN(PORT_E, 8) /**< LED1 gpio pin */
|
||||||
|
#define LED1_MASK (1 << 8) /**< LED1 gpio mask */
|
||||||
|
|
||||||
|
#define LED1_ON (GPIOE->BSRR = LED1_MASK) /**< Turn on LED1 */
|
||||||
|
#define LED1_OFF (GPIOE->BSRR = (LED1_MASK << 16)) /**< Turn off LED1 */
|
||||||
|
#define LED1_TOGGLE (GPIOE->ODR ^= LED1_MASK) /**< Toggle LED1 */
|
||||||
|
|
||||||
|
#define LED2_PIN GPIO_PIN(PORT_E, 9) /**< LED2 gpio pin */
|
||||||
|
#define LED2_MASK (1 << 9) /**< LED2 gpio mask */
|
||||||
|
|
||||||
|
#define LED2_ON (GPIOE->BSRR = LED2_MASK) /**< Turn on LED2 */
|
||||||
|
#define LED2_OFF (GPIOE->BSRR = (LED2_MASK << 16)) /**< Turn off LED2 */
|
||||||
|
#define LED2_TOGGLE (GPIOE->ODR ^= LED2_MASK) /**< Toggle LED2 */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Wake-up and key buttons
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define BTNWK_PIN GPIO_PIN(PORT_C, 13) /**< Wake button pin */
|
||||||
|
#define BTNWK_MODE GPIO_IN_PD /**< Wake button mode */
|
||||||
|
|
||||||
|
#define BTN0_PIN GPIO_PIN(PORT_D, 10) /**< Button 0 pin */
|
||||||
|
#define BTN0_MODE GPIO_IN_PD /**< Button 0 mode */
|
||||||
|
|
||||||
|
#define BTN1_PIN GPIO_PIN(PORT_D, 9) /**< Button 1 pin */
|
||||||
|
#define BTN1_MODE GPIO_IN_PD /**< Button 1 mode */
|
||||||
|
|
||||||
|
#define BTN2_PIN GPIO_PIN(PORT_D, 8) /**< Button 2 pin */
|
||||||
|
#define BTN2_MODE GPIO_IN_PD /**< Button 2 mode */
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize board specific hardware, including clock, LEDs and std-IO
|
||||||
|
*/
|
||||||
|
void board_init(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* BOARD_H */
|
||||||
|
/** @} */
|
||||||
84
boards/alientek-pandora/include/gpio_params.h
Normal file
84
boards/alientek-pandora/include/gpio_params.h
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 Luo Jia (HUST IoT Security Lab)
|
||||||
|
*
|
||||||
|
* 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_alientek-pandora
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Board specific configuration of direct mapped GPIOs
|
||||||
|
*
|
||||||
|
* @author Luo Jia <luojia@hust.edu.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GPIO_PARAMS_H
|
||||||
|
#define GPIO_PARAMS_H
|
||||||
|
|
||||||
|
#include "board.h"
|
||||||
|
#include "saul/periph.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GPIO pin configuration
|
||||||
|
*/
|
||||||
|
static const saul_gpio_params_t saul_gpio_params[] =
|
||||||
|
{
|
||||||
|
#ifndef MODULE_SAUL_PWM
|
||||||
|
{
|
||||||
|
.name = "LED Red",
|
||||||
|
.pin = LED0_PIN,
|
||||||
|
.mode = GPIO_OUT,
|
||||||
|
.flags = (SAUL_GPIO_INVERTED | SAUL_GPIO_INIT_CLEAR),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "LED Green",
|
||||||
|
.pin = LED1_PIN,
|
||||||
|
.mode = GPIO_OUT,
|
||||||
|
.flags = (SAUL_GPIO_INVERTED | SAUL_GPIO_INIT_CLEAR),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "LED Blue",
|
||||||
|
.pin = LED2_PIN,
|
||||||
|
.mode = GPIO_OUT,
|
||||||
|
.flags = (SAUL_GPIO_INVERTED | SAUL_GPIO_INIT_CLEAR),
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
.name = "Wakeup Key",
|
||||||
|
.pin = BTNWK_PIN,
|
||||||
|
.mode = BTNWK_MODE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Key 0",
|
||||||
|
.pin = BTN0_PIN,
|
||||||
|
.mode = BTN0_MODE,
|
||||||
|
.flags = SAUL_GPIO_INVERTED
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Key 1",
|
||||||
|
.pin = BTN1_PIN,
|
||||||
|
.mode = BTN1_MODE,
|
||||||
|
.flags = SAUL_GPIO_INVERTED
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Key 2",
|
||||||
|
.pin = BTN2_PIN,
|
||||||
|
.mode = BTN2_MODE,
|
||||||
|
.flags = SAUL_GPIO_INVERTED
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* GPIO_PARAMS_H */
|
||||||
|
/** @} */
|
||||||
89
boards/alientek-pandora/include/periph_conf.h
Normal file
89
boards/alientek-pandora/include/periph_conf.h
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 Luo Jia (HUST IoT Security Lab)
|
||||||
|
*
|
||||||
|
* 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_alientek-pandora
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Peripheral MCU configuration for the Alientek Pandora board
|
||||||
|
*
|
||||||
|
* @author Luo Jia <luojia@hust.edu.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PERIPH_CONF_H
|
||||||
|
#define PERIPH_CONF_H
|
||||||
|
|
||||||
|
/* Add specific clock configuration (HSE, LSE) for this board here */
|
||||||
|
#ifndef CONFIG_BOARD_HAS_LSE
|
||||||
|
#define CONFIG_BOARD_HAS_LSE 1 /**< This board provides LSE */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "periph_cpu.h"
|
||||||
|
#include "clk_conf.h"
|
||||||
|
#include "cfg_rtt_default.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Timer configuration
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/** All timers on board */
|
||||||
|
static const timer_conf_t timer_config[] = {
|
||||||
|
{
|
||||||
|
.dev = TIM5,
|
||||||
|
.max = 0xffffffff,
|
||||||
|
.rcc_mask = RCC_APB1ENR1_TIM5EN,
|
||||||
|
.bus = APB1,
|
||||||
|
.irqn = TIM5_IRQn
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define TIMER_0_ISR isr_tim5 /**< Timer 0 ISR number */
|
||||||
|
|
||||||
|
#define TIMER_NUMOF ARRAY_SIZE(timer_config) /**< Number of timers on this board */
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name UART configuration
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/** All UARTs on board */
|
||||||
|
static const uart_conf_t uart_config[] = {
|
||||||
|
{
|
||||||
|
.dev = USART1,
|
||||||
|
.rcc_mask = RCC_APB2ENR_USART1EN,
|
||||||
|
.rx_pin = GPIO_PIN(PORT_A, 10),
|
||||||
|
.tx_pin = GPIO_PIN(PORT_A, 9),
|
||||||
|
.rx_af = GPIO_AF7,
|
||||||
|
.tx_af = GPIO_AF7,
|
||||||
|
.bus = APB2,
|
||||||
|
.irqn = USART1_IRQn,
|
||||||
|
.type = STM32_USART,
|
||||||
|
.clk_src = 0, /* Use APB clock */
|
||||||
|
#ifdef UART_USE_DMA
|
||||||
|
.dma_stream = 6,
|
||||||
|
.dma_chan = 4
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define UART_0_ISR (isr_usart1) /**< Usart1 ISR number */
|
||||||
|
|
||||||
|
#define UART_NUMOF ARRAY_SIZE(uart_config) /**< Number of uarts on this board */
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* PERIPH_CONF_H */
|
||||||
|
/** @} */
|
||||||
Loading…
x
Reference in New Issue
Block a user