mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
boards: clean up MSP430 board configuration
Move common configuration for MSP430 based boards to `boards/common/msp430` and make use of that.
This commit is contained in:
parent
e6154a04a1
commit
b51ea4ca24
@ -1,11 +1,3 @@
|
|||||||
INCLUDES += -I$(RIOTBOARD)/common/msb-430/include
|
INCLUDES += -I$(RIOTBOARD)/common/msb-430/include
|
||||||
|
|
||||||
# set default port depending on operating system
|
include $(RIOTBOARD)/common/msp430/Makefile.include
|
||||||
PORT_LINUX ?= /dev/ttyUSB0
|
|
||||||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
|
|
||||||
|
|
||||||
# setup flash tool
|
|
||||||
PROGRAMMER ?= mspdebug
|
|
||||||
MSPDEBUG_PROGRAMMER ?= olimex
|
|
||||||
|
|
||||||
PROGRAMMERS_SUPPORTED += mspdebug
|
|
||||||
|
11
boards/common/msp430/Makefile.include
Normal file
11
boards/common/msp430/Makefile.include
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
INCLUDES += -I$(RIOTBOARD)/common/msp430/include
|
||||||
|
|
||||||
|
# set default port depending on operating system
|
||||||
|
PORT_LINUX ?= /dev/ttyUSB0
|
||||||
|
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
|
||||||
|
|
||||||
|
# setup flash tool
|
||||||
|
PROGRAMMER ?= mspdebug
|
||||||
|
MSPDEBUG_PROGRAMMER ?= olimex
|
||||||
|
|
||||||
|
PROGRAMMERS_SUPPORTED += mspdebug
|
17
boards/common/msp430/doc.txt
Normal file
17
boards/common/msp430/doc.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 Otto-von-Guericke-Universität Magdeburg
|
||||||
|
*
|
||||||
|
* 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_msp430 Common Configuration Snippets for MSP430 boards
|
||||||
|
* @ingroup boards_common
|
||||||
|
* @brief Board configuration snippets for MSP430-based boards
|
||||||
|
*
|
||||||
|
* All boards using a CPU from the MSP430 family share certain parts of their
|
||||||
|
* configuration. This module provides a collection of fine grained
|
||||||
|
* configuration snippets that can be reused for different boards.
|
||||||
|
*/
|
61
boards/common/msp430/include/cfg_timer_a_smclk_b_aclk.h
Normal file
61
boards/common/msp430/include/cfg_timer_a_smclk_b_aclk.h
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 Otto-von-Guericke-Universität Magdeburg
|
||||||
|
*
|
||||||
|
* 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_msp430
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Common timer configuration for TIMER_A clocked by SMCLK and
|
||||||
|
* TIMER_B clocked by ACLK
|
||||||
|
*
|
||||||
|
* @author Marian Buschsieweke <marian.buschsieweke@posteo.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CFG_TIMER_A_SMCLK_B_ACLK_H
|
||||||
|
#define CFG_TIMER_A_SMCLK_B_ACLK_H
|
||||||
|
|
||||||
|
#include "periph_cpu.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Timer configuration
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @brief Timer configuration
|
||||||
|
*/
|
||||||
|
static const timer_conf_t timer_conf[] = {
|
||||||
|
{
|
||||||
|
.timer = &TIMER_A,
|
||||||
|
.irq_flags = &TIMER_A_IRQFLAGS,
|
||||||
|
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.timer = &TIMER_B,
|
||||||
|
.irq_flags = &TIMER_B_IRQFLAGS,
|
||||||
|
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#define TIMER_NUMOF ARRAY_SIZE(timer_conf) /**< Number of timers available */
|
||||||
|
|
||||||
|
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR) /**< IRQ vector for channel 0 of TIMER_DEV(0) */
|
||||||
|
#define TIMER0_ISR_CCX (TIMERA1_VECTOR) /**< IRQ vector for channels !=0 of TIMER_DEV(0) */
|
||||||
|
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR) /**< IRQ vector for channel 0 of TIMER_DEV(0) */
|
||||||
|
#define TIMER1_ISR_CCX (TIMERB1_VECTOR) /**< IRQ vector for channels !=0 of TIMER_DEV(1) */
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* CFG_TIMER_A_SMCLK_B_ACLK_H */
|
||||||
|
/** @} */
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "periph_cpu.h"
|
#include "periph_cpu.h"
|
||||||
#include "macros/units.h"
|
#include "macros/units.h"
|
||||||
|
#include "cfg_timer_a_smclk_b_aclk.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -44,30 +45,6 @@ static const msp430_clock_params_t clock_params = {
|
|||||||
.has_r_osc = true,
|
.has_r_osc = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Timer configuration
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
static const timer_conf_t timer_conf[] = {
|
|
||||||
{
|
|
||||||
.timer = &TIMER_A,
|
|
||||||
.irq_flags = &TIMER_A_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.timer = &TIMER_B,
|
|
||||||
.irq_flags = &TIMER_B_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#define TIMER_NUMOF ARRAY_SIZE(timer_conf)
|
|
||||||
|
|
||||||
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR)
|
|
||||||
#define TIMER0_ISR_CCX (TIMERA1_VECTOR)
|
|
||||||
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR)
|
|
||||||
#define TIMER1_ISR_CCX (TIMERB1_VECTOR)
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name UART configuration
|
* @name UART configuration
|
||||||
* @{
|
* @{
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#define PERIPH_CONF_H
|
#define PERIPH_CONF_H
|
||||||
|
|
||||||
#include "periph_cpu.h"
|
#include "periph_cpu.h"
|
||||||
|
#include "cfg_timer_a_smclk_b_aclk.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -43,30 +44,6 @@ static const msp430_clock_params_t clock_params = {
|
|||||||
.has_r_osc = true,
|
.has_r_osc = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Timer configuration
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
static const timer_conf_t timer_conf[] = {
|
|
||||||
{
|
|
||||||
.timer = &TIMER_A,
|
|
||||||
.irq_flags = &TIMER_A_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.timer = &TIMER_B,
|
|
||||||
.irq_flags = &TIMER_B_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#define TIMER_NUMOF ARRAY_SIZE(timer_conf)
|
|
||||||
|
|
||||||
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR)
|
|
||||||
#define TIMER0_ISR_CCX (TIMERA1_VECTOR)
|
|
||||||
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR)
|
|
||||||
#define TIMER1_ISR_CCX (TIMERB1_VECTOR)
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name UART configuration
|
* @name UART configuration
|
||||||
* @{
|
* @{
|
||||||
|
@ -1,13 +1,3 @@
|
|||||||
# set default port depending on operating system
|
|
||||||
PORT_LINUX ?= /dev/ttyUSB0
|
|
||||||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial-MXV*)))
|
|
||||||
|
|
||||||
# flash tool configuration
|
|
||||||
PROGRAMMER ?= mspdebug
|
|
||||||
MSPDEBUG_PROGRAMMER ?= olimex
|
|
||||||
|
|
||||||
PROGRAMMERS_SUPPORTED += mspdebug
|
|
||||||
|
|
||||||
# When freshly plugged in the Olimex MSP430-JTAG-Tiny debugger provides a
|
# When freshly plugged in the Olimex MSP430-JTAG-Tiny debugger provides a
|
||||||
# ttyACM interface, which is only available until the first flashing. A
|
# ttyACM interface, which is only available until the first flashing. A
|
||||||
# `make term` or even a `make flash term` may pick the JTAG debugger instead
|
# `make term` or even a `make flash term` may pick the JTAG debugger instead
|
||||||
@ -24,3 +14,5 @@ TTY_SELECT_CMD := $(RIOTTOOLS)/usb-serial/ttys.py \
|
|||||||
$(RIOTTOOLS)/usb-serial/ttys.py \
|
$(RIOTTOOLS)/usb-serial/ttys.py \
|
||||||
--most-recent \
|
--most-recent \
|
||||||
--format path serial
|
--format path serial
|
||||||
|
|
||||||
|
include $(RIOTBOARD)/common/msp430/Makefile.include
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "periph_cpu.h"
|
#include "periph_cpu.h"
|
||||||
#include "macros/units.h"
|
#include "macros/units.h"
|
||||||
|
#include "cfg_timer_a_smclk_b_aclk.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -43,30 +44,6 @@ static const msp430_clock_params_t clock_params = {
|
|||||||
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Timer configuration
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
static const timer_conf_t timer_conf[] = {
|
|
||||||
{
|
|
||||||
.timer = &TIMER_A,
|
|
||||||
.irq_flags = &TIMER_A_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.timer = &TIMER_B,
|
|
||||||
.irq_flags = &TIMER_B_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#define TIMER_NUMOF ARRAY_SIZE(timer_conf)
|
|
||||||
|
|
||||||
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR)
|
|
||||||
#define TIMER0_ISR_CCX (TIMERA1_VECTOR)
|
|
||||||
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR)
|
|
||||||
#define TIMER1_ISR_CCX (TIMERB1_VECTOR)
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name UART configuration
|
* @name UART configuration
|
||||||
* @{
|
* @{
|
||||||
|
@ -1,13 +1,3 @@
|
|||||||
# set default port depending on operating system
|
|
||||||
PORT_LINUX ?= /dev/ttyUSB0
|
|
||||||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial-MXV*)))
|
|
||||||
|
|
||||||
# flash tool configuration
|
|
||||||
PROGRAMMER ?= mspdebug
|
|
||||||
MSPDEBUG_PROGRAMMER ?= olimex
|
|
||||||
|
|
||||||
PROGRAMMERS_SUPPORTED += mspdebug
|
|
||||||
|
|
||||||
# When freshly plugged in the Olimex MSP430-JTAG-Tiny debugger provides a
|
# When freshly plugged in the Olimex MSP430-JTAG-Tiny debugger provides a
|
||||||
# ttyACM interface, which is only available until the first flashing. A
|
# ttyACM interface, which is only available until the first flashing. A
|
||||||
# `make term` or even a `make flash term` may pick the JTAG debugger instead
|
# `make term` or even a `make flash term` may pick the JTAG debugger instead
|
||||||
@ -24,3 +14,5 @@ TTY_SELECT_CMD := $(RIOTTOOLS)/usb-serial/ttys.py \
|
|||||||
$(RIOTTOOLS)/usb-serial/ttys.py \
|
$(RIOTTOOLS)/usb-serial/ttys.py \
|
||||||
--most-recent \
|
--most-recent \
|
||||||
--format path serial
|
--format path serial
|
||||||
|
|
||||||
|
include $(RIOTBOARD)/common/msp430/Makefile.include
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include "periph_cpu.h"
|
#include "periph_cpu.h"
|
||||||
#include "macros/units.h"
|
#include "macros/units.h"
|
||||||
|
#include "cfg_timer_a_smclk_b_aclk.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -42,30 +43,6 @@ static const msp430_clock_params_t clock_params = {
|
|||||||
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Timer configuration
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
static const timer_conf_t timer_conf[] = {
|
|
||||||
{
|
|
||||||
.timer = &TIMER_A,
|
|
||||||
.irq_flags = &TIMER_A_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.timer = &TIMER_B,
|
|
||||||
.irq_flags = &TIMER_B_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#define TIMER_NUMOF ARRAY_SIZE(timer_conf)
|
|
||||||
|
|
||||||
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR)
|
|
||||||
#define TIMER0_ISR_CCX (TIMERA1_VECTOR)
|
|
||||||
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR)
|
|
||||||
#define TIMER1_ISR_CCX (TIMERB1_VECTOR)
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name UART configuration
|
* @name UART configuration
|
||||||
* @{
|
* @{
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
# set default port depending on operating system
|
|
||||||
PORT_LINUX ?= /dev/ttyUSB0
|
|
||||||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial-MXV*)))
|
|
||||||
# setup serial terminal
|
|
||||||
BAUD ?= 9600
|
|
||||||
|
|
||||||
# flash tool configuration
|
# flash tool configuration
|
||||||
PROGRAMMER ?= goodfet
|
PROGRAMMER ?= goodfet
|
||||||
GOODFET_FLAGS ?= --telosb
|
GOODFET_FLAGS ?= --telosb
|
||||||
|
|
||||||
PROGRAMMERS_SUPPORTED += goodfet
|
PROGRAMMERS_SUPPORTED += goodfet
|
||||||
|
|
||||||
|
include $(RIOTBOARD)/common/msp430/Makefile.include
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "macros/units.h"
|
#include "macros/units.h"
|
||||||
#include "periph_cpu.h"
|
#include "periph_cpu.h"
|
||||||
|
#include "cfg_timer_a_smclk_b_aclk.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -43,30 +44,6 @@ static const msp430_clock_params_t clock_params = {
|
|||||||
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Timer configuration
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
static const timer_conf_t timer_conf[] = {
|
|
||||||
{
|
|
||||||
.timer = &TIMER_A,
|
|
||||||
.irq_flags = &TIMER_A_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.timer = &TIMER_B,
|
|
||||||
.irq_flags = &TIMER_B_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#define TIMER_NUMOF ARRAY_SIZE(timer_conf)
|
|
||||||
|
|
||||||
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR)
|
|
||||||
#define TIMER0_ISR_CCX (TIMERA1_VECTOR)
|
|
||||||
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR)
|
|
||||||
#define TIMER1_ISR_CCX (TIMERB1_VECTOR)
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name UART configuration
|
* @name UART configuration
|
||||||
* @{
|
* @{
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
# set default port depending on operating system
|
|
||||||
PORT_LINUX ?= /dev/ttyUSB0
|
|
||||||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
|
|
||||||
|
|
||||||
# setup flash tool
|
# setup flash tool
|
||||||
PROGRAMMER ?= goodfet
|
PROGRAMMER ?= goodfet
|
||||||
GOODFET_FLAGS ?= --z1
|
GOODFET_FLAGS ?= --z1
|
||||||
|
|
||||||
PROGRAMMERS_SUPPORTED += goodfet
|
PROGRAMMERS_SUPPORTED += goodfet
|
||||||
|
|
||||||
|
include $(RIOTBOARD)/common/msp430/Makefile.include
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "macros/units.h"
|
#include "macros/units.h"
|
||||||
#include "periph_cpu.h"
|
#include "periph_cpu.h"
|
||||||
|
#include "cfg_timer_a_smclk_b_aclk.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -43,30 +44,6 @@ static const msp430_clock_params_t clock_params = {
|
|||||||
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
.auxiliary_clock_divier = AUXILIARY_CLOCK_DIVIDE_BY_1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Timer configuration
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
static const timer_conf_t timer_conf[] = {
|
|
||||||
{
|
|
||||||
.timer = &TIMER_A,
|
|
||||||
.irq_flags = &TIMER_A_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_SUBMAIN_CLOCK,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.timer = &TIMER_B,
|
|
||||||
.irq_flags = &TIMER_B_IRQFLAGS,
|
|
||||||
.clock_source = TIMER_CLOCK_SOURCE_AUXILIARY_CLOCK,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#define TIMER_NUMOF ARRAY_SIZE(timer_conf)
|
|
||||||
|
|
||||||
#define TIMER0_ISR_CC0 (TIMERA0_VECTOR)
|
|
||||||
#define TIMER0_ISR_CCX (TIMERA1_VECTOR)
|
|
||||||
#define TIMER1_ISR_CC0 (TIMERB0_VECTOR)
|
|
||||||
#define TIMER1_ISR_CCX (TIMERB1_VECTOR)
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name UART configuration
|
* @name UART configuration
|
||||||
* @{
|
* @{
|
||||||
|
Loading…
Reference in New Issue
Block a user