mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
boards/common: Introduce Atmel xmega common
Add atxmega common board definitions. This works is a port from @josar with few modifications. Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
This commit is contained in:
parent
1d55c85f24
commit
85fcba0ce9
3
boards/common/atxmega/Makefile
Normal file
3
boards/common/atxmega/Makefile
Normal file
@ -0,0 +1,3 @@
|
||||
MODULE = boards_common_atxmega
|
||||
|
||||
include $(RIOTBASE)/Makefile.base
|
1
boards/common/atxmega/Makefile.features
Normal file
1
boards/common/atxmega/Makefile.features
Normal file
@ -0,0 +1 @@
|
||||
CPU = atxmega
|
38
boards/common/atxmega/Makefile.include
Normal file
38
boards/common/atxmega/Makefile.include
Normal file
@ -0,0 +1,38 @@
|
||||
INCLUDES += -I$(RIOTBOARD)/common/atxmega/include
|
||||
|
||||
# Use JTAG as default protocol for debugging
|
||||
DEBUGPROTO ?= -x
|
||||
FLASHFILE ?= $(ELFFILE)
|
||||
|
||||
# Use avrdude programmer with Atmel ICE as default flash/debug system
|
||||
PROGRAMMER ?= avrdude
|
||||
AVRDUDE_PROGRAMMER ?= atmelice
|
||||
|
||||
ifneq (,$(filter flash%,$(MAKECMDGOALS)))
|
||||
FFLAGS_EXTRA ?= -e
|
||||
endif
|
||||
|
||||
# If avrdude specific programmer is not set, set it based on the bootloader used
|
||||
ifeq (,$(AVRDUDE_PROGRAMMER))
|
||||
FLASHFILE ?= $(BINFILE)
|
||||
|
||||
ifeq (stk500v2,$(BOOTLOADER))
|
||||
AVRDUDE_PROGRAMMER = stk500v2
|
||||
BOOTLOADER_SIZE ?= 4K
|
||||
# Disable auto erase; erasing the flash is done implicitly by the bootloader
|
||||
# and explicit erase is not supported
|
||||
FFLAGS_EXTRA += -D
|
||||
endif
|
||||
|
||||
ifeq (avr109,$(BOOTLOADER))
|
||||
AVRDUDE_PROGRAMMER = avr109
|
||||
BOOTLOADER_SIZE ?= 4K
|
||||
endif
|
||||
|
||||
ifneq (,$(BOOTLOADER_BAUD))
|
||||
FFLAGS_EXTRA += -b $(BOOTLOADER_BAUD)
|
||||
endif
|
||||
endif
|
||||
|
||||
BOOTLOADER_SIZE ?= 0
|
||||
ROM_RESERVED ?= $(BOOTLOADER_SIZE)
|
38
boards/common/atxmega/board.c
Normal file
38
boards/common/atxmega/board.c
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Gerson Fernando Budke <nandojve@gmail.com>
|
||||
*
|
||||
* 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
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Common implementations for ATxmega boards
|
||||
*
|
||||
* @author Gerson Fernando Budke <nandojve@gmail.com>
|
||||
*
|
||||
* @}
|
||||
*/
|
||||
|
||||
#include "board.h"
|
||||
#include "cpu.h"
|
||||
|
||||
#ifdef LED_PORT
|
||||
void __attribute__((weak)) led_init(void)
|
||||
{
|
||||
LED_PORT.DIR = LED_PORT_MASK;
|
||||
LED_PORT.OUT = LED_PORT_MASK;
|
||||
}
|
||||
#endif
|
||||
|
||||
void __attribute__((weak)) board_init(void)
|
||||
{
|
||||
cpu_init();
|
||||
#ifdef LED_PORT
|
||||
led_init();
|
||||
#endif
|
||||
}
|
5
boards/common/atxmega/doc.txt
Normal file
5
boards/common/atxmega/doc.txt
Normal file
@ -0,0 +1,5 @@
|
||||
/**
|
||||
@defgroup boards_common_atxmega ATxmega common
|
||||
@ingroup boards
|
||||
@brief Shared files and configuration for ATxmega-based boards
|
||||
*/
|
100
boards/common/atxmega/include/periph_conf_common.h
Normal file
100
boards/common/atxmega/include/periph_conf_common.h
Normal file
@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Gerson Fernando Budke <nandojve@gmail.com>
|
||||
*
|
||||
* 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_atxmega
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Common configuration of MCU periphery for ATxmega boards
|
||||
*
|
||||
* @author Gerson Fernando Budke <nandojve@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef PERIPH_CONF_COMMON_H
|
||||
#define PERIPH_CONF_COMMON_H
|
||||
|
||||
#include "periph_cpu.h"
|
||||
#include "macros/units.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @name Clock configuration
|
||||
* @{
|
||||
*/
|
||||
#ifndef CLOCK_CORECLOCK
|
||||
#define CLOCK_CORECLOCK MHZ(32)
|
||||
#endif /* CLOCK_CORECLOCK */
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name ADC Configuration
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#ifndef ADC_NUMOF
|
||||
#define ADC_NUMOF (0U)
|
||||
#endif /* ADC_NUMOF */
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name I2C configuration
|
||||
* @{
|
||||
*/
|
||||
#ifndef I2C_NUMOF
|
||||
#define I2C_NUMOF (0U)
|
||||
#endif /* I2C_NUMOF */
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name PWM configuration
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#ifndef PWM_NUMOF
|
||||
#define PWM_NUMOF (0U)
|
||||
#endif /* PWM_NUMOF */
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name SPI configuration
|
||||
*
|
||||
* The SS pin must be configured as output for the SPI device to work as
|
||||
* master correctly, though we do not use it for now (as we handle the chip
|
||||
* select externally for now)
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#ifndef SPI_NUMOF
|
||||
#define SPI_NUMOF (0U)
|
||||
#endif /* SPI_NUMOF */
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name UART configuration
|
||||
*
|
||||
* The UART devices have fixed pin mappings, so all we need to do, is to specify
|
||||
* which devices we would like to use and their corresponding RX interrupts. See
|
||||
* the reference manual for the fixed pin mapping.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#ifndef UART_NUMOF
|
||||
#define UART_NUMOF (0U)
|
||||
#endif /* UART_NUMOF */
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* PERIPH_CONF_COMMON_H */
|
||||
/** @} */
|
Loading…
Reference in New Issue
Block a user