1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-30 08:51:19 +01:00

Merge pull request #19784 from nandojve/avr8/implement_pm

AVR-8: Implement Power Management
This commit is contained in:
Marian Buschsieweke 2023-12-01 18:54:44 +00:00 committed by GitHub
commit ac409ebf29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
104 changed files with 371 additions and 157 deletions

View File

@ -1,5 +1,5 @@
# Copyright (c) 2020 HAW Hamburg
# Copyright (c) 2021 Gerson Fernando Budke
# Copyright (c) 2021-2023 Gerson Fernando Budke
#
# 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
@ -21,7 +21,9 @@ config BOARD_ATMEGA328P_XPLAINED_MINI
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
# Various other features (if any)
select HAVE_SAUL_GPIO
select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG
select MODULE_ATMEGA_PCINT0 if TEST_KCONFIG
source "$(RIOTBOARD)/common/atmega/Kconfig"

View File

@ -1 +1,6 @@
USEMODULE += boards_common_atmega
USEMODULE += atmega_pcint0
ifneq (,$(filter saul_default,$(USEMODULE)))
USEMODULE += saul_gpio
endif

View File

@ -2,7 +2,7 @@
* Copyright (C) 2014 Freie Universität Berlin, Hinnerk van Bruinehsen
* 2016 Laurent Navet <laurent.navet@gmail.com>
* 2019 Otto-von-Guericke-Universität Magdeburg
* 2021 Gerson Fernando Budke
* 2021-2123 Gerson Fernando Budke
*
* 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
@ -55,6 +55,27 @@ extern "C" {
#define XTIMER_BACKOFF (40)
/** @} */
/**
* @name Macros for controlling the on-board LED
* @{
*/
#define LED0_PIN GPIO_PIN(PORT_B, 5)
#define LED0_MODE GPIO_OUT
#define LED0_ENABLE_PORT DDRB |= LED0_PIN
#define LED0_ON PORTB |= LED0_PIN
#define LED0_OFF PORTB &= ~LED0_PIN
#define LED0_TOGGLE PORTB ^= LED0_PIN
/** @} */
/**
* @name Button pin configuration
* @{
*/
#define BTN0_PIN GPIO_PIN(PORT_B, 7)
#define BTN0_MODE GPIO_IN_PU
#define BTN0_INT_FLANK GPIO_FALLING
/** @} */
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,53 @@
/*
* Copyright (C) 2023 Gerson Fernando Budke
*
* 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_atmega328p_xplained_mini
* @{
*
* @file
* @brief Configuration of SAUL mapped GPIO pins
*
* @author Gerson Fernando Budke <nandojve@gmail.com>
*/
#ifndef GPIO_PARAMS_H
#define GPIO_PARAMS_H
#include "board.h"
#include "saul/periph.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief GPIO configuration
*/
static const saul_gpio_params_t saul_gpio_params[] =
{
{
.name = "BTN0 (SW0)",
.pin = BTN0_PIN,
.mode = BTN0_MODE,
.flags = SAUL_GPIO_INVERTED,
},
{
.name = "LED0 (Yellow)",
.pin = LED0_PIN,
.mode = LED0_MODE,
.flags = (SAUL_GPIO_INIT_CLEAR),
},
};
#ifdef __cplusplus
}
#endif
#endif /* GPIO_PARAMS_H */
/** @} */

View File

@ -29,6 +29,17 @@ extern "C" {
#include "periph_cpu_common.h"
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @brief Available ports on the ATmega1281 family
*/

View File

@ -29,6 +29,17 @@
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @brief Define a CPU specific GPIO pin generator macro
*/

View File

@ -26,6 +26,16 @@
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @name Available ports on the ATmega128rfa1 MCU

View File

@ -27,6 +27,17 @@
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @brief Available ports on the ATmega2560 family
*/

View File

@ -27,6 +27,17 @@
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @name Available ports on the ATmega256rfr family
* @{

View File

@ -27,6 +27,17 @@
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @brief Define a CPU specific GPIO pin generator macro
*/

View File

@ -26,6 +26,17 @@
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @brief Available ports on the ATmega32u4 family
*/

View File

@ -29,6 +29,17 @@
extern "C" {
#endif
/**
* @name Power management configuration
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC /**< Sleep ADC low noise */
/** @} */
/**
* @brief Define a CPU specific GPIO pin generator macro
*/

View File

@ -32,7 +32,7 @@ extern "C" {
#endif
#ifndef THREAD_EXTRA_STACKSIZE_PRINTF
#define THREAD_EXTRA_STACKSIZE_PRINTF (128)
#define THREAD_EXTRA_STACKSIZE_PRINTF (132)
#endif
/**

View File

@ -25,6 +25,7 @@
#include "cpu.h"
#include "mutex.h"
#include "periph/adc.h"
#include "periph/pm.h"
#include "periph_conf.h"
#define ADC_MAX_CLK (200000U)
@ -33,6 +34,7 @@ static mutex_t lock = MUTEX_INIT;
static inline void _prep(void)
{
pm_block(3); /* Require clkADC */
mutex_lock(&lock);
/* Enable ADC */
ADCSRA |= (1 << ADEN);
@ -43,6 +45,7 @@ static inline void _done(void)
/* Disable ADC */
ADCSRA &= ~(1 << ADEN);
mutex_unlock(&lock);
pm_unblock(3);
}
int adc_init(adc_t line)

View File

@ -31,6 +31,7 @@
#include "cpu.h"
#include "mutex.h"
#include "periph/i2c.h"
#include "periph/pm.h"
#include "periph_conf.h"
#define ENABLE_DEBUG 0
@ -226,6 +227,7 @@ void i2c_acquire(i2c_t dev)
{
assert(dev < I2C_NUMOF);
pm_block(4); /* Require clkIO */
mutex_lock(&locks[dev]);
}
@ -234,6 +236,7 @@ void i2c_release(i2c_t dev)
assert(dev < I2C_NUMOF);
mutex_unlock(&locks[dev]);
pm_unblock(4);
}
static void i2c_poweron(i2c_t dev)

View File

@ -31,6 +31,7 @@
#include "cpu.h"
#include "mutex.h"
#include "periph/spi.h"
#include "periph/pm.h"
/**
* @brief Extract BR0, BR1 and SPI2X bits from speed value
@ -89,6 +90,7 @@ void spi_acquire(spi_t bus, spi_cs_t cs, spi_mode_t mode, spi_clk_t clk)
assert(bus == SPI_DEV(0));
/* lock the bus and power on the SPI peripheral */
pm_block(4); /* Require clkIO */
mutex_lock(&lock);
#ifdef PRSPI
power_spi_enable();
@ -112,6 +114,7 @@ void spi_release(spi_t bus)
power_spi_disable();
#endif
mutex_unlock(&lock);
pm_unblock(4);
}
void spi_transfer_bytes(spi_t bus, spi_cs_t cs, bool cont,

View File

@ -19,7 +19,6 @@ config CPU_COMMON_ATXMEGA
select HAS_PERIPH_GPIO
select HAS_PERIPH_GPIO_IRQ
select HAS_PERIPH_NVM
select HAS_PERIPH_PM
select HAS_PERIPH_TIMER
select HAS_PERIPH_TIMER_PERIODIC

View File

@ -1,9 +1,6 @@
# peripheral drivers are linked into the final binary
USEMODULE += atxmega_periph
# All ATxmega based CPUs provide PM
USEMODULE += pm_layered
ifneq (,$(filter periph_cpuid,$(USEMODULE)))
USEMODULE += periph_nvm
endif

View File

@ -11,11 +11,4 @@ FEATURES_PROVIDED += cpu_core_atxmega
FEATURES_PROVIDED += periph_cpuid
FEATURES_PROVIDED += periph_gpio periph_gpio_irq
FEATURES_PROVIDED += periph_nvm
FEATURES_PROVIDED += periph_pm
FEATURES_PROVIDED += periph_timer periph_timer_periodic
# Add atxmega configurations. This configuration enables modules that are only available when
# using Kconfig module modelling
ifeq (1, $(TEST_KCONFIG))
KCONFIG_CPU_CONFIG += $(RIOTCPU)/atxmega/atxmega.config
endif

View File

@ -1,2 +0,0 @@
# All ATxmega based CPUs provide PM
CONFIG_MODULE_PM_LAYERED=y

View File

@ -96,6 +96,10 @@ enum {
* @{
*/
#define PM_NUM_MODES (5)
#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN /**< Power Down */
#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE /**< Power Save */
#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY /**< Standby */
#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_EXT_STANDBY /**< Extended Standby*/
/** @} */
/**

View File

@ -105,7 +105,7 @@ void i2c_acquire(i2c_t i2c)
{
assert((unsigned)i2c < I2C_NUMOF);
DEBUG("acquire\n");
pm_block(3);
pm_block(4); /* Require clkPer */
mutex_lock(&i2c_ctx[i2c].locks);
pm_periph_enable(i2c_config[i2c].pwr);
@ -122,7 +122,7 @@ void i2c_release(i2c_t i2c)
dev(i2c)->MASTER.CTRLA = 0;
pm_periph_disable(i2c_config[i2c].pwr);
mutex_unlock(&i2c_ctx[i2c].locks);
pm_unblock(3);
pm_unblock(4);
DEBUG("release\n");
}

View File

@ -19,8 +19,6 @@
* @}
*/
#include <avr/sleep.h>
#include "cpu_pm.h"
#include "irq.h"
#include "periph/pm.h"
@ -73,44 +71,6 @@ void pm_reboot(void)
while (1) {}
}
/*
* DEBUG may affect this routine.
*
* --- Do NOT add DEBUG macro here ---
*
*/
void pm_set(unsigned mode)
{
unsigned irq_state = irq_disable();
if (avr8_is_uart_tx_pending() && mode < 4) {
irq_restore(irq_state);
return;
}
switch (mode) {
case 0:
set_sleep_mode(SLEEP_SMODE_PDOWN_gc);
break;
case 1:
set_sleep_mode(SLEEP_SMODE_PSAVE_gc);
break;
case 2:
set_sleep_mode(SLEEP_SMODE_STDBY_gc);
break;
case 3:
set_sleep_mode(SLEEP_SMODE_ESTDBY_gc);
break;
default:
set_sleep_mode(SLEEP_SMODE_IDLE_gc);
}
sleep_enable();
sei();
sleep_cpu();
sleep_disable();
irq_restore(irq_state);
}
void pm_periph_enable(pwr_reduction_t pwr)
{
uint8_t mask = _device_mask(pwr);

View File

@ -94,7 +94,7 @@ void spi_acquire(spi_t bus, spi_cs_t cs, spi_mode_t mode, spi_clk_t clk)
DEBUG("acquire\n");
pm_block(3);
pm_block(4); /* Require clkPer */
mutex_lock(&locks[bus]);
pm_periph_enable(spi_config[bus].pwr);
@ -113,7 +113,7 @@ void spi_release(spi_t bus)
dev(bus)->CTRL &= ~SPI_ENABLE_bm;
pm_periph_disable(spi_config[bus].pwr);
mutex_unlock(&locks[bus]);
pm_unblock(3);
pm_unblock(4);
DEBUG("release\n");
}

View File

@ -10,7 +10,10 @@ config CPU_ARCH_AVR8
bool
select HAS_ARCH_8BIT
select HAS_ARCH_AVR8
select HAS_PERIPH_PM
select MODULE_AVR8_COMMON_PERIPH if TEST_KCONFIG
select MODULE_PM_LAYERED if TEST_KCONFIG
select MODULE_MALLOC_THREAD_SAFE if TEST_KCONFIG
select MODULE_TINY_STRERROR_AS_STRERROR if TEST_KCONFIG
# static C++ constructors need guards for thread safe initialization
@ -40,6 +43,13 @@ config MODULE_AVR8_COMMON
help
AVR-8 common code.
config MODULE_AVR8_COMMON_PERIPH
bool
depends on TEST_KCONFIG
default y
help
Common peripheral drivers used across different AVR-8 MCU families.
# the atmel port uses stdio_uart by default
choice STDIO_IMPLEMENTATION
default MODULE_STDIO_UART

View File

@ -2,6 +2,6 @@
MODULE = avr8_common
# add a list of subdirectories, that should also be build
DIRS = avr_libc_extra
DIRS = periph avr_libc_extra
include $(RIOTBASE)/Makefile.base

View File

@ -2,7 +2,10 @@
USEMODULE += avr_libc_extra
# tell the build system to build the avr8 common files
USEMODULE += avr8_common
USEMODULE += avr8_common avr8_common_periph
# All avr8 CPUs provide PM
USEMODULE += pm_layered
# The AVR-libc provides no thread safe malloc implementation and has no hooks
# to inject. Use malloc_thread_safe to link calls to malloc to safe wrappers

View File

@ -1,3 +1,4 @@
FEATURES_PROVIDED += arch_8bit
FEATURES_PROVIDED += arch_avr8
FEATURES_PROVIDED += cpp
FEATURES_PROVIDED += periph_pm

View File

@ -0,0 +1,2 @@
# All AVR-8 based CPUs provide PM
CONFIG_MODULE_PM_LAYERED=y

View File

@ -48,6 +48,15 @@ extern "C"
{
#endif
/**
* @name BOD monitoring when CPU is on sleep
* @{
*/
#ifndef AVR8_PM_DISABLE_BOD_ON_SLEEP
#define AVR8_PM_DISABLE_BOD_ON_SLEEP 0 /**< BOD is active on sleep */
#endif
/** @} */
/**
* @name Use shared I2C functions
* @{

View File

@ -0,0 +1,7 @@
config MODULE_AVR8_COMMON_PERIPH
bool
depends on TEST_KCONFIG
depends on CPU_COMMON_ATXMEGA
default y
help
AVR8 common peripheral drivers.

View File

@ -0,0 +1,3 @@
MODULE = avr8_common_periph
include $(RIOTMAKE)/periph.mk

View File

@ -0,0 +1,83 @@
/*
* Copyright (C) 2022-2023 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 cpu_avr8_common
* @ingroup cpu_avr8_common_periph
* @{
*
* @file
* @brief Low-level PM driver implementation
*
* @author Gerson Fernando Budke <nandojve@gmail.com>
*
* @}
*/
#include <avr/sleep.h>
#include "irq.h"
#include "periph_cpu.h"
#define ENABLE_DEBUG 0
#include "debug.h"
/**
* @note: The pm_set assumes that interrupts are disable and there is no reason
* to save SREG here.
*
* @note: DEBUG affects this routine.
*/
void pm_set(unsigned mode)
{
DEBUG("pm_set(%d)\n", mode);
if (avr8_is_uart_tx_pending()) {
mode = PM_NUM_MODES - 1;
}
switch (mode) {
case 0:
set_sleep_mode(AVR8_PM_SLEEP_MODE_0);
break;
#if PM_NUM_MODES > 1
case 1:
set_sleep_mode(AVR8_PM_SLEEP_MODE_1);
break;
#endif
#if PM_NUM_MODES > 2
case 2:
set_sleep_mode(AVR8_PM_SLEEP_MODE_2);
break;
#endif
#if PM_NUM_MODES > 3
case 3:
set_sleep_mode(AVR8_PM_SLEEP_MODE_3);
break;
#endif
default:
set_sleep_mode(SLEEP_MODE_IDLE);
break;
}
DEBUG("mode selected: %d\n", mode);
/*
* Critical Section to correct enable SLEEP instruction on RIOT-OS
*/
#if (AVR8_PM_DISABLE_BOD_ON_SLEEP == 1)
#ifdef sleep_bod_disable
sleep_bod_disable();
#endif
#endif
sleep_enable();
sei();
sleep_cpu();
cli();
sleep_disable();
}

View File

@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
@ -17,7 +16,6 @@ BOARD_INSUFFICIENT_MEMORY := \
hifive1b \
i-nucleo-lrwan1 \
im880b \
mega-xplained \
microbit \
microduino-corerf \
msb-430 \

View File

@ -32,5 +32,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -10,12 +10,10 @@ BOARD_INSUFFICIENT_MEMORY := \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
chronos \
derfmega128 \
hifive1 \
hifive1b \
i-nucleo-lrwan1 \
im880b \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -39,5 +37,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -9,9 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
i-nucleo-lrwan1 \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -37,5 +35,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -9,10 +9,8 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
i-nucleo-lrwan1 \
m1284p \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -36,5 +34,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -11,9 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
derfmega128 \
i-nucleo-lrwan1 \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -41,5 +39,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -13,6 +13,7 @@ BOARD_INSUFFICIENT_MEMORY := \
bluepill-stm32f103c8 \
derfmega128 \
i-nucleo-lrwan1 \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \

View File

@ -9,11 +9,9 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
i-nucleo-lrwan1 \
ict_panhead \
m1284p \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -36,5 +34,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -3,9 +3,9 @@ BOARD_INSUFFICIENT_MEMORY := \
b-l072z-lrwan1 \
blackpill-stm32f103c8 \
blackpill-stm32f103cb \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
bluepill-stm32f103cb \
bluepill-stm32f030c8 \
calliope-mini \
cc1350-launchpad \
cc2650-launchpad \

View File

@ -1,9 +1,9 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
blackpill-stm32f103cb \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
bluepill-stm32f103cb \
bluepill-stm32f030c8 \
calliope-mini \
cc1350-launchpad \
cc2650-launchpad \

View File

@ -29,5 +29,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -1,5 +1,5 @@
BOARD_INSUFFICIENT_MEMORY := \
nrf52dk \
nrf52840dk \
nrf52840dongle \
nrf52840dk \
nrf52840dongle \
nrf52dk \
#

View File

@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \

View File

@ -10,10 +10,8 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
i-nucleo-lrwan1 \
im880b \
microduino-corerf \
msb-430 \
msb-430h \
nrf51dk \
@ -43,5 +41,4 @@ BOARD_INSUFFICIENT_MEMORY := \
waspmote-pro \
yunjia-nrf51822 \
z1 \
zigduino \
#

View File

@ -1,11 +1,11 @@
BOARD_INSUFFICIENT_MEMORY := \
airfy-beacon \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
calliope-mini \
im880b \
i-nucleo-lrwan1 \
im880b \
microbit \
nrf51dongle \
nrf6310 \

View File

@ -9,9 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
i-nucleo-lrwan1 \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -35,5 +33,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -1,7 +1,7 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
i-nucleo-lrwan1 \
nucleo-f030r8 \
nucleo-f031k6 \

View File

@ -10,5 +10,4 @@ BOARD_INSUFFICIENT_MEMORY := \
slstk3400a \
stk3200 \
stm32g0316-disco \
zigduino \
#

View File

@ -10,5 +10,4 @@ BOARD_INSUFFICIENT_MEMORY := \
slstk3400a \
stk3200 \
stm32g0316-disco \
zigduino \
#

View File

@ -1,5 +1,6 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-leonardo \
arduino-nano \
arduino-uno \
atmega328p \

View File

@ -1,5 +1,4 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
stm32f030f4-demo \
zigduino \
#

View File

@ -1,5 +1,6 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-leonardo \
arduino-nano \
arduino-uno \
atmega328p \

View File

@ -1,8 +1,3 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-nano \
arduino-uno \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
#

View File

@ -1,3 +1,8 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-nano \
arduino-uno \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
#

View File

@ -26,5 +26,4 @@ BOARD_INSUFFICIENT_MEMORY := \
stm32l0538-disco \
telosb \
waspmote-pro \
zigduino \
#

View File

@ -1,4 +1,5 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega328p \
atmega32u4 \
atmega8 \
#

View File

@ -1,4 +1,9 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-nano \
arduino-uno \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
nucleo-f031k6 \
nucleo-l011k4 \

View File

@ -1,5 +1,6 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-leonardo \
arduino-nano \
arduino-uno \
atmega328p \

View File

@ -1,5 +1,5 @@
BOARD_INSUFFICIENT_MEMORY := \
nucleo-l011k4 \
stm32f030f4-demo \
samd10-xmini \
stm32f030f4-demo \
#

View File

@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \

View File

@ -9,12 +9,10 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
hifive1 \
hifive1b \
i-nucleo-lrwan1 \
im880b \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -41,5 +39,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
@ -19,7 +18,6 @@ BOARD_INSUFFICIENT_MEMORY := \
i-nucleo-lrwan1 \
im880b \
lsn50 \
mega-xplained \
microbit \
microduino-corerf \
msb-430 \

View File

@ -39,5 +39,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -40,5 +40,4 @@ BOARD_INSUFFICIENT_MEMORY := \
thingy52 \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -32,5 +32,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -1,7 +1,6 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-leonardo \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega328p \
@ -27,6 +26,5 @@ BOARD_INSUFFICIENT_MEMORY := \
stm32g0316-disco \
stm32l0538-disco \
telosb \
waspmote-pro \
z1 \
#

View File

@ -31,5 +31,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -9,9 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
i-nucleo-lrwan1 \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -39,5 +37,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -4,19 +4,15 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
atxmega-a3bu-xplained \
bluepill-stm32f030c8 \
derfmega128 \
hifive1 \
hifive1b \
i-nucleo-lrwan1 \
im880b \
mega-xplained \
microduino-corerf \
msb-430 \
msb-430h \
nucleo-f030r8 \
@ -44,5 +40,4 @@ BOARD_INSUFFICIENT_MEMORY := \
thingy52 \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -34,5 +34,4 @@ BOARD_INSUFFICIENT_MEMORY := \
thingy52 \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
@ -16,7 +15,6 @@ BOARD_INSUFFICIENT_MEMORY := \
i-nucleo-lrwan1 \
im880b \
m1284p \
mega-xplained \
microduino-corerf \
msb-430 \
msb-430h \

View File

@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-mega2560 \
arduino-nano \
arduino-uno \
atmega1284p \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
@ -19,7 +18,6 @@ BOARD_INSUFFICIENT_MEMORY := \
hifive1b \
i-nucleo-lrwan1 \
im880b \
mega-xplained \
microbit \
microduino-corerf \
msb-430 \

View File

@ -31,5 +31,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -34,5 +34,4 @@ BOARD_INSUFFICIENT_MEMORY := \
telosb \
waspmote-pro \
z1 \
zigduino \
#

View File

@ -1,3 +1,8 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-nano \
arduino-uno \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
#

View File

@ -1,5 +1,6 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-leonardo \
arduino-nano \
arduino-uno \
atmega328p \

View File

@ -1,3 +1,4 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
stm32f030f4-demo \
#

View File

@ -1,4 +1,9 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-nano \
arduino-uno \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
nucleo-l011k4 \
#

View File

@ -0,0 +1,3 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
#

View File

@ -1,3 +1,3 @@
BOARD_INSUFFICIENT_MEMORY := \
nucleo-l011k4 \
#
nucleo-l011k4 \
#

View File

@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-nano \
arduino-uno \
atmega1284p \
atmega256rfr2-xpro \
atmega328p \
atmega328p-xplained-mini \
atmega8 \

View File

@ -3,9 +3,9 @@ BOARD_INSUFFICIENT_MEMORY := \
b-l072z-lrwan1 \
blackpill-stm32f103c8 \
blackpill-stm32f103cb \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
bluepill-stm32f103cb \
bluepill-stm32f030c8 \
calliope-mini \
cc1350-launchpad \
cc2650-launchpad \

View File

@ -28,5 +28,4 @@ BOARD_INSUFFICIENT_MEMORY := \
stm32f0discovery \
stm32g0316-disco \
stm32l0538-disco \
zigduino \
#

View File

@ -1,5 +1,5 @@
BOARD_INSUFFICIENT_MEMORY := \
nucleo-l011k4 \
stm32f030f4-demo \
samd10-xmini \
stm32f030f4-demo \
#

View File

@ -1,5 +1,4 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega256rfr2-xpro \
msb-430 \
msb-430h \
nucleo-f031k6 \
@ -14,5 +13,4 @@ BOARD_INSUFFICIENT_MEMORY := \
stm32g0316-disco \
telosb \
z1 \
zigduino \
#

View File

@ -1,7 +1,7 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
i-nucleo-lrwan1 \
nucleo-f030r8 \
nucleo-f031k6 \

View File

@ -1,7 +1,7 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
i-nucleo-lrwan1 \
nucleo-f030r8 \
nucleo-f031k6 \

View File

@ -1,7 +1,7 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
i-nucleo-lrwan1 \
nucleo-f030r8 \
nucleo-f031k6 \

View File

@ -1,8 +1,8 @@
BOARD_INSUFFICIENT_MEMORY := \
airfy-beacon \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
hifive1 \
hifive1b \
i-nucleo-lrwan1 \

View File

@ -1,7 +1,7 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
bluepill-stm32f103c8 \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
i-nucleo-lrwan1 \
nucleo-f030r8 \
nucleo-f031k6 \

View File

@ -31,5 +31,4 @@ BOARD_INSUFFICIENT_MEMORY := \
wsn430-v1_3b \
wsn430-v1_4 \
z1 \
zigduino \
#

View File

@ -3,7 +3,6 @@ BOARD_INSUFFICIENT_MEMORY := \
arduino-leonardo \
arduino-nano \
arduino-uno \
atmega256rfr2-xpro \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
@ -13,5 +12,4 @@ BOARD_INSUFFICIENT_MEMORY := \
samd10-xmini \
stk3200 \
stm32f030f4-demo \
zigduino \
#

View File

@ -1,9 +1,9 @@
BOARD_INSUFFICIENT_MEMORY := \
blackpill-stm32f103c8 \
blackpill-stm32f103cb \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
bluepill-stm32f103cb \
bluepill-stm32f030c8 \
calliope-mini \
cc1350-launchpad \
cc2650-launchpad \

View File

@ -23,8 +23,8 @@ BOARD_INSUFFICIENT_MEMORY := \
nucleo-l053r8 \
saml10-xpro \
saml11-xpro \
stm32f0discovery \
stm32f030f4-demo \
stm32f0discovery \
stm32l0538-disco \
telosb \
yunjia-nrf51822 \

View File

@ -1,6 +1,6 @@
BOARD_INSUFFICIENT_MEMORY := \
nucleo-l011k4 \
samd10-xmini \
stm32f030f4-demo \
stk3200 \
stm32f030f4-demo \
#

View File

@ -1,5 +1,9 @@
BOARD_INSUFFICIENT_MEMORY := \
arduino-duemilanove \
arduino-nano \
arduino-uno \
atmega328p \
atmega328p-xplained-mini \
atmega8 \
nucleo-l011k4 \
#

View File

@ -1,3 +1,4 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
nucleo-l011k4 \
#

Some files were not shown because too many files have changed in this diff Show More