From 7bfdd738188a5fd9eedb0ce9fa9ad5263a039a78 Mon Sep 17 00:00:00 2001 From: Koen Zandberg Date: Sun, 31 Oct 2021 21:31:32 +0100 Subject: [PATCH 01/11] usbus: Add URB support This commit adds support for URBs (USB Request/Response Blocks). These allow for submitting multi-transfer sized buffers with USBUS handling the individual usbdev xmits. Multiple URBs can be queued at once for a single endpoint and USBUS will handle them in the order of submission. OUT endpoint URBs must always consist of a whole number of full-sized transfers (N x MaxEndpointSize). They will automatically finish after the endpoint received a transfer less than the endpoint size. IN endpoints can be arbitrary-sized and do not have to consist of a whole number of full-sized transmissions. They support a flag to indicate that the last transfer in the sequence must be less than a full sized transfer (USBUS_URB_FLAG_AUTO_ZLP) and this adds a zero length transfer at the end of the transmissions if the last transfer was equal to the maximum transfer size. URBs can be cancelled, but if the URB is already being processed it will be cancelled after the current transmission within the URB is finished. If it is still in the queue it will immediately be removed from the queue. --- makefiles/pseudomodules.inc.mk | 1 + sys/include/usb/usbus.h | 136 +++++++++++++++++++++++++++++++++ sys/usb/usbus/usbus.c | 127 +++++++++++++++++++++++++++++- 3 files changed, 260 insertions(+), 4 deletions(-) diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk index b7e89b0646..10729a5092 100644 --- a/makefiles/pseudomodules.inc.mk +++ b/makefiles/pseudomodules.inc.mk @@ -510,6 +510,7 @@ PSEUDOMODULES += suit_storage_% PSEUDOMODULES += sys_bus_% PSEUDOMODULES += tiny_strerror_as_strerror PSEUDOMODULES += tiny_strerror_minimal +PSEUDOMODULES += usbus_urb PSEUDOMODULES += vdd_lc_filter_% ## @defgroup pseudomodule_vfs_auto_format vfs_auto_format ## @brief Format mount points at startup unless they can be mounted diff --git a/sys/include/usb/usbus.h b/sys/include/usb/usbus.h index 51b2043221..a5d4d80ac9 100644 --- a/sys/include/usb/usbus.h +++ b/sys/include/usb/usbus.h @@ -133,6 +133,31 @@ extern "C" { #define USBUS_HANDLER_FLAG_TR_STALL (0x0020) /**< Report transfer stall complete */ /** @} */ +/** + * @name USBUS URB flags + * + * @{ + */ + +/** + * @brief End the URB with a zero length packet if the URB is a full number of + * USB transfers in length + */ +#define USBUS_URB_FLAG_AUTO_ZLP (0x0001) + +/** + * @brief URB needs a zero length packet and it is requested + * @internal + */ +#define USBUS_URB_FLAG_NEEDS_ZLP (0x1000) + +/** + * @brief URB must be cancelled after the next finished xmit + * @internal + */ +#define USBUS_URB_FLAG_CANCELLED (0x2000) +/** @} */ + /** * @brief USB handler events */ @@ -285,12 +310,26 @@ typedef struct usbus_endpoint { usbus_descr_gen_t *descr_gen; /**< Linked list of optional additional descriptor generators */ usbdev_ep_t *ep; /**< ptr to the matching usbdev endpoint */ +#ifdef MODULE_USBUS_URB + clist_node_t urb_list; /**< clist of urbs */ +#endif uint16_t maxpacketsize; /**< Max packet size of this endpoint */ uint8_t interval; /**< Poll interval for interrupt endpoints */ bool active; /**< If the endpoint should be activated after reset */ } usbus_endpoint_t; +/** + * @brief USBUS USB request/response block + */ +typedef struct usbus_urb { + clist_node_t list; /**< clist block in the queue */ + uint32_t flags; /**< Transfer flags */ + uint8_t *buf; /**< Pointer to the (aligned) buffer */ + size_t len; /**< Length of the data */ + size_t transferred; /**< amount transferred, only valid for OUT */ +} usbus_urb_t; + /** * @brief USBUS interface alternative setting * @@ -552,6 +591,65 @@ void usbus_init(usbus_t *usbus, usbdev_t *usbdev); void usbus_create(char *stack, int stacksize, char priority, const char *name, usbus_t *usbus); +/** + * @brief Initialize a new URB. + * + * Must be called before submitting an URB to an endpoint. + * + * @note When using this for OUT endpoints, the buffer size and the @p len + * argument must allow for a whole number of max length transfers. + * + * @note Requires the `usbus_urb` module. + * + * @param[in] urb URB to submit + * @param[in] buf Buffer to store or transmit the data from + * @param[in] len Length of @p buf in bytes + * @param[in] flags Flags to set for the URB such as @ref USBUS_URB_FLAG_AUTO_ZLP + */ +static inline void usbus_urb_init(usbus_urb_t *urb, + uint8_t *buf, + size_t len, + uint32_t flags) +{ + urb->buf = buf; + urb->len = len; + urb->flags = flags; + urb->transferred = 0; +} + +/** + * @brief Submit an URB to an endpoint. + * + * @note Requires the `usbus_urb` module. + * + * @param[in] usbus USBUS context + * @param[in] endpoint USBUS endpoint the URB is queued to + * @param[in] urb URB to submit + */ +void usbus_urb_submit(usbus_t *usbus, usbus_endpoint_t *endpoint, usbus_urb_t *urb); + +/** + * @brief Cancel and already queued URB. + * + * The URB will be cancelled after the next transmission if the URB is already + * partially completed. It is up to the handler code to gracefully handle the + * partially aborted transfer on the endpoint pipe. + * + * The callback will be called if the URB was already started and cancelled + * while (partially) transferred + * + * @note Requires the `usbus_urb` module. + * + * @param[in] usbus USBUS context + * @param[in] endpoint USBUS endpoint the URB is queued to + * @param[in] urb URB to cancel + * + * @returns 0 if the URB is partially completed + * 1 if the URB was not yet started + * -1 if the URB was not found in the endpoint queue + */ +int usbus_urb_cancel(usbus_t *usbus, usbus_endpoint_t *endpoint, usbus_urb_t *urb); + /** * @brief Enable an endpoint * @@ -614,6 +712,44 @@ static inline bool usbus_handler_isset_flag(usbus_handler_t *handler, return handler->flags & flag; } +/** + * @brief enable an URB flag + * + * @param[in] urb URB to enable the flag for + * @param[in] flag flag to enable + */ +static inline void usbus_urb_set_flag(usbus_urb_t *urb, + uint32_t flag) +{ + urb->flags |= flag; +} + +/** + * @brief disable an URB flag + * + * @param[in] urb URB to disable the flag for + * @param[in] flag flag to disable + */ +static inline void usbus_urb_remove_flag(usbus_urb_t *urb, + uint32_t flag) +{ + urb->flags &= ~flag; +} + +/** + * @brief check if an URB flag is set + * + * @param[in] urb URB to check for flag + * @param[in] flag flag to check + * + * @return true if the flag is set for this URB + */ +static inline bool usbus_urb_isset_flag(usbus_urb_t *urb, + uint32_t flag) +{ + return urb->flags & flag; +} + #ifdef __cplusplus } #endif diff --git a/sys/usb/usbus/usbus.c b/sys/usb/usbus/usbus.c index a58453aab2..6e2800f826 100644 --- a/sys/usb/usbus/usbus.c +++ b/sys/usb/usbus/usbus.c @@ -108,6 +108,12 @@ static usbus_handler_t *_ep_to_handler(usbus_t *usbus, usbdev_ep_t *ep) return NULL; } +static inline usbus_endpoint_t *_usbus_ep_from_usbdev(usbus_t *usbus, usbdev_ep_t* ep) +{ + return ep->dir == USB_EP_DIR_IN ? &usbus->ep_in[ep->num] + : &usbus->ep_out[ep->num]; +} + uint16_t usbus_add_interface(usbus_t *usbus, usbus_interface_t *iface) { /* While it is possible to us clist.h here, this results in less flash @@ -164,8 +170,7 @@ usbus_endpoint_t *usbus_add_endpoint(usbus_t *usbus, usbus_interface_t *iface, usbdev_ep_t *usbdev_ep = usbdev_new_ep(usbus->dev, type, dir, len); if (usbdev_ep) { - ep = dir == USB_EP_DIR_IN ? &usbus->ep_in[usbdev_ep->num] - : &usbus->ep_out[usbdev_ep->num]; + ep = _usbus_ep_from_usbdev(usbus, usbdev_ep); ep->maxpacketsize = len; ep->ep = usbdev_ep; if (iface) { @@ -217,6 +222,121 @@ static void _usbus_init_handlers(usbus_t *usbus) } } +#ifdef MODULE_USBUS_URB +static void _usbus_transfer_urb_submit(usbus_endpoint_t *usbus_ep, + usbus_urb_t *urb) +{ + /* Maximum between the urb length and the endpoint maximum size */ + size_t len = urb->len > usbus_ep->maxpacketsize ? + usbus_ep->maxpacketsize : + urb->len; + usbdev_ep_xmit(usbus_ep->ep, urb->buf, len); + urb->buf += len; + urb->len -= len; +} + +void usbus_urb_submit(usbus_t *usbus, usbus_endpoint_t *endpoint, usbus_urb_t *urb) +{ + (void)usbus; + assert(!(clist_find(&endpoint->urb_list, &urb->list))); + if (endpoint->ep->dir == USB_EP_DIR_IN && + ((urb->len % endpoint->maxpacketsize) == 0) && + usbus_urb_isset_flag(urb, USBUS_URB_FLAG_AUTO_ZLP)) { + /* If it is an IN endpoint, the urb length is a whole number of + * transfers and the ZLP is requested, then set flag that it needs the + * ZLP + */ + urb->flags |= USBUS_URB_FLAG_NEEDS_ZLP; + } + clist_rpush(&endpoint->urb_list, &urb->list); + /* Initiate transfer immediately if the list is empty */ + if (clist_exactly_one(&endpoint->urb_list)) { + _usbus_transfer_urb_submit(endpoint, urb); + } +} + +int usbus_urb_cancel(usbus_t *usbus, usbus_endpoint_t *endpoint, usbus_urb_t *urb) +{ + (void)usbus; + usbus_urb_t *active_urb = (usbus_urb_t*)clist_lpeek(&endpoint->urb_list); + if (active_urb == urb) { + usbus_urb_set_flag(active_urb, USBUS_URB_FLAG_CANCELLED); + usbus_urb_remove_flag(active_urb, USBUS_URB_FLAG_NEEDS_ZLP); + return 0; + } + if (clist_remove(&endpoint->urb_list, &urb->list)) { + return 1; + } + return -1; /* URB not found */ +} + +static bool _urb_transfer_complete(usbus_t *usbus, usbdev_ep_t *ep, + usbus_handler_t *handler) +{ + usbus_endpoint_t *usbus_ep = _usbus_ep_from_usbdev(usbus, ep); + if (clist_is_empty(&usbus_ep->urb_list)) { + return false; + } + + /* Ongoing transfer */ + usbus_urb_t *active_urb = (usbus_urb_t*)clist_lpeek(&usbus_ep->urb_list); + + size_t len = usbus_ep->maxpacketsize; + if (ep->dir == USB_EP_DIR_OUT) { + usbdev_ep_get(ep, USBOPT_EP_AVAILABLE, &len, sizeof(size_t)); + active_urb->transferred += len; + } + + if ((active_urb->len == 0) || (len < usbus_ep->maxpacketsize) || + (usbus_urb_isset_flag(active_urb, USBUS_URB_FLAG_CANCELLED))) { + /* Only set for IN endpoints */ + if (usbus_urb_isset_flag(active_urb, USBUS_URB_FLAG_NEEDS_ZLP)) { + usbus_urb_remove_flag(active_urb, USBUS_URB_FLAG_NEEDS_ZLP); + _usbus_transfer_urb_submit(usbus_ep, active_urb); + } + else { + /* transfer of URB complete */ + clist_lpop(&usbus_ep->urb_list); + + /* Schedule next URB first, then notify the handler */ + usbus_urb_t *next_urb = (usbus_urb_t*)clist_lpeek(&usbus_ep->urb_list); + if (next_urb) { + _usbus_transfer_urb_submit(usbus_ep, next_urb); + } + + DEBUG("Done with the transfer, available: %u, len: %u\n", + (unsigned)active_urb->transferred, (unsigned)active_urb->len); + handler->driver->transfer_handler(usbus, handler, ep, + USBUS_EVENT_TRANSFER_COMPLETE); + } + } + else { + _usbus_transfer_urb_submit(usbus_ep, active_urb); + } + + return true; +} +#else +static bool _urb_transfer_complete(usbus_t *usbus, usbdev_ep_t *ep, + usbus_handler_t *handler) +{ + (void)usbus; + (void)ep; + (void)handler; + return false; +} +#endif /* MODULE_USBUS_URB */ + +static void _usbus_transfer_complete(usbus_t *usbus, usbdev_ep_t *ep, usbus_handler_t *handler) +{ + if (_urb_transfer_complete(usbus, ep, handler)) { + return; + } + + /* Raw usbdev transfers by the handler */ + handler->driver->transfer_handler(usbus, handler, ep, USBUS_EVENT_TRANSFER_COMPLETE); +} + static void *_usbus_thread(void *args) { usbus_t *usbus = (usbus_t *)args; @@ -361,8 +481,7 @@ static void _event_ep_cb(usbdev_ep_t *ep, usbdev_event_t event) if (handler) { switch (event) { case USBDEV_EVENT_TR_COMPLETE: - handler->driver->transfer_handler(usbus, handler, ep, - USBUS_EVENT_TRANSFER_COMPLETE); + _usbus_transfer_complete(usbus, ep, handler); break; case USBDEV_EVENT_TR_FAIL: if (usbus_handler_isset_flag(handler, From ba88608749285d597ff9229a3b638e792f962705 Mon Sep 17 00:00:00 2001 From: Koen Zandberg Date: Sun, 31 Oct 2021 21:40:09 +0100 Subject: [PATCH 02/11] usbus/cdc_ecm: Make use of URBs for inbound frames --- sys/Makefile.dep | 1 + sys/include/usb/usbus/cdc/ecm.h | 13 +++++++++-- sys/usb/usbus/cdc/ecm/cdc_ecm.c | 32 +++++++++++--------------- sys/usb/usbus/cdc/ecm/cdc_ecm_netdev.c | 4 ++-- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/sys/Makefile.dep b/sys/Makefile.dep index 0928893a5c..1a781b7eba 100644 --- a/sys/Makefile.dep +++ b/sys/Makefile.dep @@ -831,6 +831,7 @@ ifneq (,$(filter usbus_cdc_ecm,$(USEMODULE))) USEMODULE += iolist USEMODULE += fmt USEMODULE += usbus + USEMODULE += usbus_urb USEMODULE += netdev_eth USEMODULE += luid endif diff --git a/sys/include/usb/usbus/cdc/ecm.h b/sys/include/usb/usbus/cdc/ecm.h index f117a32271..7ceb929397 100644 --- a/sys/include/usb/usbus/cdc/ecm.h +++ b/sys/include/usb/usbus/cdc/ecm.h @@ -29,6 +29,7 @@ #include "usb/descriptor.h" #include "usb/usbus.h" #include "usb/usbus/control.h" +#include "macros/math.h" #include "net/netdev.h" #include "mutex.h" @@ -77,6 +78,11 @@ extern "C" { */ #define USBUS_CDCECM_EP_DATA_SIZE 64 +/** + * @brief Full ethernet frame rounded up to a whole number of transfers + */ +#define USBUS_ETHERNET_FRAME_BUF MATH_ALIGN(ETHERNET_FRAME_LEN, USBUS_CDCECM_EP_DATA_SIZE) + /** * @brief notification state, used to track which information must be send to * the host @@ -108,14 +114,13 @@ typedef struct usbus_cdcecm_device { usbus_t *usbus; /**< Ptr to the USBUS context */ mutex_t out_lock; /**< mutex used for locking netif/USBUS send */ size_t tx_len; /**< Length of the current tx frame */ - size_t len; /**< Length of the current rx frame */ usbus_cdcecm_notif_t notif; /**< Startup message notification tracker */ unsigned active_iface; /**< Current active data interface */ /** * @brief Buffer for received frames from the host */ - usbdev_ep_buf_t data_out[ETHERNET_FRAME_LEN]; + usbdev_ep_buf_t data_out[USBUS_ETHERNET_FRAME_BUF]; /** * @brief Host in device out data buffer @@ -126,6 +131,10 @@ typedef struct usbus_cdcecm_device { * @brief Host out device in control buffer */ usbdev_ep_buf_t control_in[USBUS_CDCECM_EP_CTRL_SIZE]; + /** + * @brief Host out device in reception URB + */ + usbus_urb_t out_urb; } usbus_cdcecm_device_t; /** diff --git a/sys/usb/usbus/cdc/ecm/cdc_ecm.c b/sys/usb/usbus/cdc/ecm/cdc_ecm.c index d9504ba27a..e9374add80 100644 --- a/sys/usb/usbus/cdc/ecm/cdc_ecm.c +++ b/sys/usb/usbus/cdc/ecm/cdc_ecm.c @@ -162,6 +162,14 @@ static void _fill_ethernet(usbus_cdcecm_device_t *cdcecm) } +void _start_urb(usbus_cdcecm_device_t *cdcecm) +{ + usbus_urb_init(&cdcecm->out_urb, + cdcecm->data_out, + USBUS_ETHERNET_FRAME_BUF, 0); + usbus_urb_submit(cdcecm->usbus, cdcecm->ep_out, &cdcecm->out_urb); +} + void usbus_cdcecm_init(usbus_t *usbus, usbus_cdcecm_device_t *handler) { assert(usbus); @@ -251,9 +259,9 @@ static int _control_handler(usbus_t *usbus, usbus_handler_t *handler, setup->value); cdcecm->active_iface = (uint8_t)setup->value; if (cdcecm->active_iface == 1) { - usbdev_ep_xmit(cdcecm->ep_out->ep, cdcecm->data_out, - USBUS_CDCECM_EP_DATA_SIZE); _notify_link_up(cdcecm); + /* Start URB */ + _start_urb(cdcecm); } break; @@ -298,8 +306,8 @@ static void _handle_rx_flush_ev(event_t *ev) { usbus_cdcecm_device_t *cdcecm = container_of(ev, usbus_cdcecm_device_t, rx_flush); - cdcecm->len = 0; /* Flush packet */ - usbdev_ep_xmit(cdcecm->ep_out->ep, cdcecm->data_out, USBUS_CDCECM_EP_DATA_SIZE); + /* Start URB */ + _start_urb(cdcecm); } static void _transfer_handler(usbus_t *usbus, usbus_handler_t *handler, @@ -310,20 +318,7 @@ static void _transfer_handler(usbus_t *usbus, usbus_handler_t *handler, usbus_cdcecm_device_t *cdcecm = (usbus_cdcecm_device_t *)handler; if (ep == cdcecm->ep_out->ep) { /* Retrieve incoming data */ - if (cdcecm->notif == USBUS_CDCECM_NOTIF_NONE) { - _notify_link_up(cdcecm); - } - size_t len = 0; - usbdev_ep_get(ep, USBOPT_EP_AVAILABLE, &len, sizeof(size_t)); - cdcecm->len += len; - if (len == USBUS_CDCECM_EP_DATA_SIZE) { - /* ready next chunk */ - usbdev_ep_xmit(ep, cdcecm->data_out + cdcecm->len, - USBUS_CDCECM_EP_DATA_SIZE); - } - else { - netdev_trigger_event_isr(&cdcecm->netdev); - } + netdev_trigger_event_isr(&cdcecm->netdev); } else if (ep == cdcecm->ep_in->ep) { _handle_in_complete(usbus, handler); @@ -341,7 +336,6 @@ static void _handle_reset(usbus_t *usbus, usbus_handler_t *handler) DEBUG("CDC ECM: Reset\n"); _handle_in_complete(usbus, handler); cdcecm->notif = USBUS_CDCECM_NOTIF_NONE; - cdcecm->len = 0; /* Flush received data */ cdcecm->active_iface = 0; mutex_unlock(&cdcecm->out_lock); } diff --git a/sys/usb/usbus/cdc/ecm/cdc_ecm_netdev.c b/sys/usb/usbus/cdc/ecm/cdc_ecm_netdev.c index 906ab9f2d0..5cdfdc2c40 100644 --- a/sys/usb/usbus/cdc/ecm/cdc_ecm_netdev.c +++ b/sys/usb/usbus/cdc/ecm/cdc_ecm_netdev.c @@ -132,7 +132,7 @@ static int _recv(netdev_t *netdev, void *buf, size_t max_len, void *info) (void)info; usbus_cdcecm_device_t *cdcecm = _netdev_to_cdcecm(netdev); - size_t pktlen = cdcecm->len; + size_t pktlen = cdcecm->out_urb.transferred; if (max_len == 0 && buf == NULL) { return pktlen; @@ -198,7 +198,7 @@ static void _isr(netdev_t *dev) { usbus_cdcecm_device_t *cdcecm = _netdev_to_cdcecm(dev); - if (cdcecm->len) { + if (cdcecm->out_urb.transferred) { cdcecm->netdev.event_callback(&cdcecm->netdev, NETDEV_EVENT_RX_COMPLETE); } From 7e8a0ae2d4f51c6860e10a700b54dca419180b2c Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Mon, 30 May 2022 18:22:02 +0200 Subject: [PATCH 03/11] build system: use -std=gnu11 for avr8 This allows using the __flash qualifier to store data into flash. --- makefiles/arch/avr8.inc.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/makefiles/arch/avr8.inc.mk b/makefiles/arch/avr8.inc.mk index ef55b40af3..d316264803 100644 --- a/makefiles/arch/avr8.inc.mk +++ b/makefiles/arch/avr8.inc.mk @@ -14,6 +14,9 @@ CFLAGS_LINK = -ffunction-sections -fdata-sections -fno-builtin -fshort-enums CFLAGS_DBG ?= -ggdb -g3 CFLAGS_OPT ?= -Os +# Use of __flash requires gnu11 instead of c11 +CFLAGS += -std=gnu11 + CFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_DBG) $(CFLAGS_OPT) ASFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) From e5d0f83696b47e222898b6bcb537c940c22caaeb Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Mon, 30 May 2022 18:23:16 +0200 Subject: [PATCH 04/11] cpu/atmega_common: store periph_timer prescalers in flash --- cpu/atmega_common/periph/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpu/atmega_common/periph/timer.c b/cpu/atmega_common/periph/timer.c index 81b68893ab..6fc9350e35 100644 --- a/cpu/atmega_common/periph/timer.c +++ b/cpu/atmega_common/periph/timer.c @@ -42,7 +42,7 @@ /** * @brief Possible prescaler values, encoded as 2 ^ val */ -static const uint8_t prescalers[] = { 0, 3, 6, 8, 10 }; +static const __flash uint8_t prescalers[] = { 0, 3, 6, 8, 10 }; /** * @brief Timer state context From 4e3c0777fcc08dd969d3aaf4d4e3ecd925dec8c8 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 31 May 2022 20:51:08 +0200 Subject: [PATCH 05/11] sys/flash_utils: add helpers for placing variables in flash This adds a layer of convenience abstraction over classical Harvard architectures (like most AVRs) that do not map the flash memory into the data address space and modern Harvard architectures or von-Neumann architectures that do so. The motivation is to safe a lot of RAM for AVR by storing constant strings into flash. --- cpu/atmega_common/include/cpu_conf.h | 4 + cpu/avr8_common/include/flash_utils_arch.h | 60 +++++ sys/include/flash_utils.h | 255 +++++++++++++++++++++ 3 files changed, 319 insertions(+) create mode 100644 cpu/avr8_common/include/flash_utils_arch.h create mode 100644 sys/include/flash_utils.h diff --git a/cpu/atmega_common/include/cpu_conf.h b/cpu/atmega_common/include/cpu_conf.h index 44031b54b8..639c6ab751 100644 --- a/cpu/atmega_common/include/cpu_conf.h +++ b/cpu/atmega_common/include/cpu_conf.h @@ -77,6 +77,10 @@ extern "C" { */ #define IRQ_API_INLINED (1) +#ifndef DOXYGEN +#define HAS_FLASH_UTILS_ARCH 1 +#endif + #ifdef __cplusplus } #endif diff --git a/cpu/avr8_common/include/flash_utils_arch.h b/cpu/avr8_common/include/flash_utils_arch.h new file mode 100644 index 0000000000..4992d29a1a --- /dev/null +++ b/cpu/avr8_common/include/flash_utils_arch.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2022 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 cpu_avr8_common + * @{ + * + * @file + * @brief Implementation of flash_utils + * + * @author Marian Buschsieweke + * + */ + +#ifndef FLASH_UTILS_ARCH_H +#define FLASH_UTILS_ARCH_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* this is documented in sys/include/flash_utils.h - let's not confuse + * Doxygen */ +#ifndef DOXYGEN + +#define FLASH_ATTR __flash +#define PRIsflash "S" +#define TO_FLASH(x) __extension__({static FLASH_ATTR const char __c[] = (x); &__c[0];}) +#define flash_strcmp strcmp_P +#define flash_strncmp strncmp_P +#define flash_strlen strlen_P +#define flash_strcpy strcpy_P +#define flash_strncpy strncpy_P +#define flash_printf printf_P +/* avrlibc seemingly forgot to provide fprintf(), but vfprintf() is there */ +#define flash_vprintf(fmt, arglist) vfprintf_P(stdout, fmt, arglist) +#define flash_fprintf fprintf_P +#define flash_vfprintf vfprintf_P +#define flash_snprintf snprintf_P +#define flash_vsnprintf vsnprintf_P +#define flash_puts puts_P +#define flash_memcpy memcpy_P + +#endif /* Doxygen */ + +#ifdef __cplusplus +} +#endif + +/** @} */ +#endif /* FLASH_UTILS_ARCH_H */ diff --git a/sys/include/flash_utils.h b/sys/include/flash_utils.h new file mode 100644 index 0000000000..dc4721f1c7 --- /dev/null +++ b/sys/include/flash_utils.h @@ -0,0 +1,255 @@ +/* + * Copyright (C) 2022 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 sys_flash_utils Utility functions, macros, and types for + * read-only memory + * @ingroup sys + * + * This modules adds utility functions, macros, and functions for read-only + * memory. The goal is to hide the differences between modified architectures + * that map flash into the data address space (e.g. ARM) and those which + * doesn't (e.g. most AVR, Xtensa). + * + * # Usage + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.c} + * #include "flash_utils.h" + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * No module needs to be selected, this is a header-only implementation that + * is always available. + * + * # Porting Code to Use `flash_utils` + * + * This is mainly targeting applications developers to ease developing apps + * that work well on both legacy modified Harvard architectures (e.g. ATmega) + * and modern modified Harvard architectures (e.g. ARM, ATtiny, ...) as well + * as von-Neumann machines. + * + * The intention is to limit in-tree use to a very small number of modules that + * yield the most "bang for the buck" and not leak the use of `flash_utils` + * through the API. Specifically, reverting to not using `flash_utils` should + * not be noticed by any user (unless looking at memory consumption). + * + * @{ + * + * @file + * @brief Utility functions, macros, and types for read-only memory + * @author Marian Buschsieweke + */ + +#ifndef FLASH_UTILS_H +#define FLASH_UTILS_H + +#include +#include + +#include "cpu_conf.h" +#include "kernel_defines.h" + +#if IS_ACTIVE(HAS_FLASH_UTILS_ARCH) +#include "flash_utils_arch.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(DOXYGEN) +/** + * @brief C type qualifier required to place a variable in flash + */ +#define FLASH_ATTR +/** + * @brief Format specifier for printing `FLASH CONST char *` + * + * Usage: + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.c} + * FLASH_ATTR const char fmt[] = "I am printing \"%" PRIsflash "\" from flash\n"; + * FLASH_ATTR const char msg[] = "message from flash"; + * flash_printf(fmt, msg); + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ +#define PRIsflash + +/** + * @brief Macro to allocate a string literal on flash and return a + * `FLASH_ATTR const char *` pointer to it + * Usage: + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.c} + * flash_puts(TO_FLASH("Hello world")); + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ +#define TO_FLASH(str_literal) + +/** + * @brief Like `strcmp()`, but the second string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `strcmp()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_strcmp(const char *ram, FLASH_ATTR const char *flash); + +/** + * @brief Like `strncmp()`, but the first string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `strncmp()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_strncmp(const char *ram, FLASH_ATTR const char *flash, size_t n); + +/** + * @brief Like `strlen()`, but the string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `strlen()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +size_t flash_strlen(FLASH_ATTR const char *flash); + +/** + * @brief Like `strcpy()`, but the source flash resides in flash + * + * @details This will be a zero-overhead wrapper on top of `strcpy()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +char * flash_strcpy(char *ram, FLASH_ATTR const char *flash); + +/** + * @brief Like `strncpy()`, but the source flash resides in flash + * + * @details This will be a zero-overhead wrapper on top of `strncpy()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +char * flash_strncpy(char *ram, FLASH_ATTR const char *flash, size_t n); + +/** + * @brief Like `printf()`, but the format string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `printf()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_printf(FLASH_ATTR const char *flash, ...); + +/** + * @brief Like `vprintf()`, but the format string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `vprintf()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_vprintf(FLASH_ATTR const char *flash, va_list args); + +/** + * @brief Like `fprintf()`, but the format string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `fprintf()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_fprintf(FILE *stream, FLASH_ATTR const char *flash, ...); + +/** + * @brief Like `vfprintf()`, but the format string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `vfprintf()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_vfprintf(FILE *stream, FLASH_ATTR const char *flash, va_list args); + +/** + * @brief Like `snprintf()`, but the format string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `snprintf()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_snprintf(char *buf, size_t buf_len, FLASH_ATTR const char *flash, ...); + +/** + * @brief Like `vsnprintf()`, but the format string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `vsnprintf()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +int flash_vsnprintf(char *buf, size_t buf_len, FLASH_ATTR const char *flash, + va_list args); + +/** + * @brief Like `puts()`, but the string resides in flash + * + * @details This will be a zero-overhead wrapper on top of `puts()` for + * von-Neumann architectures or Harvard architectures that also map + * their flash into the data address space. + */ +void flash_puts(FLASH_ATTR const char *flash); + +/** + * @brief Like `memcpy()`, but @p src resides in flash + * + * @param[out] dest buffer to copy into + * @param[in] src flash data to copy + * @param[in] n number of bytes to copy + * + */ +void * flash_memcpy(void *dest, FLASH_ATTR const char *src, size_t n); +#elif !IS_ACTIVE(HAS_FLASH_UTILS_ARCH) +# define FLASH_ATTR +# define PRIsflash "s" +# define ASSERT_IS_STR_LITERAL_HELPER(x) x +# define ASSERT_IS_STR_LITERAL(x) ASSERT_IS_STR_LITERAL_HELPER("" x) +# define TO_FLASH(x) ASSERT_IS_STR_LITERAL(x) +# define flash_strcmp strcmp +# define flash_strncmp strncmp +# define flash_strlen strlen +# define flash_strcpy strcpy +# define flash_strncpy strncpy +# define flash_printf printf +# define flash_vprintf vprintf +# define flash_fprintf fprintf +# define flash_vfprintf vfprintf +# define flash_snprintf snprintf +# define flash_vsnprintf vsnprintf +# define flash_puts puts +# define flash_memcpy memcpy +#endif + +/** + * @brief A convenience wrapper for `flash_puts(TO_FLASH("str literal"))` + * + * Usage: + * ``` + * FLASH_PUTS("Hello world!"); + * ``` + */ +#define FLASH_PUTS(x) flash_puts(TO_FLASH(x)) + +/** + * @brief Like @ref flash_puts but without line break + */ +static inline void flash_print_str(FLASH_ATTR const char *flash) +{ + printf("%" PRIsflash, flash); +} + +#ifdef __cplusplus +} +#endif + +#endif /* FLASH_UTILS_H */ +/** @} */ From 75f17b493075fa2f760b9cc1d035bc03fb001070 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 21 Feb 2023 23:02:51 +0100 Subject: [PATCH 06/11] pkg/cryptoauthlib: Fix compilation with -Wformat-nonliteral --- pkg/cryptoauthlib/Makefile | 1 - ...Fix-compilation-with-Wformat-nonliteral.patch | Bin 0 -> 1892 bytes 2 files changed, 1 deletion(-) create mode 100644 pkg/cryptoauthlib/patches/0004-lib-Fix-compilation-with-Wformat-nonliteral.patch diff --git a/pkg/cryptoauthlib/Makefile b/pkg/cryptoauthlib/Makefile index 36a5d8f58a..e0a2211310 100644 --- a/pkg/cryptoauthlib/Makefile +++ b/pkg/cryptoauthlib/Makefile @@ -22,7 +22,6 @@ CFLAGS += -Wno-type-limits CFLAGS += -Wno-unused-function CFLAGS += -Wno-unused-parameter CFLAGS += -Wno-unused-variable -CFLAGS += -Wno-format-nonliteral CFLAGS += -Wno-maybe-uninitialized TOOLCHAIN_FILE=$(PKG_SOURCE_DIR)/xcompile-toolchain.cmake diff --git a/pkg/cryptoauthlib/patches/0004-lib-Fix-compilation-with-Wformat-nonliteral.patch b/pkg/cryptoauthlib/patches/0004-lib-Fix-compilation-with-Wformat-nonliteral.patch new file mode 100644 index 0000000000000000000000000000000000000000..07784a0129f46fda8a270f36cc1c7c4b9c235bc1 GIT binary patch literal 1892 zcmcIk`)}GX5dPhN#f_>GG>_&1q@;U5DYTW^t}0a1v`vu{+r%3Llt;_d?SJ1np(+D3 zsj6m0j(lf-=ezIo4b%AysLQMtZy&KE(TZGQiO{to)}*0lwV3DFUeoDxn9bp8p1_DN z!1lnh{PF|GvTQO$7$2@^Dro{IMHa=G)V zW5bY#2s+p@^02*2|v_uyUm?jH7kG5>U!nB)BmD>&+qG=lJ!0L9va67tfgI4{}fF`*H~`$#AlfSs z6a_jINhT)=XUKGd%k2>GSS26@tS)ue?+->Jc=K+R%__r3Vw9QUBo?Vma#5cIWmN*P zfDf>?@bM($X{xI%^e32OqP-lTwx9X?g}=Y__p_Q_>PlbbQq{VQ(ZGtUfmK&yn~Zg1gQ(Q=8|Wo57|>@nt)X?txbQ6lZ&k3w%NqE#r@)@$JR+S$)}f;z=zphM&=* z$lH?w_gB6fbd87A>-ihyw$~rjGgNS+l&zXJ+5|d-KLT~{5lVjbHu5XW>orbEadgy}gV literal 0 HcmV?d00001 From c406f7ef42bef389876585025be3709d113a5284 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Mon, 20 Feb 2023 16:56:12 +0100 Subject: [PATCH 07/11] cpu/avr8_common: Wrap stdio.h This allows automatically moving format strings to flash, provided that code previously compiled fine with `-Wformat-nonliteral` (which in RIOT is the case due to `-Wformat=2`). --- cpu/avr8_common/include/stdio.h | 145 ++++++++++++++++++++++++++++++++ sys/Makefile.dep | 6 ++ sys/log_color/Kconfig | 3 + 3 files changed, 154 insertions(+) create mode 100644 cpu/avr8_common/include/stdio.h diff --git a/cpu/avr8_common/include/stdio.h b/cpu/avr8_common/include/stdio.h new file mode 100644 index 0000000000..28509e1609 --- /dev/null +++ b/cpu/avr8_common/include/stdio.h @@ -0,0 +1,145 @@ +/* + * 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 cpu_avr8_common_stdio_wrapper stdio wrapper for AVR8 + * @ingroup cpu_avr8_common + * + * This module a wrapper for the stdio.h header intended to make use of + * flash_utils.h in printf() automatically + * + * @{ + * + * @file + * @brief stdio wrapper to extend the C libs stdio + * + * @author Marian Buschsieweke + */ + +#ifndef STDIO_H +#define STDIO_H +#include_next "stdio.h" + +/* C++ does not support __flash. Hence, only wrap printf() and friends for + * C and let C++ use them unmodified. */ +#ifdef __cplusplus +extern "C" { +} +#else + +#include "flash_utils.h" + +#ifdef DOXYGEN +/** + * @brief A wrapper for the `printf()` function that passes arguments through + * unmodified, but fails to compile if the first argument is not a + * string literal. + * + * See e.g. `man 3 printf` or https://linux.die.net/man/3/printf for + * documentation the printf function. This applies fully here, as it passes + * through the arguments unmodified. + * + * The motivation for enforcing the first argument to be a string literal is + * three-fold: + * + * 1. It prevents security issues due format strings controlled by adversaries. + * 2. It makes sure that modern C compilers that do understand format + * specifiers have knowledge of the format string and can verify that the + * other arguments match what is given via format string specifiers + * 3. It allows to force the format string to flash even for Harvard + * architectures transparently + * + * Similar wrappers are also in place for `vprintf()`, `fprintf()`, + * `vfprintf()`, `snprintf()`, `vsnprintf()`. + */ +#define printf(...) /* implementation details */ +#else +/* this helper function-like macro takes at least 65 arguments and will + * "return" the 65 argument unmodified. It is not useful by itself, but + * needed to implement _SINGLEARG_OR_MULTIARG(). */ +#define _TAKE_65TH_TOKEN( _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \ + _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, \ + _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, \ + _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, \ + _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, \ + _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, \ + _61, _62, _63, _64, N, ...) N + +#define _EXPAND_HELPER(x) x +/* this function-like macro expands its argument */ +#define _EXPAND(x) _EXPAND_HELPER(x) + +/* This function-like macro will expand to `SINGLEARG` if called with one + * argument and `MULTIARG` if called with more than one. + * + * (Implementation detail: It will not work with more than 64 arguments. But + * 64 arguments to one printf call ought to be enough for everyone...) + */ +#define _SINGLEARG_OR_MULTIARG(...) \ + _TAKE_65TH_TOKEN(__VA_ARGS__, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, MULTIARG, \ + MULTIARG, MULTIARG, MULTIARG, SINGLEARG) +#define _CONCAT_HELPER(a, b) a ## b +#define _CONCAT(a, b) _CONCAT_HELPER(a, b) + +/* Implementation for `printf(fmt)` */ +#define _PRINTF_SINGLEARG(x) \ + flash_printf(TO_FLASH(x)) +/* Implementation for `printf(fmt, ...)` */ +#define _PRINTF_MULTIARG(x, ...) \ + flash_printf(TO_FLASH(x), __VA_ARGS__) +/* Dispatch to _PRINTF_SINGLEARG() and _PRINTF_MULTIARG() depending on the + * number of arguments. Special handling for `printf(fmt)` compared to + * `printf(fmt, ...)` is needed because the `__VA_ARGS__` part must contain + * at least one argument, which in case of `printf(fmt)` is not the case. */ +#define printf(...) \ + _EXPAND(_CONCAT(_PRINTF_, _SINGLEARG_OR_MULTIARG(__VA_ARGS__))(__VA_ARGS__)) + +/* And now all other printf variants. For the v*printf() versions we do not + * need to differentiate, because they have always the same number of arguments + * (with the last being va_list). For the other printf variants, we again need + * to dispatch to a _SINGLEARG and a _MULTIARG version. */ +#define vprintf(fmt, args) flash_vprintf(TO_FLASH(fmt), args) + +#define _FPRINTF_SINGLEARG(stream, x) \ + flash_fprintf(stream, TO_FLASH(x)) +#define _FPRINTF_MULTIARG(stream, x, ...) \ + flash_fprintf(stream, TO_FLASH(x), __VA_ARGS__) +#define fprintf(stream, ...) \ + _EXPAND(_CONCAT(_FPRINTF_, _SINGLEARG_OR_MULTIARG(__VA_ARGS__))(stream, __VA_ARGS__)) + +#define vfprintf(stream, fmt, args) flash_vfprintf(stream, TO_FLASH(fmt), args) + +#define _SNPRINTF_SINGLEARG(buf, buf_len, fmt) \ + flash_snprintf(buf, buf_len, TO_FLASH(fmt)) +#define _SNPRINTF_MULTIARG(buf, buf_len, fmt, ...) \ + flash_snprintf(buf, buf_len, TO_FLASH(fmt), __VA_ARGS__) +#define snprintf(buf, buf_len, ...) \ + _EXPAND(_CONCAT(_SNPRINTF_, _SINGLEARG_OR_MULTIARG(__VA_ARGS__))(buf, buf_len, __VA_ARGS__)) + +#define vsnprintf(buf, buf_len, fmt, args) flash_vsnprintf(buf, buf_len, TO_FLASH(fmt), args) +#endif + +#endif + +#endif /* STDIO_H */ +/** @} */ diff --git a/sys/Makefile.dep b/sys/Makefile.dep index 0928893a5c..7298a5ec9c 100644 --- a/sys/Makefile.dep +++ b/sys/Makefile.dep @@ -414,6 +414,12 @@ ifneq (,$(filter log_%,$(USEMODULE))) USEMODULE += log endif +ifneq (,$(filter log_color,$(USEMODULE))) + # log_color fails to compile with -Wformat-nonliteral but this is required + # for the wrapped stdio that pushes the format string into progmem + FEATURES_BLACKLIST += arch_avr8 +endif + ifneq (,$(filter cpp11-compat,$(USEMODULE))) USEMODULE += cpp_new_delete USEMODULE += xtimer diff --git a/sys/log_color/Kconfig b/sys/log_color/Kconfig index c5352a25e2..71f0707e1a 100644 --- a/sys/log_color/Kconfig +++ b/sys/log_color/Kconfig @@ -10,6 +10,9 @@ choice LOG config MODULE_LOG_COLOR bool "log_color: colored log output" select MODULE_LOG + # log_color fails to compile with -Wformat-nonliteral but this is required + # for the wrapped stdio that pushes the format string into progmem + depends on !CPU_ARCH_AVR8 help Implements a logging module with colored output. From 2825f5f2aea00611689dc7162e7ba56158953b3b Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Wed, 1 Jun 2022 21:13:33 +0200 Subject: [PATCH 08/11] sys/shell: use flash_utils --- sys/include/shell.h | 37 +++++++++++++++++++++++++++++++++---- sys/shell/shell.c | 21 +++++++++++---------- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/sys/include/shell.h b/sys/include/shell.h index dde5cb0b67..3ef67822a5 100644 --- a/sys/include/shell.h +++ b/sys/include/shell.h @@ -26,6 +26,10 @@ #include "modules.h" #include "xfa.h" +#ifndef __cplusplus +#include "flash_utils.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -135,6 +139,20 @@ typedef struct shell_command_t { shell_command_handler_t handler; /**< The callback function. */ } shell_command_t; +#ifndef __cplusplus +/** + * @brief A single command in the list of the supported commands. + * + * This type is used internally by the @ref SHELL_COMMAND macro. + */ +typedef struct { + FLASH_ATTR const char *name; /**< Name of the function */ + FLASH_ATTR const char *desc; /**< Description to print in the "help" + * command. */ + shell_command_handler_t handler; /**< The callback function. */ +} shell_command_xfa_t; +#endif /* __cplusplus */ + /** * @brief Start a shell and exit once EOF is reached. * @@ -179,9 +197,13 @@ static inline void shell_run(const shell_command_t *commands, shell_run_forever(commands, line_buf, len); } +#ifndef __cplusplus /** * @brief Define shell command * + * @note This is not available from C++, but a trivial C file can easily + * hook up a `extern "C"` function implemented in C++. + * * This macro is a helper for defining a shell command and adding it to the * shell commands XFA (cross file array). * @@ -205,10 +227,17 @@ static inline void shell_run(const shell_command_t *commands, * SHELL_COMMAND(my_command, "my command help text", _my_command); * ``` */ -#define SHELL_COMMAND(name, help, func) \ - XFA_USE_CONST(shell_command_t*, shell_commands_xfa); \ - static const shell_command_t _xfa_ ## name ## _cmd = { #name, help, &func }; \ - XFA_ADD_PTR(shell_commands_xfa, name, name, &_xfa_ ## name ## _cmd) +#define SHELL_COMMAND(cmd, help, func) \ + XFA_USE_CONST(shell_command_xfa_t*, shell_commands_xfa); \ + static FLASH_ATTR const char _xfa_ ## cmd ## _cmd_name[] = #cmd; \ + static FLASH_ATTR const char _xfa_ ## cmd ## _cmd_desc[] = help; \ + static const shell_command_xfa_t _xfa_ ## cmd ## _cmd = { \ + .name = _xfa_ ## cmd ## _cmd_name, \ + .desc = _xfa_ ## cmd ## _cmd_desc, \ + .handler = &func \ + }; \ + XFA_ADD_PTR(shell_commands_xfa, cmd, cmd, &_xfa_ ## cmd ## _cmd) +#endif /* __cplusplus */ #ifdef __cplusplus } diff --git a/sys/shell/shell.c b/sys/shell/shell.c index 70725ba8cd..0d82178af8 100644 --- a/sys/shell/shell.c +++ b/sys/shell/shell.c @@ -41,7 +41,7 @@ #include "shell_lock.h" /* define shell command cross file array */ -XFA_INIT_CONST(shell_command_t*, shell_commands_xfa); +XFA_INIT_CONST(shell_command_xfa_t*, shell_commands_xfa); #define ETX '\x03' /** ASCII "End-of-Text", or Ctrl-C */ #define EOT '\x04' /** ASCII "End-of-Transmission", or Ctrl-D */ @@ -99,8 +99,8 @@ static shell_command_handler_t search_commands_xfa(char *command) unsigned n = XFA_LEN(shell_command_t*, shell_commands_xfa); for (unsigned i = 0; i < n; i++) { - const volatile shell_command_t *entry = shell_commands_xfa[i]; - if (strcmp(entry->name, command) == 0) { + const volatile shell_command_xfa_t *entry = shell_commands_xfa[i]; + if (flash_strcmp(command, entry->name) == 0) { return entry->handler; } } @@ -132,17 +132,18 @@ static void print_commands(const shell_command_t *entry) static void print_commands_xfa(void) { - unsigned n = XFA_LEN(shell_command_t*, shell_commands_xfa); + unsigned n = XFA_LEN(shell_command_xfa_t*, shell_commands_xfa); for (unsigned i = 0; i < n; i++) { - const volatile shell_command_t *entry = shell_commands_xfa[i]; - printf("%-20s %s\n", entry->name, entry->desc); + const volatile shell_command_xfa_t *entry = shell_commands_xfa[i]; + printf("%-20" PRIsflash " %" PRIsflash "\n", + entry->name, entry->desc); } } static void print_help(const shell_command_t *command_list) { - puts("Command Description" - "\n---------------------------------------"); + printf("Command Description\n" + "---------------------------------------\n"); if (command_list != NULL) { print_commands(command_list); } @@ -294,7 +295,7 @@ static void handle_input_line(const shell_command_t *command_list, char *line) *writepos = '\0'; if (pstate != PARSE_BLANK && pstate != PARSE_UNQUOTED) { - puts("shell: incorrect quoting"); + printf("shell: incorrect quoting\n"); return; } @@ -503,7 +504,7 @@ void shell_run_once(const shell_command_t *shell_commands, return; case -ENOBUFS: - puts("shell: maximum line length exceeded"); + printf("shell: maximum line length exceeded\n"); break; default: From 29cfeb752e75e8dd8b099b793cab477de3d76147 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 31 May 2022 21:09:12 +0200 Subject: [PATCH 09/11] sys/phydat: use flash_utils --- sys/include/phydat.h | 51 +++++++-- sys/phydat/phydat_json.c | 19 ++-- sys/phydat/phydat_str.c | 225 ++++++++++++++++++++++++++------------ tests/senml_phydat/main.c | 5 +- 4 files changed, 206 insertions(+), 94 deletions(-) diff --git a/sys/include/phydat.h b/sys/include/phydat.h index e7847ce549..73fc4cea9b 100644 --- a/sys/include/phydat.h +++ b/sys/include/phydat.h @@ -37,6 +37,8 @@ #include #include +#include + #include "modules.h" #ifdef __cplusplus @@ -177,30 +179,55 @@ void phydat_dump(phydat_t *data, uint8_t dim); /** * @brief Convert the given unit to a string * - * @param[in] unit unit to convert + * @param[in] unit unit to convert * * @return string representation of given unit (e.g. V or m) * @return NULL if unit was not recognized + * + * @deprecated Use @ref phydat_unit_print or @ref phydat_unit_write instead + * + * @warning For classic Harvard architectures a small buffer is used to store + * the string, so that subsequent (or concurrent!) calls will + * overwrite the output. */ const char *phydat_unit_to_str(uint8_t unit); /** - * @brief Return a string representation for every unit, including - * non-physical units like 'none' or 'time' + * @brief Same as @ref phydat_unit_to_str * - * This function is useful when converting phydat_t structures to non-binary - * representations like JSON or XML. + * In practise all users used the verbose function anyway. Hence, + * @ref phydat_unit_to_str just covers all units and this is just a backward + * compatibility wrapper. * - * In practice, this function extends phydat_unit_to_str() with additional - * identifiers for non physical units. - * - * @param[in] unit unit to convert - * - * @return string representation of given unit - * @return empty string ("") if unit was not recognized + * @deprecated Use @ref phydat_unit_print or @ref phydat_unit_write instead */ const char *phydat_unit_to_str_verbose(uint8_t unit); +/** + * @brief Print a unit + * + * @param[in] unit unit to print + */ +void phydat_unit_print(uint8_t unit); + +/** + * @brief Write the string representation of the given unit into the given + * buffer + * + * @param[out] dest destination buffer to write to + * @param[in] max_size size of the buffer at @p dest + * @param[in] unit unit to convert + * + * @return Number of bytes written + * @retval -EOVERFLOW buffer at @p dest is too small + * @retval -EINVAL invalid unit in @p unit + * + * @warning The function will never write a terminating zero byte + * @note If you pass `NULL` for @p dest, it will return the number of bytes + * it would write (regardless of @p max_size) + */ +ssize_t phydat_unit_write(char *dest, size_t max_size, uint8_t unit); + /** * @brief Convert the given scale factor to an SI prefix * diff --git a/sys/phydat/phydat_json.c b/sys/phydat/phydat_json.c index 176016f8c0..9ebdd2eb06 100644 --- a/sys/phydat/phydat_json.c +++ b/sys/phydat/phydat_json.c @@ -20,8 +20,9 @@ #include -#include "fmt.h" #include "assert.h" +#include "flash_utils.h" +#include "fmt.h" #include "phydat.h" #define STATIC_LEN (14U) @@ -32,11 +33,11 @@ static size_t _bool_to_str(int16_t val, char *buf) { if (val) { - memcpy(buf, "true", 4); + flash_memcpy(buf, TO_FLASH("true"), 4); return 4; } else { - memcpy(buf, "false", 5); + flash_memcpy(buf, TO_FLASH("false"), 5); return 5; } } @@ -60,10 +61,10 @@ size_t phydat_to_json(const phydat_t *data, size_t dim, char *buf) pos += (data->val[i]) ? 4 : 5; /* true: 4, false: 5 */ } } - pos += strlen(phydat_unit_to_str_verbose(data->unit)); + pos += phydat_unit_write(NULL, 0, data->unit); } else { - memcpy(buf, "{\"d\":", 5); + flash_memcpy(buf, TO_FLASH("{\"d\":"), 5); pos += 5; /* write data */ if (dim > 1) { @@ -84,13 +85,11 @@ size_t phydat_to_json(const phydat_t *data, size_t dim, char *buf) buf[pos++] = ','; } /* add unit */ - memcpy(&buf[pos], "\"u\":\"", 5); + flash_memcpy(&buf[pos], TO_FLASH("\"u\":\""), 5); pos += 5; - const char *u = phydat_unit_to_str_verbose(data->unit); - strcpy(&buf[pos], u); - pos += strlen(u); + pos += phydat_unit_write(&buf[pos], SIZE_MAX, data->unit); /* terminate the JSON string */ - memcpy(&buf[pos], "\"}", 2); + flash_memcpy(&buf[pos], TO_FLASH("\"}"), 2); pos += 2; buf[pos++] = '\0'; } diff --git a/sys/phydat/phydat_str.c b/sys/phydat/phydat_str.c index 566a1ca8a2..b2c03b8861 100644 --- a/sys/phydat/phydat_str.c +++ b/sys/phydat/phydat_str.c @@ -18,17 +18,19 @@ * @} */ -#include +#include #include +#include #include "assert.h" +#include "flash_utils.h" #include "fmt.h" #include "phydat.h" void phydat_dump(phydat_t *data, uint8_t dim) { if (data == NULL || dim > PHYDAT_DIM) { - puts("Unable to display data object"); + printf("Unable to display data object\n"); return; } printf("Data:"); @@ -50,19 +52,19 @@ void phydat_dump(phydat_t *data, uint8_t dim) char scale_prefix; switch (data->unit) { - case UNIT_UNDEF: - case UNIT_NONE: - case UNIT_M2: - case UNIT_M3: - case UNIT_PERCENT: - case UNIT_TEMP_C: - case UNIT_TEMP_F: - case UNIT_DBM: - /* no string conversion */ - scale_prefix = '\0'; - break; - default: - scale_prefix = phydat_prefix_from_scale(data->scale); + case UNIT_UNDEF: + case UNIT_NONE: + case UNIT_M2: + case UNIT_M3: + case UNIT_PERCENT: + case UNIT_TEMP_C: + case UNIT_TEMP_F: + case UNIT_DBM: + /* no string conversion */ + scale_prefix = '\0'; + break; + default: + scale_prefix = phydat_prefix_from_scale(data->scale); } printf("\t"); @@ -92,75 +94,158 @@ void phydat_dump(phydat_t *data, uint8_t dim) printf("%11s ", num); } - printf("%s\n", phydat_unit_to_str(data->unit)); + if ((data->unit != UNIT_NONE) && (data->unit != UNIT_UNDEF) + && (data->unit != UNIT_BOOL)) { + phydat_unit_print(data->unit); + } + puts(""); } } +static FLASH_ATTR const char _unit_celsius[] = "°C"; +static FLASH_ATTR const char _unit_fahrenheit[] = "°F"; +static FLASH_ATTR const char _unit_kelvin[] = "K"; +static FLASH_ATTR const char _unit_lux[] = "lx"; +static FLASH_ATTR const char _unit_metre[] = "m"; +static FLASH_ATTR const char _unit_square_metre[] = "m^2"; +static FLASH_ATTR const char _unit_cubic_metre[] = "m^3"; +static FLASH_ATTR const char _unit_g_force[] = "gₙ"; +static FLASH_ATTR const char _unit_degree_per_second[] = "dps"; +static FLASH_ATTR const char _unit_gram[] = "g"; +static FLASH_ATTR const char _unit_ampere[] = "A"; +static FLASH_ATTR const char _unit_volt[] = "V"; +static FLASH_ATTR const char _unit_watt[] = "W"; +static FLASH_ATTR const char _unit_decibel_milliwatts[] = "dBm"; +static FLASH_ATTR const char _unit_gauss[] = "Gs"; +static FLASH_ATTR const char _unit_tesla[] = "T"; +static FLASH_ATTR const char _unit_bar[] = "Bar"; +static FLASH_ATTR const char _unit_pascal[] = "Pa"; +static FLASH_ATTR const char _unit_permille[] = "permille"; +static FLASH_ATTR const char _unit_parts_per_million[] = "ppm"; +static FLASH_ATTR const char _unit_parts_per_billion[] = "ppb"; +static FLASH_ATTR const char _unit_candela[] = "cd"; +static FLASH_ATTR const char _unit_percent[] = "%"; +static FLASH_ATTR const char _unit_counts[] = "cts"; +static FLASH_ATTR const char _unit_coulomb[] = "C"; +static FLASH_ATTR const char _unit_gram_per_cubic_metre[] = "g/m^3"; +static FLASH_ATTR const char _unit_farad[] = "F"; +static FLASH_ATTR const char _unit_potential_of_hydrogen[] = "pH"; +static FLASH_ATTR const char _unit_count_per_cubic_metre[] = "#/m^3"; +static FLASH_ATTR const char _unit_ohm[] = "ohm"; +static FLASH_ATTR const char _unit_undefined[] = "undefined"; +static FLASH_ATTR const char _unit_none[] = "none"; +static FLASH_ATTR const char _unit_time[] = "time"; +static FLASH_ATTR const char _unit_date[] = "date"; + +static FLASH_ATTR const char * FLASH_ATTR const _unit_to_str[] = { + [UNIT_TEMP_C] = _unit_celsius, + [UNIT_TEMP_F] = _unit_fahrenheit, + [UNIT_TEMP_K] = _unit_kelvin, + [UNIT_LUX] = _unit_lux, + [UNIT_M] = _unit_metre, + [UNIT_M2] = _unit_square_metre, + [UNIT_M3] = _unit_cubic_metre, + [UNIT_G_FORCE] = _unit_g_force, + [UNIT_DPS] = _unit_degree_per_second, + [UNIT_GRAM] = _unit_gram, + [UNIT_A] = _unit_ampere, + [UNIT_V] = _unit_volt, + [UNIT_W] = _unit_watt, + [UNIT_DBM] = _unit_decibel_milliwatts, + [UNIT_GS] = _unit_gauss, + [UNIT_T] = _unit_tesla, + [UNIT_BAR] = _unit_bar, + [UNIT_PA] = _unit_pascal, + [UNIT_PERMILL] = _unit_permille, + [UNIT_PPM] = _unit_parts_per_million, + [UNIT_PPB] = _unit_parts_per_billion, + [UNIT_CD] = _unit_candela, + [UNIT_PERCENT] = _unit_percent, + [UNIT_CTS] = _unit_counts, + [UNIT_COULOMB] = _unit_coulomb, + [UNIT_GPM3] = _unit_gram_per_cubic_metre, + [UNIT_F] = _unit_farad, + [UNIT_PH] = _unit_potential_of_hydrogen, + [UNIT_CPM3] = _unit_count_per_cubic_metre, + [UNIT_OHM] = _unit_ohm, + [UNIT_UNDEF] = _unit_undefined, + [UNIT_NONE] = _unit_none, + [UNIT_BOOL] = _unit_none, + [UNIT_TIME] = _unit_time, + [UNIT_DATE] = _unit_date, +}; + +ssize_t phydat_unit_write(char *dest, size_t max_size, uint8_t unit) +{ + if ((unit >= ARRAY_SIZE(_unit_to_str)) || (_unit_to_str[unit]) == NULL) { + return -EINVAL; + } + size_t len = flash_strlen(_unit_to_str[unit]); + if (dest) { + if (max_size < len) { + return -EOVERFLOW; + } + flash_memcpy(dest, _unit_to_str[unit], len); + } + + return len; +} + const char *phydat_unit_to_str(uint8_t unit) { - switch (unit) { - case UNIT_TEMP_C: return "°C"; - case UNIT_TEMP_F: return "°F"; - case UNIT_TEMP_K: return "K"; - case UNIT_LUX: return "lx"; - case UNIT_M: return "m"; - case UNIT_M2: return "m^2"; - case UNIT_M3: return "m^3"; - case UNIT_G_FORCE: return "gₙ"; - case UNIT_DPS: return "dps"; - case UNIT_GRAM: return "g"; - case UNIT_A: return "A"; - case UNIT_V: return "V"; - case UNIT_W: return "W"; - case UNIT_DBM: return "dBm"; - case UNIT_GAUSS: return "Gs"; - case UNIT_T: return "T"; - case UNIT_BAR: return "Bar"; - case UNIT_PA: return "Pa"; - case UNIT_PERMILL: return "permille"; - case UNIT_PPM: return "ppm"; - case UNIT_PPB: return "ppb"; - case UNIT_CD: return "cd"; - case UNIT_PERCENT: return "%"; - case UNIT_CTS: return "cts"; - case UNIT_COULOMB: return "C"; - case UNIT_GPM3: return "g/m^3"; - case UNIT_F: return "F"; - case UNIT_PH: return "pH"; - case UNIT_CPM3: return "#/m^3"; - case UNIT_OHM: return "ohm"; - - default: return ""; +#if IS_ACTIVE(HAS_FLASH_UTILS_ARCH) + /* Yeah, this is as bad as it looks... The function is deprecated for this + * reason and it will only affect AVR users, for whom this is a good + * trade-off. */ + static char buf[8]; + ssize_t pos = phydat_unit_write(buf, sizeof(buf) - 1, unit); + assert(pos >= 0); + if (pos < 0) { + pos = 0; } + buf[pos] = '\0'; + return buf; +#else + if ((unit < ARRAY_SIZE(_unit_to_str)) && (_unit_to_str[unit])) { + return _unit_to_str[unit]; + } + return ""; +#endif } const char *phydat_unit_to_str_verbose(uint8_t unit) { - switch (unit) { - case UNIT_UNDEF: return "undefined"; - case UNIT_NONE: /* fall through */ - case UNIT_BOOL: - return "none"; - case UNIT_TIME: return "time"; - case UNIT_DATE: return "date"; - default: return phydat_unit_to_str(unit); + return phydat_unit_to_str(unit); +} + +void phydat_unit_print(uint8_t unit) +{ + if ((unit < ARRAY_SIZE(_unit_to_str)) && (_unit_to_str[unit]) != NULL) { + flash_print_str(_unit_to_str[unit]); } } char phydat_prefix_from_scale(int8_t scale) { - switch (scale) { - case -3: return 'm'; - case -6: return 'u'; - case -9: return 'n'; - case -12: return 'p'; - case -15: return 'f'; - case 2: return 'h'; - case 3: return 'k'; - case 6: return 'M'; - case 9: return 'G'; - case 12: return 'T'; - case 15: return 'P'; - default: return '\0'; + static FLASH_ATTR const char _prefix[] = { + 'f', '\0', '\0', + 'p', '\0', '\0', + 'n', '\0', '\0', + 'u', '\0', '\0', + 'm', '\0', '\0', + '\0', '\0', 'h', + 'k', '\0', '\0', + 'M', '\0', '\0', + 'G', '\0', '\0', + 'T', '\0', '\0', + 'P', + }; + + int8_t idx = scale + ARRAY_SIZE(_prefix) / 2; + + if ((idx < 0) || (idx >= (int8_t)ARRAY_SIZE(_prefix))) { + return '\0'; } + + return _prefix[idx]; } diff --git a/tests/senml_phydat/main.c b/tests/senml_phydat/main.c index 2704bb168d..60de8e0ba2 100644 --- a/tests/senml_phydat/main.c +++ b/tests/senml_phydat/main.c @@ -23,6 +23,7 @@ #include #include "embUnit.h" +#include "flash_utils.h" #include "senml/phydat.h" #define ENABLE_DEBUG (0) @@ -114,7 +115,7 @@ void test_phydat_to_senml_float(void) phydat_to_senml_float(&res, &(value_tests[i].phydat), value_tests[i].dim); - DEBUG("Float: %" PRIi16 "e%" PRIi16 " %s -> %.f %s\n", + DEBUG("Float: %" PRIi16 "e%" PRIi16 " %" PRIsflash " -> %.f %s\n", value_tests[i].phydat.val[value_tests[i].dim], value_tests[i].phydat.scale, phydat_unit_to_str(value_tests[i].phydat.unit), res.value.value.f, @@ -137,7 +138,7 @@ void test_phydat_to_senml_decimal(void) phydat_to_senml_decimal(&res, &(value_tests[i].phydat), value_tests[i].dim); - DEBUG("Decimal: %" PRIi16 "e%" PRIi16 " %s -> %" PRIi32 "e%" PRIi32 " %s\n", + DEBUG("Decimal: %" PRIi16 "e%" PRIi16 " %s -> %" PRIi32 "e%" PRIi32 " %" PRIsflash"\n", value_tests[i].phydat.val[value_tests[i].dim], value_tests[i].phydat.scale, phydat_unit_to_str(value_tests[i].phydat.unit), res.value.value.df.m, res.value.value.df.e, From cdcec5b3f9824d111bfb668df2902f43db41a780 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Wed, 1 Jun 2022 22:59:07 +0200 Subject: [PATCH 10/11] drivers/saul: use flash_utils --- drivers/include/saul.h | 38 +++++- drivers/saul/saul_str.c | 239 ++++++++++++++++++++++++++++--------- sys/shell/cmds/saul_reg.c | 30 +++-- tests/driver_bmx055/main.c | 5 +- tests/saul/main.c | 5 +- 5 files changed, 242 insertions(+), 75 deletions(-) diff --git a/drivers/include/saul.h b/drivers/include/saul.h index e8d73bc68f..d72b6c2464 100644 --- a/drivers/include/saul.h +++ b/drivers/include/saul.h @@ -48,8 +48,9 @@ #ifndef SAUL_H #define SAUL_H -#include #include +#include +#include #include "phydat.h" @@ -315,11 +316,42 @@ int saul_read_notsup(const void *dev, phydat_t *dat); * * @param[in] class_id device class ID * - * @return string representation of the device class - * @return NULL if class ID is not known + * @return string representation of the device class + * @retval NULL class ID is not known + * + * @deprecated Use @ref saul_class_print or @ref saul_class_write instead + * + * @warning For classic Harvard architectures a small buffer is used to store + * the string, so that subsequent (or concurrent!) calls will + * overwrite the output. */ const char *saul_class_to_str(const uint8_t class_id); +/** + * @brief Prints the class string of the given class ID + * + * @param[in] class_id ID of the device class to print + */ +void saul_class_print(uint8_t class_id); + +/** + * @brief Write the string representation of the given device class to the + * given buffer + * + * @param[out] dest destination buffer to write to + * @param[in] max_size size of the buffer at @p dest + * @param[in] class_id ID of the device class to write + * + * @return Number of bytes written + * @retval -EOVERFLOW buffer at @p dest is too small + * @retval -EINVAL invalid unit in @p unit + * + * @warning The function will never write a terminating zero byte + * @note If you pass `NULL` for @p dest, it will return the number of bytes + * it would write (regardless of @p max_size) + */ +ssize_t saul_class_write(char *dest, size_t max_size, uint8_t class_id); + #ifdef __cplusplus } #endif diff --git a/drivers/saul/saul_str.c b/drivers/saul/saul_str.c index 354e302f99..d9ea6abe91 100644 --- a/drivers/saul/saul_str.c +++ b/drivers/saul/saul_str.c @@ -23,77 +23,206 @@ #include #include +#include "flash_utils.h" #include "saul.h" -static const char *actuators[] = { - [SAUL_ACT_ID_ANY] = "ACT_ANY", - [SAUL_ACT_ID_LED_RGB] = "ACT_LED_RGB", - [SAUL_ACT_ID_SERVO] = "ACT_SERVO", - [SAUL_ACT_ID_MOTOR] = "ACT_MOTOR", - [SAUL_ACT_ID_SWITCH] = "ACT_SWITCH", - [SAUL_ACT_ID_DIMMER] = "ACT_DIMMER", +static FLASH_ATTR const char _act_id_any[] = "ACT_ANY"; +static FLASH_ATTR const char _act_id_led_rgb[] = "ACT_LED_RGB"; +static FLASH_ATTR const char _act_id_servo[] = "ACT_SERVO"; +static FLASH_ATTR const char _act_id_motor[] = "ACT_MOTOR"; +static FLASH_ATTR const char _act_id_switch[] = "ACT_SWITCH"; +static FLASH_ATTR const char _act_id_dimmer[] = "ACT_DIMMER"; + +static FLASH_ATTR const char * FLASH_ATTR const actuators[] = { + [SAUL_ACT_ID_ANY] = _act_id_any, + [SAUL_ACT_ID_LED_RGB] = _act_id_led_rgb, + [SAUL_ACT_ID_SERVO] = _act_id_servo, + [SAUL_ACT_ID_MOTOR] = _act_id_motor, + [SAUL_ACT_ID_SWITCH] = _act_id_switch, + [SAUL_ACT_ID_DIMMER] = _act_id_dimmer, }; -static const char *sensors[] = { - [SAUL_SENSE_ID_ANY] = "SENSE_ANY", - [SAUL_SENSE_ID_BTN] = "SENSE_BTN", - [SAUL_SENSE_ID_TEMP] = "SENSE_TEMP", - [SAUL_SENSE_ID_HUM] = "SENSE_HUM", - [SAUL_SENSE_ID_LIGHT] = "SENSE_LIGHT", - [SAUL_SENSE_ID_ACCEL] = "SENSE_ACCEL", - [SAUL_SENSE_ID_MAG] = "SENSE_MAG", - [SAUL_SENSE_ID_GYRO] = "SENSE_GYRO", - [SAUL_SENSE_ID_COLOR] = "SENSE_COLOR", - [SAUL_SENSE_ID_PRESS] = "SENSE_PRESS", - [SAUL_SENSE_ID_ANALOG] = "SENSE_ANALOG", - [SAUL_SENSE_ID_UV] = "SENSE_UV", - [SAUL_SENSE_ID_OBJTEMP] = "SENSE_OBJTEMP", - [SAUL_SENSE_ID_COUNT] = "SENSE_PULSE_COUNT", - [SAUL_SENSE_ID_DISTANCE] = "SENSE_DISTANCE", - [SAUL_SENSE_ID_CO2] = "SENSE_CO2", - [SAUL_SENSE_ID_TVOC] = "SENSE_TVOC", - [SAUL_SENSE_ID_GAS] = "SENSE_GAS", - [SAUL_SENSE_ID_PROXIMITY] = "SENSE_PROXIMITY", - [SAUL_SENSE_ID_RSSI] = "SENSE_RSSI", - [SAUL_SENSE_ID_CHARGE] = "SENSE_CHARGE", - [SAUL_SENSE_ID_CURRENT] = "SENSE_CURRENT", - [SAUL_SENSE_ID_OCCUP] = "SENSE_OCCUP", - [SAUL_SENSE_ID_PM] = "SENSE_PM", - [SAUL_SENSE_ID_CAPACITANCE] = "SENSE_CAPACITANCE", - [SAUL_SENSE_ID_VOLTAGE] = "SENSE_VOLTAGE", - [SAUL_SENSE_ID_PH] = "SENSE_PH", - [SAUL_SENSE_ID_POWER] = "SENSE_POWER", - [SAUL_SENSE_ID_SIZE] = "SENSE_SIZE", +static FLASH_ATTR const char _sense_any[] = "SENSE_ANY"; +static FLASH_ATTR const char _sense_btn[] = "SENSE_BTN"; +static FLASH_ATTR const char _sense_temp[] = "SENSE_TEMP"; +static FLASH_ATTR const char _sense_hum[] = "SENSE_HUM"; +static FLASH_ATTR const char _sense_light[] = "SENSE_LIGHT"; +static FLASH_ATTR const char _sense_accel[] = "SENSE_ACCEL"; +static FLASH_ATTR const char _sense_mag[] = "SENSE_MAG"; +static FLASH_ATTR const char _sense_gyro[] = "SENSE_GYRO"; +static FLASH_ATTR const char _sense_color[] = "SENSE_COLOR"; +static FLASH_ATTR const char _sense_press[] = "SENSE_PRESS"; +static FLASH_ATTR const char _sense_analog[] = "SENSE_ANALOG"; +static FLASH_ATTR const char _sense_uv[] = "SENSE_UV"; +static FLASH_ATTR const char _sense_objtemp[] = "SENSE_OBJTEMP"; +static FLASH_ATTR const char _sense_pulse_count[] = "SENSE_PULSE_COUNT"; +static FLASH_ATTR const char _sense_distance[] = "SENSE_DISTANCE"; +static FLASH_ATTR const char _sense_co2[] = "SENSE_CO2"; +static FLASH_ATTR const char _sense_tvoc[] = "SENSE_TVOC"; +static FLASH_ATTR const char _sense_gas[] = "SENSE_GAS"; +static FLASH_ATTR const char _sense_proximity[] = "SENSE_PROXIMITY"; +static FLASH_ATTR const char _sense_rssi[] = "SENSE_RSSI"; +static FLASH_ATTR const char _sense_charge[] = "SENSE_CHARGE"; +static FLASH_ATTR const char _sense_current[] = "SENSE_CURRENT"; +static FLASH_ATTR const char _sense_occup[] = "SENSE_OCCUP"; +static FLASH_ATTR const char _sense_pm[] = "SENSE_PM"; +static FLASH_ATTR const char _sense_capacitance[] = "SENSE_CAPACITANCE"; +static FLASH_ATTR const char _sense_voltage[] = "SENSE_VOLTAGE"; +static FLASH_ATTR const char _sense_ph[] = "SENSE_PH"; +static FLASH_ATTR const char _sense_power[] = "SENSE_POWER"; +static FLASH_ATTR const char _sense_size[] = "SENSE_SIZE"; + +static FLASH_ATTR const char * FLASH_ATTR const sensors[] = { + [SAUL_SENSE_ID_ANY] = _sense_any, + [SAUL_SENSE_ID_BTN] = _sense_btn, + [SAUL_SENSE_ID_TEMP] = _sense_temp, + [SAUL_SENSE_ID_HUM] = _sense_hum, + [SAUL_SENSE_ID_LIGHT] = _sense_light, + [SAUL_SENSE_ID_ACCEL] = _sense_accel, + [SAUL_SENSE_ID_MAG] = _sense_mag, + [SAUL_SENSE_ID_GYRO] = _sense_gyro, + [SAUL_SENSE_ID_COLOR] = _sense_color, + [SAUL_SENSE_ID_PRESS] = _sense_press, + [SAUL_SENSE_ID_ANALOG] = _sense_analog, + [SAUL_SENSE_ID_UV] = _sense_uv, + [SAUL_SENSE_ID_OBJTEMP] = _sense_objtemp, + [SAUL_SENSE_ID_COUNT] = _sense_pulse_count, + [SAUL_SENSE_ID_DISTANCE] = _sense_distance, + [SAUL_SENSE_ID_CO2] = _sense_co2, + [SAUL_SENSE_ID_TVOC] = _sense_tvoc, + [SAUL_SENSE_ID_GAS] = _sense_gas, + [SAUL_SENSE_ID_PROXIMITY] = _sense_proximity, + [SAUL_SENSE_ID_RSSI] = _sense_rssi, + [SAUL_SENSE_ID_CHARGE] = _sense_charge, + [SAUL_SENSE_ID_CURRENT] = _sense_current, + [SAUL_SENSE_ID_OCCUP] = _sense_occup, + [SAUL_SENSE_ID_PM] = _sense_pm, + [SAUL_SENSE_ID_CAPACITANCE] = _sense_capacitance, + [SAUL_SENSE_ID_VOLTAGE] = _sense_voltage, + [SAUL_SENSE_ID_PH] = _sense_ph, + [SAUL_SENSE_ID_POWER] = _sense_power, + [SAUL_SENSE_ID_SIZE] = _sense_size, }; +static FLASH_ATTR const char _class_undef[] = "CLASS_UNDEF"; +static FLASH_ATTR const char _class_any[] = "CLASS_ANY"; +static FLASH_ATTR const char _class_unknown[] = "CLASS_UNKNOWN"; + const char *saul_class_to_str(const uint8_t class_id) { +#if IS_ACTIVE(HAS_FLASH_UTILS_ARCH) + /* Yeah, this is as bad as it looks... The function is deprecated for this + * reason and it will only affect AVR users, for whom this is a good + * trade-off. */ + static char buf[32]; /* yes, whopping 32 byte ... */ + ssize_t len = saul_class_write(buf, sizeof(buf) - 1, class_id); + if (len < 0) { + flash_memcpy(buf, _class_unknown, sizeof(_class_unknown)); + len = sizeof(_class_unknown); + } + buf[len] = '\0'; + return buf; +#else const char *result = NULL; uint8_t id = class_id & SAUL_ID_MASK; uint8_t cat = class_id & SAUL_CAT_MASK; switch (cat) { - case SAUL_CAT_UNDEF: - return "CLASS_UNDEF"; - case SAUL_CAT_ACT: - if (id < SAUL_ACT_NUMOF) { - result = actuators[id]; - } - break; - case SAUL_CAT_SENSE: - if (id < SAUL_SENSE_NUMOF) { - result = sensors[id]; - } - break; - default: - if (class_id == SAUL_CLASS_ANY) { - return "CLASS_ANY"; - } - break; + case SAUL_CAT_UNDEF: + return _class_undef; + case SAUL_CAT_ACT: + if (id < SAUL_ACT_NUMOF) { + result = actuators[id]; + } + break; + case SAUL_CAT_SENSE: + if (id < SAUL_SENSE_NUMOF) { + result = sensors[id]; + } + break; + default: + if (class_id == SAUL_CLASS_ANY) { + return _class_any; + } + break; } if (result == NULL) { - result = "CLASS_UNKNOWN"; + result = _class_unknown; } return result; +#endif +} + +void saul_class_print(uint8_t class_id) +{ + uint8_t id = class_id & SAUL_ID_MASK; + uint8_t cat = class_id & SAUL_CAT_MASK; + FLASH_ATTR const char *str = NULL; + + switch (cat) { + case SAUL_CAT_UNDEF: + str = _class_undef; + break; + case SAUL_CAT_ACT: + if (id < SAUL_ACT_NUMOF) { + str = actuators[id]; + } + break; + case SAUL_CAT_SENSE: + if (id < SAUL_SENSE_NUMOF) { + str = sensors[id]; + } + break; + default: + if (class_id == SAUL_CLASS_ANY) { + str = _class_any; + } + break; + } + + if (str) { + flash_print_str(str); + } +} + +ssize_t saul_class_write(char *dest, size_t max_size, uint8_t class_id) +{ + uint8_t id = class_id & SAUL_ID_MASK; + uint8_t cat = class_id & SAUL_CAT_MASK; + FLASH_ATTR const char *str = NULL; + + switch (cat) { + case SAUL_CAT_UNDEF: + str = _class_undef; + break; + case SAUL_CAT_ACT: + if (id < SAUL_ACT_NUMOF) { + str = actuators[id]; + } + break; + case SAUL_CAT_SENSE: + if (id < SAUL_SENSE_NUMOF) { + str = sensors[id]; + } + break; + default: + if (class_id == SAUL_CLASS_ANY) { + str = _class_any; + } + break; + } + + if (!str) { + return -EINVAL; + } + size_t len = flash_strlen(str); + if (dest) { + if (len > max_size) { + return -EOVERFLOW; + } + flash_memcpy(dest, str, len); + } + + return len; } diff --git a/sys/shell/cmds/saul_reg.c b/sys/shell/cmds/saul_reg.c index b153eae6ae..f3e60046e5 100644 --- a/sys/shell/cmds/saul_reg.c +++ b/sys/shell/cmds/saul_reg.c @@ -24,6 +24,7 @@ #include #include +#include "flash_utils.h" #include "saul_reg.h" #include "shell.h" @@ -47,8 +48,9 @@ static void probe(int num, saul_reg_t *dev) return; } /* print results */ - printf("Reading from #%i (%s|%s)\n", num, _devname(dev), - saul_class_to_str(dev->driver->type)); + printf("Reading from #%i (%s|", num, _devname(dev)); + saul_class_print(dev->driver->type); + printf(")\n"); phydat_dump(&res, dim); } @@ -70,14 +72,15 @@ static void list(void) int i = 0; if (dev) { - puts("ID\tClass\t\tName"); + printf("ID\tClass\t\tName\n"); } else { - puts("No devices found"); + printf("No devices found\n"); } while (dev) { - printf("#%i\t%s\t%s\n", - i++, saul_class_to_str(dev->driver->type), _devname(dev)); + printf("#%i\t", i++); + saul_class_print(dev->driver->type); + printf("\t%s\n", _devname(dev)); dev = dev->next; } } @@ -88,10 +91,11 @@ static void read(int argc, char **argv) saul_reg_t *dev; if (argc < 3) { - printf("usage: %s %s |all\n", argv[0], argv[1]); + printf("usage: %s %s |all\n", + argv[0], argv[1]); return; } - if (strcmp(argv[2], "all") == 0) { + if (flash_strcmp(argv[2], TO_FLASH("all")) == 0) { probe_all(); return; } @@ -99,7 +103,7 @@ static void read(int argc, char **argv) num = atoi(argv[2]); dev = saul_reg_find_nth(num); if (dev == NULL) { - puts("error: undefined device id given"); + printf("error: undefined device id given\n"); return; } probe(num, dev); @@ -113,13 +117,13 @@ static void write(int argc, char **argv) if (argc < 4) { printf("usage: %s %s [ [ -#include "xtimer.h" +#include "flash_utils.h" #include "phydat.h" #include "saul_reg.h" +#include "xtimer.h" /** * @brief Read the sensors every second @@ -44,7 +45,7 @@ int main(void) while (dev) { int dim = saul_reg_read(dev, &res); - printf("\nDev: %s\tType: %s\n", dev->name, + printf("\nDev: %s\tType: %" PRIsflash "\n", dev->name, saul_class_to_str(dev->driver->type)); phydat_dump(&res, dim); dev = dev->next; diff --git a/tests/saul/main.c b/tests/saul/main.c index 1442f3197c..4695bc2967 100644 --- a/tests/saul/main.c +++ b/tests/saul/main.c @@ -19,9 +19,10 @@ #include -#include "xtimer.h" +#include "flash_utils.h" #include "phydat.h" #include "saul_reg.h" +#include "xtimer.h" /** * @brief Read th sensors every second @@ -45,7 +46,7 @@ int main(void) while (dev) { int dim = saul_reg_read(dev, &res); - printf("\nDev: %s\tType: %s\n", dev->name, + printf("\nDev: %s\tType: %" PRIsflash "\n", dev->name, saul_class_to_str(dev->driver->type)); phydat_dump(&res, dim); dev = dev->next; From 7e58bea1bd13b364d179be6a1ae1f655c41ca877 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Thu, 23 Feb 2023 15:49:44 +0100 Subject: [PATCH 11/11] examples,tests: Update `Makefile.ci`s --- examples/benchmark_udp/Makefile.ci | 3 --- examples/cord_ep/Makefile.ci | 2 -- examples/cord_epsim/Makefile.ci | 2 -- examples/cord_lc/Makefile.ci | 2 -- examples/default/Makefile.ci | 9 +-------- examples/emcute_mqttsn/Makefile.ci | 2 -- examples/filesystem/Makefile.ci | 1 - examples/gcoap/Makefile.ci | 2 -- examples/gcoap_block_server/Makefile.ci | 2 -- examples/gcoap_fileserver/Makefile.ci | 4 +--- examples/gnrc_border_router/Makefile.ci | 2 +- examples/gnrc_lorawan/Makefile.ci | 2 -- examples/gnrc_networking/Makefile.ci | 4 +--- examples/gnrc_networking_subnets/Makefile.ci | 2 -- examples/ipc_pingpong/Makefile.ci | 5 ----- examples/lorawan/Makefile.ci | 2 +- examples/nanocoap_server/Makefile.ci | 2 -- examples/ndn-ping/Makefile.ci | 4 ---- examples/posix_sockets/Makefile.ci | 2 -- examples/saul/Makefile.ci | 9 --------- examples/sniffer/Makefile.ci | 2 +- examples/spectrum-scanner/Makefile.ci | 2 +- examples/suit_update/Makefile.ci | 6 ------ examples/telnet_server/Makefile.ci | 4 +--- examples/thread_duel/Makefile.ci | 6 ------ tests/bench_msg_pingpong/Makefile.ci | 5 ----- tests/bench_mutex_pingpong/Makefile.ci | 5 ----- tests/bench_periph_gpio_ll/Makefile.ci | 5 ----- tests/bench_sizeof_coretypes/Makefile.ci | 6 ------ tests/bench_sys_atomic_utils/Makefile.ci | 2 +- tests/bench_sys_base64/Makefile.ci | 5 ----- tests/bench_thread_flags_pingpong/Makefile.ci | 5 ----- tests/bench_thread_yield_pingpong/Makefile.ci | 5 ----- tests/bench_xtimer/Makefile.ci | 6 ------ tests/bench_ztimer/Makefile.ci | 6 ------ tests/bloom_bytes/Makefile.ci | 1 - tests/can_trx/Makefile.ci | 6 ------ tests/candev/Makefile.ci | 5 ----- tests/congure_reno/Makefile.ci | 12 ++++++------ tests/conn_can/Makefile.ci | 8 -------- tests/driver_adt7310/Makefile.ci | 4 ---- tests/driver_at/Makefile.ci | 1 - tests/driver_at24cxxx/Makefile.ci | 5 ----- tests/driver_at30tse75x/Makefile.ci | 6 ------ tests/driver_at86rf215/Makefile.ci | 2 +- tests/driver_at86rf2xx_aes/Makefile.ci | 5 ----- tests/driver_ata8520e/Makefile.ci | 1 - tests/driver_bme680/Makefile.ci | 2 -- tests/driver_bmx055/Makefile.ci | 6 ------ tests/driver_bmx280/Makefile.ci | 5 ----- tests/driver_cc110x/Makefile.ci | 2 +- tests/driver_cc2420/Makefile.ci | 2 +- tests/driver_ds1307/Makefile.ci | 5 ----- tests/driver_ds3231/Makefile.ci | 1 - tests/driver_feetech/Makefile.ci | 1 - tests/driver_hsc/Makefile.ci | 1 - tests/driver_kw2xrf/Makefile.ci | 6 ------ tests/driver_mcp47xx/Makefile.ci | 6 ------ tests/driver_mpu9x50/Makefile.ci | 6 ------ tests/driver_mrf24j40/Makefile.ci | 6 ------ tests/driver_nrf24l01p_ng/Makefile.ci | 4 ---- tests/driver_nvram_spi/Makefile.ci | 6 ------ tests/driver_pca9685/Makefile.ci | 6 ------ tests/driver_pcf857x/Makefile.ci | 6 ------ tests/driver_pir/Makefile.ci | 6 ------ tests/driver_servo/Makefile.ci | 6 ------ tests/driver_sht1x/Makefile.ci | 1 - tests/driver_si1133/Makefile.ci | 6 ------ tests/driver_sps30/Makefile.ci | 5 ----- tests/driver_srf02/Makefile.ci | 6 ------ tests/driver_sx126x/Makefile.ci | 3 +-- tests/driver_tsl4531x/Makefile.ci | 6 ------ tests/driver_w5100/Makefile.ci | 2 -- tests/driver_xbee/Makefile.ci | 2 -- tests/emcute/Makefile.ci | 2 +- tests/event_threads/Makefile.ci | 5 ----- tests/event_wait_timeout/Makefile.ci | 5 ----- tests/event_wait_timeout_ztimer/Makefile.ci | 5 ----- tests/event_ztimer/Makefile.ci | 5 ----- tests/events/Makefile.ci | 1 - tests/evtimer_msg/Makefile.ci | 1 - tests/evtimer_underflow/Makefile.ci | 1 - tests/gnrc_dhcpv6_client/Makefile.ci | 2 -- tests/gnrc_dhcpv6_client_6lbr/Makefile.ci | 2 +- tests/gnrc_dhcpv6_client_stateless/Makefile.ci | 1 - tests/gnrc_dhcpv6_relay/Makefile.ci | 4 ---- tests/gnrc_ipv6_ext/Makefile.ci | 4 ---- tests/gnrc_ipv6_ext_frag/Makefile.ci | 2 +- tests/gnrc_ipv6_ext_opt/Makefile.ci | 4 ---- tests/gnrc_ipv6_nib_dns/Makefile.ci | 4 ---- tests/gnrc_lorawan/Makefile.ci | 1 - tests/gnrc_lorawan_11/Makefile.ci | 7 ------- tests/gnrc_netif/Makefile.ci | 2 +- tests/gnrc_rpl/Makefile.ci | 2 -- tests/gnrc_sixlowpan_frag_minfwd/Makefile.ci | 2 +- .../gnrc_sixlowpan_frag_sfr_congure/Makefile.ci | 1 - tests/gnrc_sock_dns/Makefile.ci | 4 ---- tests/gnrc_sock_dodtls/Makefile.ci | 13 ------------- tests/gnrc_sock_neterr/Makefile.ci | 2 +- tests/gnrc_sock_udp/Makefile.ci | 1 - tests/gnrc_udp/Makefile.ci | 2 +- tests/heap_cmd/Makefile.ci | 5 ----- tests/ieee802154_hal/Makefile.ci | 6 ------ tests/irq/Makefile.ci | 6 ------ tests/isr_yield_higher/Makefile.ci | 6 ------ tests/l2util/Makefile.ci | 1 - tests/malloc_thread_safety/Makefile.ci | 1 - tests/memarray/Makefile.ci | 5 ----- tests/msg_send_receive/Makefile.ci | 1 - tests/msg_try_receive/Makefile.ci | 5 ----- tests/mtd_raw/Makefile.ci | 6 ------ tests/nanocoap_cli/Makefile.ci | 10 ---------- tests/pbkdf2/Makefile.ci | 5 ----- tests/periph_eeprom/Makefile.ci | 6 ------ tests/periph_gpio_arduino/Makefile.ci | 5 ----- tests/periph_i2c/Makefile.ci | 1 - tests/periph_pwm/Makefile.ci | 6 ------ tests/periph_uart_mode/Makefile.ci | 6 ------ tests/periph_wdt/Makefile.ci | 5 ----- tests/phydat_unix/Makefile.ci | 5 ----- tests/pkg_arduino_adafruit_sensor/Makefile.ci | 10 +++++----- tests/pkg_arduino_sdi_12/Makefile.ci | 3 --- .../pkg_cryptoauthlib_internal-tests/Makefile.ci | 4 +--- tests/pkg_elk/Makefile.ci | 6 ------ tests/pkg_emlearn/Makefile.ci | 6 ------ tests/pkg_fatfs/Makefile.ci | 2 +- tests/pkg_fatfs_vfs/Makefile.ci | 5 ++--- tests/pkg_libb2/Makefile.ci | 12 ------------ tests/pkg_littlefs2/Makefile.ci | 1 - tests/pkg_mbedtls/Makefile.ci | 3 +-- tests/pkg_micro-ecc/Makefile.ci | 1 - tests/pkg_microcoap/Makefile.ci | 2 -- tests/pkg_nanopb/Makefile.ci | 2 -- tests/pkg_nanors/Makefile.ci | 16 ++++++++-------- tests/pkg_tflite-micro/Makefile.ci | 2 +- tests/pkg_tiny-asn1/Makefile.ci | 6 ------ tests/pkg_tweetnacl/Makefile.ci | 5 ----- tests/pkg_ubasic/Makefile.ci | 1 - tests/pthread_condition_variable/Makefile.ci | 5 ----- tests/pthread_cooperation/Makefile.ci | 12 ------------ tests/pthread_tls/Makefile.ci | 5 ----- tests/riotboot_flashwrite/Makefile.ci | 7 ------- tests/rng/Makefile.ci | 1 - tests/saul/Makefile.ci | 8 -------- tests/sched_change_priority/Makefile.ci | 1 - tests/sched_testing/Makefile.ci | 6 ------ tests/senml_saul/Makefile.ci | 1 - tests/shell/Makefile.ci | 6 ------ tests/shell_lock/Makefile.ci | 5 ----- tests/sntp/Makefile.ci | 2 -- tests/sock_udp_aux/Makefile.ci | 5 ----- tests/struct_tm_utility/Makefile.ci | 6 ------ tests/sys_arduino/Makefile.ci | 3 --- tests/sys_arduino_lib/Makefile.ci | 4 ---- tests/sys_sched_round_robin/Makefile.ci | 3 +-- tests/sys_sema_inv/Makefile.ci | 4 ---- tests/thread_exit/Makefile.ci | 1 - tests/thread_flags/Makefile.ci | 1 - tests/thread_msg_block_w_queue/Makefile.ci | 5 ----- tests/thread_msg_block_wo_queue/Makefile.ci | 5 ----- tests/thread_race/Makefile.ci | 6 ------ tests/thread_stack_alignment/Makefile.ci | 1 - tests/trace/Makefile.ci | 6 ------ tests/unittests/Makefile.ci | 13 ------------- tests/vfs_default/Makefile.ci | 1 - tests/xtimer_hang/Makefile.ci | 1 - tests/xtimer_msg/Makefile.ci | 1 - tests/xtimer_periodic_wakeup/Makefile.ci | 1 - tests/xtimer_rmutex_lock_timeout/Makefile.ci | 5 ----- tests/ztimer64_msg/Makefile.ci | 1 - tests/ztimer_msg/Makefile.ci | 1 - tests/ztimer_rmutex_lock_timeout/Makefile.ci | 5 ----- tests/ztimer_underflow/Makefile.ci | 6 ------ tests/ztimer_xsec/Makefile.ci | 6 ------ 174 files changed, 46 insertions(+), 670 deletions(-) delete mode 100644 examples/saul/Makefile.ci delete mode 100644 tests/saul/Makefile.ci diff --git a/examples/benchmark_udp/Makefile.ci b/examples/benchmark_udp/Makefile.ci index f2bbaa884b..c30d889480 100644 --- a/examples/benchmark_udp/Makefile.ci +++ b/examples/benchmark_udp/Makefile.ci @@ -4,10 +4,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ - atxmega-a1u-xpro \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ derfmega128 \ @@ -15,7 +13,6 @@ BOARD_INSUFFICIENT_MEMORY := \ ict_panhead \ im880b \ m1284p \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/cord_ep/Makefile.ci b/examples/cord_ep/Makefile.ci index e1a8fa544a..89f70a4f74 100644 --- a/examples/cord_ep/Makefile.ci +++ b/examples/cord_ep/Makefile.ci @@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -14,7 +13,6 @@ BOARD_INSUFFICIENT_MEMORY := \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/cord_epsim/Makefile.ci b/examples/cord_epsim/Makefile.ci index c9ef6473c4..689f60c700 100644 --- a/examples/cord_epsim/Makefile.ci +++ b/examples/cord_epsim/Makefile.ci @@ -10,8 +10,6 @@ BOARD_INSUFFICIENT_MEMORY := \ hifive1 \ hifive1b \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/examples/cord_lc/Makefile.ci b/examples/cord_lc/Makefile.ci index c4a3094bcf..f839791fbb 100644 --- a/examples/cord_lc/Makefile.ci +++ b/examples/cord_lc/Makefile.ci @@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -15,7 +14,6 @@ BOARD_INSUFFICIENT_MEMORY := \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/default/Makefile.ci b/examples/default/Makefile.ci index c821b0396c..b9ff275375 100644 --- a/examples/default/Makefile.ci +++ b/examples/default/Makefile.ci @@ -1,10 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ - stk3200 \ - stm32f030f4-demo \ + nucleo-l011k4 \ # diff --git a/examples/emcute_mqttsn/Makefile.ci b/examples/emcute_mqttsn/Makefile.ci index da01114850..72ab15ba95 100644 --- a/examples/emcute_mqttsn/Makefile.ci +++ b/examples/emcute_mqttsn/Makefile.ci @@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -14,7 +13,6 @@ BOARD_INSUFFICIENT_MEMORY := \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/filesystem/Makefile.ci b/examples/filesystem/Makefile.ci index eb1520a8a0..c9ac296b6c 100644 --- a/examples/filesystem/Makefile.ci +++ b/examples/filesystem/Makefile.ci @@ -8,5 +8,4 @@ BOARD_INSUFFICIENT_MEMORY := \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ - waspmote-pro \ # diff --git a/examples/gcoap/Makefile.ci b/examples/gcoap/Makefile.ci index 7090c27c41..7eafbceeda 100644 --- a/examples/gcoap/Makefile.ci +++ b/examples/gcoap/Makefile.ci @@ -4,14 +4,12 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/gcoap_block_server/Makefile.ci b/examples/gcoap_block_server/Makefile.ci index 43a6d8fd95..ca15cb525a 100644 --- a/examples/gcoap_block_server/Makefile.ci +++ b/examples/gcoap_block_server/Makefile.ci @@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -12,7 +11,6 @@ BOARD_INSUFFICIENT_MEMORY := \ derfmega128 \ i-nucleo-lrwan1 \ m1284p \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/gcoap_fileserver/Makefile.ci b/examples/gcoap_fileserver/Makefile.ci index 8d451ff5f5..b4fb325117 100644 --- a/examples/gcoap_fileserver/Makefile.ci +++ b/examples/gcoap_fileserver/Makefile.ci @@ -4,16 +4,14 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/gnrc_border_router/Makefile.ci b/examples/gnrc_border_router/Makefile.ci index 8cc92ed649..f85cd60e72 100644 --- a/examples/gnrc_border_router/Makefile.ci +++ b/examples/gnrc_border_router/Makefile.ci @@ -12,9 +12,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 \ diff --git a/examples/gnrc_lorawan/Makefile.ci b/examples/gnrc_lorawan/Makefile.ci index 3797ffe80f..b263713afb 100644 --- a/examples/gnrc_lorawan/Makefile.ci +++ b/examples/gnrc_lorawan/Makefile.ci @@ -1,7 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ arduino-leonardo \ - arduino-mega2560 \ arduino-nano \ arduino-uno \ atmega328p \ @@ -17,6 +16,5 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32f030f4-demo \ stm32f0discovery \ telosb \ - waspmote-pro \ z1 \ # diff --git a/examples/gnrc_networking/Makefile.ci b/examples/gnrc_networking/Makefile.ci index 8d451ff5f5..b4fb325117 100644 --- a/examples/gnrc_networking/Makefile.ci +++ b/examples/gnrc_networking/Makefile.ci @@ -4,16 +4,14 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/gnrc_networking_subnets/Makefile.ci b/examples/gnrc_networking_subnets/Makefile.ci index d2e45cf1e9..ed611154f9 100644 --- a/examples/gnrc_networking_subnets/Makefile.ci +++ b/examples/gnrc_networking_subnets/Makefile.ci @@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -13,7 +12,6 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ ict_panhead \ m1284p \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/ipc_pingpong/Makefile.ci b/examples/ipc_pingpong/Makefile.ci index ffa12570d1..43bbe6db85 100644 --- a/examples/ipc_pingpong/Makefile.ci +++ b/examples/ipc_pingpong/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/examples/lorawan/Makefile.ci b/examples/lorawan/Makefile.ci index 4f0caf68cd..d79a66f7ce 100644 --- a/examples/lorawan/Makefile.ci +++ b/examples/lorawan/Makefile.ci @@ -3,8 +3,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/examples/nanocoap_server/Makefile.ci b/examples/nanocoap_server/Makefile.ci index 8127117e89..b4f0456086 100644 --- a/examples/nanocoap_server/Makefile.ci +++ b/examples/nanocoap_server/Makefile.ci @@ -7,9 +7,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/examples/ndn-ping/Makefile.ci b/examples/ndn-ping/Makefile.ci index e1c8c27d32..5a6ef28cf2 100644 --- a/examples/ndn-ping/Makefile.ci +++ b/examples/ndn-ping/Makefile.ci @@ -4,15 +4,11 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/examples/posix_sockets/Makefile.ci b/examples/posix_sockets/Makefile.ci index 4c865632d9..1e79f7c93b 100644 --- a/examples/posix_sockets/Makefile.ci +++ b/examples/posix_sockets/Makefile.ci @@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -13,7 +12,6 @@ BOARD_INSUFFICIENT_MEMORY := \ derfmega128 \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/examples/saul/Makefile.ci b/examples/saul/Makefile.ci deleted file mode 100644 index ef475200bf..0000000000 --- a/examples/saul/Makefile.ci +++ /dev/null @@ -1,9 +0,0 @@ -BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ - stm32f030f4-demo \ - # diff --git a/examples/sniffer/Makefile.ci b/examples/sniffer/Makefile.ci index 4b03fc1ce2..34fdb7387d 100644 --- a/examples/sniffer/Makefile.ci +++ b/examples/sniffer/Makefile.ci @@ -4,8 +4,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ nucleo-f030r8 \ diff --git a/examples/spectrum-scanner/Makefile.ci b/examples/spectrum-scanner/Makefile.ci index 613af759a7..67fd4b1038 100644 --- a/examples/spectrum-scanner/Makefile.ci +++ b/examples/spectrum-scanner/Makefile.ci @@ -3,8 +3,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ nucleo-f030r8 \ diff --git a/examples/suit_update/Makefile.ci b/examples/suit_update/Makefile.ci index e41ddfdbb5..af5fa2da19 100644 --- a/examples/suit_update/Makefile.ci +++ b/examples/suit_update/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-mega2560 \ - arduino-nano \ - arduino-uno \ - atmega328p \ b-l072z-lrwan1 \ blackpill-stm32f103c8 \ blackpill-stm32f103cb \ @@ -33,6 +28,5 @@ BOARD_INSUFFICIENT_MEMORY := \ stk3200 \ stm32f0discovery \ telosb \ - waspmote-pro \ z1 \ # diff --git a/examples/telnet_server/Makefile.ci b/examples/telnet_server/Makefile.ci index 44258ba3ab..7eafbceeda 100644 --- a/examples/telnet_server/Makefile.ci +++ b/examples/telnet_server/Makefile.ci @@ -4,14 +4,12 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ @@ -24,8 +22,8 @@ BOARD_INSUFFICIENT_MEMORY := \ nucleo-l031k6 \ nucleo-l053r8 \ samd10-xmini \ - stk3200 \ slstk3400a \ + stk3200 \ stm32f030f4-demo \ stm32f0discovery \ stm32f7508-dk \ diff --git a/examples/thread_duel/Makefile.ci b/examples/thread_duel/Makefile.ci index d5368f025e..a7dbe5c44d 100644 --- a/examples/thread_duel/Makefile.ci +++ b/examples/thread_duel/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ samd10-xmini \ diff --git a/tests/bench_msg_pingpong/Makefile.ci b/tests/bench_msg_pingpong/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/bench_msg_pingpong/Makefile.ci +++ b/tests/bench_msg_pingpong/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/bench_mutex_pingpong/Makefile.ci b/tests/bench_mutex_pingpong/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/bench_mutex_pingpong/Makefile.ci +++ b/tests/bench_mutex_pingpong/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/bench_periph_gpio_ll/Makefile.ci b/tests/bench_periph_gpio_ll/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/bench_periph_gpio_ll/Makefile.ci +++ b/tests/bench_periph_gpio_ll/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/bench_sizeof_coretypes/Makefile.ci b/tests/bench_sizeof_coretypes/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/bench_sizeof_coretypes/Makefile.ci +++ b/tests/bench_sizeof_coretypes/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/bench_sys_atomic_utils/Makefile.ci b/tests/bench_sys_atomic_utils/Makefile.ci index fa21afb84b..c9ac296b6c 100644 --- a/tests/bench_sys_atomic_utils/Makefile.ci +++ b/tests/bench_sys_atomic_utils/Makefile.ci @@ -3,8 +3,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/bench_sys_base64/Makefile.ci b/tests/bench_sys_base64/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/bench_sys_base64/Makefile.ci +++ b/tests/bench_sys_base64/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/bench_thread_flags_pingpong/Makefile.ci b/tests/bench_thread_flags_pingpong/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/bench_thread_flags_pingpong/Makefile.ci +++ b/tests/bench_thread_flags_pingpong/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/bench_thread_yield_pingpong/Makefile.ci b/tests/bench_thread_yield_pingpong/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/bench_thread_yield_pingpong/Makefile.ci +++ b/tests/bench_thread_yield_pingpong/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/bench_xtimer/Makefile.ci b/tests/bench_xtimer/Makefile.ci index 4fca3c400b..16a5d8979e 100644 --- a/tests/bench_xtimer/Makefile.ci +++ b/tests/bench_xtimer/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ - atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ im880b \ nucleo-l011k4 \ diff --git a/tests/bench_ztimer/Makefile.ci b/tests/bench_ztimer/Makefile.ci index 4fca3c400b..16a5d8979e 100644 --- a/tests/bench_ztimer/Makefile.ci +++ b/tests/bench_ztimer/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ - atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ im880b \ nucleo-l011k4 \ diff --git a/tests/bloom_bytes/Makefile.ci b/tests/bloom_bytes/Makefile.ci index 497d4639bc..0831a97503 100644 --- a/tests/bloom_bytes/Makefile.ci +++ b/tests/bloom_bytes/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/can_trx/Makefile.ci b/tests/can_trx/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/can_trx/Makefile.ci +++ b/tests/can_trx/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/candev/Makefile.ci b/tests/candev/Makefile.ci index 8a295bec2a..dac7727874 100644 --- a/tests/candev/Makefile.ci +++ b/tests/candev/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ stm32f030f4-demo \ # diff --git a/tests/congure_reno/Makefile.ci b/tests/congure_reno/Makefile.ci index 4c852cf055..b5de876337 100644 --- a/tests/congure_reno/Makefile.ci +++ b/tests/congure_reno/Makefile.ci @@ -1,9 +1,9 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ - nucleo-l011k4 \ + arduino-leonardo \ + arduino-nano \ + arduino-uno \ + atmega328p \ + atmega328p-xplained-mini \ + nucleo-l011k4 \ # diff --git a/tests/conn_can/Makefile.ci b/tests/conn_can/Makefile.ci index a57018e83e..53f7ffa5a3 100644 --- a/tests/conn_can/Makefile.ci +++ b/tests/conn_can/Makefile.ci @@ -1,12 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ airfy-beacon \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-mega2560 \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ calliope-mini \ hifive1 \ hifive1b \ @@ -34,7 +27,6 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32f030f4-demo \ stm32l0538-disco \ telosb \ - waspmote-pro \ yunjia-nrf51822 \ z1 \ # diff --git a/tests/driver_adt7310/Makefile.ci b/tests/driver_adt7310/Makefile.ci index 341a01d592..be86b0d4bb 100644 --- a/tests/driver_adt7310/Makefile.ci +++ b/tests/driver_adt7310/Makefile.ci @@ -1,8 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-mega2560 \ - mega-xplained \ - microduino-corerf \ stm32f030f4-demo \ - waspmote-pro \ zigduino \ # diff --git a/tests/driver_at/Makefile.ci b/tests/driver_at/Makefile.ci index 455352b8ec..5afc390e20 100644 --- a/tests/driver_at/Makefile.ci +++ b/tests/driver_at/Makefile.ci @@ -5,7 +5,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-uno \ atmega328p \ atmega328p-xplained-mini \ - atxmega-a3bu-xplained \ nucleo-f031k6 \ nucleo-l011k4 \ samd10-xmini \ diff --git a/tests/driver_at24cxxx/Makefile.ci b/tests/driver_at24cxxx/Makefile.ci index 7b28dc1447..1e025a2333 100644 --- a/tests/driver_at24cxxx/Makefile.ci +++ b/tests/driver_at24cxxx/Makefile.ci @@ -1,7 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_at30tse75x/Makefile.ci b/tests/driver_at30tse75x/Makefile.ci index f9d31d2834..694253c2b8 100644 --- a/tests/driver_at30tse75x/Makefile.ci +++ b/tests/driver_at30tse75x/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ # diff --git a/tests/driver_at86rf215/Makefile.ci b/tests/driver_at86rf215/Makefile.ci index 4f0caf68cd..d79a66f7ce 100644 --- a/tests/driver_at86rf215/Makefile.ci +++ b/tests/driver_at86rf215/Makefile.ci @@ -3,8 +3,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/driver_at86rf2xx_aes/Makefile.ci b/tests/driver_at86rf2xx_aes/Makefile.ci index 9782680702..e2bfd595ea 100644 --- a/tests/driver_at86rf2xx_aes/Makefile.ci +++ b/tests/driver_at86rf2xx_aes/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/driver_ata8520e/Makefile.ci b/tests/driver_ata8520e/Makefile.ci index 966b237618..8a295bec2a 100644 --- a/tests/driver_ata8520e/Makefile.ci +++ b/tests/driver_ata8520e/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/driver_bme680/Makefile.ci b/tests/driver_bme680/Makefile.ci index 69024039a1..f165f2373c 100644 --- a/tests/driver_bme680/Makefile.ci +++ b/tests/driver_bme680/Makefile.ci @@ -1,6 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-uno \ chronos \ msb-430 \ msb-430h \ diff --git a/tests/driver_bmx055/Makefile.ci b/tests/driver_bmx055/Makefile.ci index 2532883f52..c79c55eff9 100644 --- a/tests/driver_bmx055/Makefile.ci +++ b/tests/driver_bmx055/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/driver_bmx280/Makefile.ci b/tests/driver_bmx280/Makefile.ci index 7b28dc1447..1e025a2333 100644 --- a/tests/driver_bmx280/Makefile.ci +++ b/tests/driver_bmx280/Makefile.ci @@ -1,7 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_cc110x/Makefile.ci b/tests/driver_cc110x/Makefile.ci index b1c5a25dfd..445045ed31 100644 --- a/tests/driver_cc110x/Makefile.ci +++ b/tests/driver_cc110x/Makefile.ci @@ -9,8 +9,8 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ derfmega128 \ hifive1 \ hifive1b \ diff --git a/tests/driver_cc2420/Makefile.ci b/tests/driver_cc2420/Makefile.ci index fa21afb84b..c9ac296b6c 100644 --- a/tests/driver_cc2420/Makefile.ci +++ b/tests/driver_cc2420/Makefile.ci @@ -3,8 +3,8 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/driver_ds1307/Makefile.ci b/tests/driver_ds1307/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/driver_ds1307/Makefile.ci +++ b/tests/driver_ds1307/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/driver_ds3231/Makefile.ci b/tests/driver_ds3231/Makefile.ci index 1d21bb5900..ae9d0602a1 100644 --- a/tests/driver_ds3231/Makefile.ci +++ b/tests/driver_ds3231/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/driver_feetech/Makefile.ci b/tests/driver_feetech/Makefile.ci index ef475200bf..da07e73c70 100644 --- a/tests/driver_feetech/Makefile.ci +++ b/tests/driver_feetech/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/driver_hsc/Makefile.ci b/tests/driver_hsc/Makefile.ci index 1152ca53bc..7b28dc1447 100644 --- a/tests/driver_hsc/Makefile.ci +++ b/tests/driver_hsc/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/driver_kw2xrf/Makefile.ci b/tests/driver_kw2xrf/Makefile.ci index fa21afb84b..e2bfd595ea 100644 --- a/tests/driver_kw2xrf/Makefile.ci +++ b/tests/driver_kw2xrf/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p-xplained-mini \ - atmega328p \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/driver_mcp47xx/Makefile.ci b/tests/driver_mcp47xx/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/driver_mcp47xx/Makefile.ci +++ b/tests/driver_mcp47xx/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_mpu9x50/Makefile.ci b/tests/driver_mpu9x50/Makefile.ci index f9d31d2834..694253c2b8 100644 --- a/tests/driver_mpu9x50/Makefile.ci +++ b/tests/driver_mpu9x50/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ # diff --git a/tests/driver_mrf24j40/Makefile.ci b/tests/driver_mrf24j40/Makefile.ci index fa21afb84b..e2bfd595ea 100644 --- a/tests/driver_mrf24j40/Makefile.ci +++ b/tests/driver_mrf24j40/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p-xplained-mini \ - atmega328p \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/driver_nrf24l01p_ng/Makefile.ci b/tests/driver_nrf24l01p_ng/Makefile.ci index fae7c3a9b7..63c289fc11 100644 --- a/tests/driver_nrf24l01p_ng/Makefile.ci +++ b/tests/driver_nrf24l01p_ng/Makefile.ci @@ -4,16 +4,12 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega128rfa1 \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/driver_nvram_spi/Makefile.ci b/tests/driver_nvram_spi/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/driver_nvram_spi/Makefile.ci +++ b/tests/driver_nvram_spi/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_pca9685/Makefile.ci b/tests/driver_pca9685/Makefile.ci index cfafe6e446..a64d31b68c 100644 --- a/tests/driver_pca9685/Makefile.ci +++ b/tests/driver_pca9685/Makefile.ci @@ -1,9 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ atmega32u4 \ # diff --git a/tests/driver_pcf857x/Makefile.ci b/tests/driver_pcf857x/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/driver_pcf857x/Makefile.ci +++ b/tests/driver_pcf857x/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_pir/Makefile.ci b/tests/driver_pir/Makefile.ci index d5368f025e..a7dbe5c44d 100644 --- a/tests/driver_pir/Makefile.ci +++ b/tests/driver_pir/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ samd10-xmini \ diff --git a/tests/driver_servo/Makefile.ci b/tests/driver_servo/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/driver_servo/Makefile.ci +++ b/tests/driver_servo/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_sht1x/Makefile.ci b/tests/driver_sht1x/Makefile.ci index c9ac296b6c..9782680702 100644 --- a/tests/driver_sht1x/Makefile.ci +++ b/tests/driver_sht1x/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/driver_si1133/Makefile.ci b/tests/driver_si1133/Makefile.ci index cfafe6e446..a64d31b68c 100644 --- a/tests/driver_si1133/Makefile.ci +++ b/tests/driver_si1133/Makefile.ci @@ -1,9 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ atmega32u4 \ # diff --git a/tests/driver_sps30/Makefile.ci b/tests/driver_sps30/Makefile.ci index 856c141c78..694253c2b8 100644 --- a/tests/driver_sps30/Makefile.ci +++ b/tests/driver_sps30/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ # diff --git a/tests/driver_srf02/Makefile.ci b/tests/driver_srf02/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/driver_srf02/Makefile.ci +++ b/tests/driver_srf02/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_sx126x/Makefile.ci b/tests/driver_sx126x/Makefile.ci index 2689ec452b..c9ac296b6c 100644 --- a/tests/driver_sx126x/Makefile.ci +++ b/tests/driver_sx126x/Makefile.ci @@ -6,7 +6,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ nucleo-l011k4 \ - stm32f030f4-demo \ samd10-xmini \ - waspmote-pro \ + stm32f030f4-demo \ # diff --git a/tests/driver_tsl4531x/Makefile.ci b/tests/driver_tsl4531x/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/driver_tsl4531x/Makefile.ci +++ b/tests/driver_tsl4531x/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/driver_w5100/Makefile.ci b/tests/driver_w5100/Makefile.ci index 28ea82d339..f09307cf04 100644 --- a/tests/driver_w5100/Makefile.ci +++ b/tests/driver_w5100/Makefile.ci @@ -1,7 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ arduino-leonardo \ - arduino-mega2560 \ arduino-nano \ arduino-uno \ atmega328p \ @@ -24,5 +23,4 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32f030f4-demo \ stm32f0discovery \ stm32l0538-disco \ - waspmote-pro \ # diff --git a/tests/driver_xbee/Makefile.ci b/tests/driver_xbee/Makefile.ci index 2212f7c02f..92c8774109 100644 --- a/tests/driver_xbee/Makefile.ci +++ b/tests/driver_xbee/Makefile.ci @@ -1,7 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ arduino-leonardo \ - arduino-mega2560 \ arduino-nano \ arduino-uno \ atmega328p \ @@ -15,5 +14,4 @@ BOARD_INSUFFICIENT_MEMORY := \ stk3200 \ stm32f030f4-demo \ stm32f0discovery \ - waspmote-pro \ # diff --git a/tests/emcute/Makefile.ci b/tests/emcute/Makefile.ci index 46541fca33..086f65c00d 100644 --- a/tests/emcute/Makefile.ci +++ b/tests/emcute/Makefile.ci @@ -12,9 +12,9 @@ BOARD_INSUFFICIENT_MEMORY := \ b-l072z-lrwan1 \ blackpill-stm32f103c8 \ blackpill-stm32f103cb \ + bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ bluepill-stm32f103cb \ - bluepill-stm32f030c8 \ calliope-mini \ cc2650-launchpad \ cc2650stk \ diff --git a/tests/event_threads/Makefile.ci b/tests/event_threads/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/event_threads/Makefile.ci +++ b/tests/event_threads/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/event_wait_timeout/Makefile.ci b/tests/event_wait_timeout/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/event_wait_timeout/Makefile.ci +++ b/tests/event_wait_timeout/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/event_wait_timeout_ztimer/Makefile.ci b/tests/event_wait_timeout_ztimer/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/event_wait_timeout_ztimer/Makefile.ci +++ b/tests/event_wait_timeout_ztimer/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/event_ztimer/Makefile.ci b/tests/event_ztimer/Makefile.ci index b5de876337..82513734a5 100644 --- a/tests/event_ztimer/Makefile.ci +++ b/tests/event_ztimer/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/events/Makefile.ci b/tests/events/Makefile.ci index b5de876337..69c36480c6 100644 --- a/tests/events/Makefile.ci +++ b/tests/events/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/evtimer_msg/Makefile.ci b/tests/evtimer_msg/Makefile.ci index 552883c80f..e3fe73a038 100644 --- a/tests/evtimer_msg/Makefile.ci +++ b/tests/evtimer_msg/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/evtimer_underflow/Makefile.ci b/tests/evtimer_underflow/Makefile.ci index 552883c80f..e3fe73a038 100644 --- a/tests/evtimer_underflow/Makefile.ci +++ b/tests/evtimer_underflow/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/gnrc_dhcpv6_client/Makefile.ci b/tests/gnrc_dhcpv6_client/Makefile.ci index 588ca0834e..75d4cebb35 100644 --- a/tests/gnrc_dhcpv6_client/Makefile.ci +++ b/tests/gnrc_dhcpv6_client/Makefile.ci @@ -4,7 +4,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ @@ -14,7 +13,6 @@ BOARD_INSUFFICIENT_MEMORY := \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/tests/gnrc_dhcpv6_client_6lbr/Makefile.ci b/tests/gnrc_dhcpv6_client_6lbr/Makefile.ci index 2a8db0f997..397599b27a 100644 --- a/tests/gnrc_dhcpv6_client_6lbr/Makefile.ci +++ b/tests/gnrc_dhcpv6_client_6lbr/Makefile.ci @@ -12,9 +12,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 \ diff --git a/tests/gnrc_dhcpv6_client_stateless/Makefile.ci b/tests/gnrc_dhcpv6_client_stateless/Makefile.ci index 70b3c70e98..cd27294772 100644 --- a/tests/gnrc_dhcpv6_client_stateless/Makefile.ci +++ b/tests/gnrc_dhcpv6_client_stateless/Makefile.ci @@ -8,7 +8,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega1284p \ atmega328p \ atmega328p-xplained-mini \ - atxmega-a1u-xpro \ atxmega-a3bu-xplained \ b-l072z-lrwan1 \ bluepill-stm32f030c8 \ diff --git a/tests/gnrc_dhcpv6_relay/Makefile.ci b/tests/gnrc_dhcpv6_relay/Makefile.ci index 588ca0834e..3fc446ba0a 100644 --- a/tests/gnrc_dhcpv6_relay/Makefile.ci +++ b/tests/gnrc_dhcpv6_relay/Makefile.ci @@ -4,18 +4,14 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ hifive1 \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/gnrc_ipv6_ext/Makefile.ci b/tests/gnrc_ipv6_ext/Makefile.ci index 732218edf5..e37668048d 100644 --- a/tests/gnrc_ipv6_ext/Makefile.ci +++ b/tests/gnrc_ipv6_ext/Makefile.ci @@ -4,18 +4,14 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ hifive1 \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/gnrc_ipv6_ext_frag/Makefile.ci b/tests/gnrc_ipv6_ext_frag/Makefile.ci index 769ca5cb6d..049408ff34 100644 --- a/tests/gnrc_ipv6_ext_frag/Makefile.ci +++ b/tests/gnrc_ipv6_ext_frag/Makefile.ci @@ -9,8 +9,8 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ derfmega128 \ hifive1 \ hifive1b \ diff --git a/tests/gnrc_ipv6_ext_opt/Makefile.ci b/tests/gnrc_ipv6_ext_opt/Makefile.ci index 45c3ecbfb1..9234e3d1ae 100644 --- a/tests/gnrc_ipv6_ext_opt/Makefile.ci +++ b/tests/gnrc_ipv6_ext_opt/Makefile.ci @@ -4,15 +4,11 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/gnrc_ipv6_nib_dns/Makefile.ci b/tests/gnrc_ipv6_nib_dns/Makefile.ci index 37a67482c3..05849940dc 100644 --- a/tests/gnrc_ipv6_nib_dns/Makefile.ci +++ b/tests/gnrc_ipv6_nib_dns/Makefile.ci @@ -4,15 +4,11 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/gnrc_lorawan/Makefile.ci b/tests/gnrc_lorawan/Makefile.ci index 79aeb399a4..c9ac296b6c 100644 --- a/tests/gnrc_lorawan/Makefile.ci +++ b/tests/gnrc_lorawan/Makefile.ci @@ -3,7 +3,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ nucleo-l011k4 \ diff --git a/tests/gnrc_lorawan_11/Makefile.ci b/tests/gnrc_lorawan_11/Makefile.ci index 79aeb399a4..e2bfd595ea 100644 --- a/tests/gnrc_lorawan_11/Makefile.ci +++ b/tests/gnrc_lorawan_11/Makefile.ci @@ -1,11 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega1284p \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/gnrc_netif/Makefile.ci b/tests/gnrc_netif/Makefile.ci index 06ddb17194..29bf9e302f 100644 --- a/tests/gnrc_netif/Makefile.ci +++ b/tests/gnrc_netif/Makefile.ci @@ -12,9 +12,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 \ diff --git a/tests/gnrc_rpl/Makefile.ci b/tests/gnrc_rpl/Makefile.ci index 3ac60d81ab..4a92674fd7 100644 --- a/tests/gnrc_rpl/Makefile.ci +++ b/tests/gnrc_rpl/Makefile.ci @@ -4,14 +4,12 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ microduino-corerf \ msb-430 \ msb-430h \ diff --git a/tests/gnrc_sixlowpan_frag_minfwd/Makefile.ci b/tests/gnrc_sixlowpan_frag_minfwd/Makefile.ci index 769ca5cb6d..049408ff34 100644 --- a/tests/gnrc_sixlowpan_frag_minfwd/Makefile.ci +++ b/tests/gnrc_sixlowpan_frag_minfwd/Makefile.ci @@ -9,8 +9,8 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ derfmega128 \ hifive1 \ hifive1b \ diff --git a/tests/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci b/tests/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci index c64c205a0f..e5261c0aa1 100644 --- a/tests/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci +++ b/tests/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci @@ -7,7 +7,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega1284p \ atmega328p \ atmega328p-xplained-mini \ - atxmega-a1u-xpro \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ blackpill-stm32f103cb \ diff --git a/tests/gnrc_sock_dns/Makefile.ci b/tests/gnrc_sock_dns/Makefile.ci index e4b54a9d8e..9f5c31c3d5 100644 --- a/tests/gnrc_sock_dns/Makefile.ci +++ b/tests/gnrc_sock_dns/Makefile.ci @@ -4,17 +4,13 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-mega2560 \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ - derfmega128 \ hifive1 \ hifive1b \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/gnrc_sock_dodtls/Makefile.ci b/tests/gnrc_sock_dodtls/Makefile.ci index d199f797cb..4fcb7992fd 100644 --- a/tests/gnrc_sock_dodtls/Makefile.ci +++ b/tests/gnrc_sock_dodtls/Makefile.ci @@ -1,23 +1,11 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-mega2560 \ - arduino-nano \ - arduino-uno \ - atmega1284p \ - atmega328p \ - atmega328p-xplained-mini \ - atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ - derfmega128 \ hifive1 \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ @@ -44,7 +32,6 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32mp157c-dk2 \ telosb \ thingy52 \ - waspmote-pro \ z1 \ zigduino \ # diff --git a/tests/gnrc_sock_neterr/Makefile.ci b/tests/gnrc_sock_neterr/Makefile.ci index c9a849f3da..0f18f55cfa 100644 --- a/tests/gnrc_sock_neterr/Makefile.ci +++ b/tests/gnrc_sock_neterr/Makefile.ci @@ -8,7 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ - nucleo-l031k6\ + nucleo-l031k6 \ samd10-xmini \ stk3200 \ stm32f030f4-demo \ diff --git a/tests/gnrc_sock_udp/Makefile.ci b/tests/gnrc_sock_udp/Makefile.ci index cf006f61d5..b8d664ccfc 100644 --- a/tests/gnrc_sock_udp/Makefile.ci +++ b/tests/gnrc_sock_udp/Makefile.ci @@ -1,7 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ arduino-leonardo \ - arduino-mega2560 \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/gnrc_udp/Makefile.ci b/tests/gnrc_udp/Makefile.ci index 31276e1bf3..8659c0e79e 100644 --- a/tests/gnrc_udp/Makefile.ci +++ b/tests/gnrc_udp/Makefile.ci @@ -10,8 +10,8 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ calliope-mini \ derfmega128 \ hifive1 \ diff --git a/tests/heap_cmd/Makefile.ci b/tests/heap_cmd/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/heap_cmd/Makefile.ci +++ b/tests/heap_cmd/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/ieee802154_hal/Makefile.ci b/tests/ieee802154_hal/Makefile.ci index d220123487..43bbe6db85 100644 --- a/tests/ieee802154_hal/Makefile.ci +++ b/tests/ieee802154_hal/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini\ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/irq/Makefile.ci b/tests/irq/Makefile.ci index 419215ecfd..43bbe6db85 100644 --- a/tests/irq/Makefile.ci +++ b/tests/irq/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/isr_yield_higher/Makefile.ci b/tests/isr_yield_higher/Makefile.ci index 419215ecfd..43bbe6db85 100644 --- a/tests/isr_yield_higher/Makefile.ci +++ b/tests/isr_yield_higher/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/l2util/Makefile.ci b/tests/l2util/Makefile.ci index 1152ca53bc..7b28dc1447 100644 --- a/tests/l2util/Makefile.ci +++ b/tests/l2util/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/malloc_thread_safety/Makefile.ci b/tests/malloc_thread_safety/Makefile.ci index b5de876337..69c36480c6 100644 --- a/tests/malloc_thread_safety/Makefile.ci +++ b/tests/malloc_thread_safety/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/memarray/Makefile.ci b/tests/memarray/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/memarray/Makefile.ci +++ b/tests/memarray/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/msg_send_receive/Makefile.ci b/tests/msg_send_receive/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/msg_send_receive/Makefile.ci +++ b/tests/msg_send_receive/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/msg_try_receive/Makefile.ci b/tests/msg_try_receive/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/msg_try_receive/Makefile.ci +++ b/tests/msg_try_receive/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/mtd_raw/Makefile.ci b/tests/mtd_raw/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/mtd_raw/Makefile.ci +++ b/tests/mtd_raw/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/nanocoap_cli/Makefile.ci b/tests/nanocoap_cli/Makefile.ci index 224d8bcb98..5eb0790d82 100644 --- a/tests/nanocoap_cli/Makefile.ci +++ b/tests/nanocoap_cli/Makefile.ci @@ -1,16 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-mega2560 \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ m1284p \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ @@ -31,7 +22,6 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32g0316-disco \ stm32l0538-disco \ telosb \ - waspmote-pro \ z1 \ zigduino \ # diff --git a/tests/pbkdf2/Makefile.ci b/tests/pbkdf2/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/pbkdf2/Makefile.ci +++ b/tests/pbkdf2/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/periph_eeprom/Makefile.ci b/tests/periph_eeprom/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/periph_eeprom/Makefile.ci +++ b/tests/periph_eeprom/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/periph_gpio_arduino/Makefile.ci b/tests/periph_gpio_arduino/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/periph_gpio_arduino/Makefile.ci +++ b/tests/periph_gpio_arduino/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/periph_i2c/Makefile.ci b/tests/periph_i2c/Makefile.ci index f9d31d2834..856c141c78 100644 --- a/tests/periph_i2c/Makefile.ci +++ b/tests/periph_i2c/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/periph_pwm/Makefile.ci b/tests/periph_pwm/Makefile.ci index ef475200bf..518b330a9e 100644 --- a/tests/periph_pwm/Makefile.ci +++ b/tests/periph_pwm/Makefile.ci @@ -1,9 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ stm32f030f4-demo \ # diff --git a/tests/periph_uart_mode/Makefile.ci b/tests/periph_uart_mode/Makefile.ci index e701877b0c..8acdbbd16e 100644 --- a/tests/periph_uart_mode/Makefile.ci +++ b/tests/periph_uart_mode/Makefile.ci @@ -1,9 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ # diff --git a/tests/periph_wdt/Makefile.ci b/tests/periph_wdt/Makefile.ci index 7b28dc1447..1e025a2333 100644 --- a/tests/periph_wdt/Makefile.ci +++ b/tests/periph_wdt/Makefile.ci @@ -1,7 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/phydat_unix/Makefile.ci b/tests/phydat_unix/Makefile.ci index 9782680702..e2bfd595ea 100644 --- a/tests/phydat_unix/Makefile.ci +++ b/tests/phydat_unix/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ diff --git a/tests/pkg_arduino_adafruit_sensor/Makefile.ci b/tests/pkg_arduino_adafruit_sensor/Makefile.ci index 13ab4aacc2..c8e44c7fa8 100644 --- a/tests/pkg_arduino_adafruit_sensor/Makefile.ci +++ b/tests/pkg_arduino_adafruit_sensor/Makefile.ci @@ -1,6 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-uno \ - arduino-nano \ - nucleo-l011k4 \ - # + arduino-duemilanove \ + arduino-nano \ + arduino-uno \ + nucleo-l011k4 \ + # diff --git a/tests/pkg_arduino_sdi_12/Makefile.ci b/tests/pkg_arduino_sdi_12/Makefile.ci index d4aec2eb96..93efa588a3 100644 --- a/tests/pkg_arduino_sdi_12/Makefile.ci +++ b/tests/pkg_arduino_sdi_12/Makefile.ci @@ -1,6 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ nucleo-l011k4 \ # diff --git a/tests/pkg_cryptoauthlib_internal-tests/Makefile.ci b/tests/pkg_cryptoauthlib_internal-tests/Makefile.ci index d471962ca7..210620e336 100644 --- a/tests/pkg_cryptoauthlib_internal-tests/Makefile.ci +++ b/tests/pkg_cryptoauthlib_internal-tests/Makefile.ci @@ -11,12 +11,10 @@ BOARD_INSUFFICIENT_MEMORY := \ atxmega-a1-xplained \ atxmega-a1u-xpro \ atxmega-a3bu-xplained \ - avr-rss2 \ blackpill-stm32f103c8 \ - bluepill-stm32f103c8 \ bluepill-stm32f030c8 \ + bluepill-stm32f103c8 \ derfmega128 \ - derfmega256 \ i-nucleo-lrwan1 \ mega-xplained \ microduino-corerf \ diff --git a/tests/pkg_elk/Makefile.ci b/tests/pkg_elk/Makefile.ci index 5e86ab29d5..11bf4578af 100644 --- a/tests/pkg_elk/Makefile.ci +++ b/tests/pkg_elk/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ msb-430 \ msb-430h \ nucleo-f031k6 \ diff --git a/tests/pkg_emlearn/Makefile.ci b/tests/pkg_emlearn/Makefile.ci index 1c6c4c1ba1..f0c98d23b0 100644 --- a/tests/pkg_emlearn/Makefile.ci +++ b/tests/pkg_emlearn/Makefile.ci @@ -3,16 +3,11 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ - atxmega-a3bu-xplained \ blackpill-stm32f103c8 \ bluepill-stm32f103c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ @@ -32,6 +27,5 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32f0discovery \ stm32g0316-disco \ stm32l0538-disco \ - waspmote-pro \ zigduino \ # diff --git a/tests/pkg_fatfs/Makefile.ci b/tests/pkg_fatfs/Makefile.ci index 27e1c93c53..70b60934a4 100644 --- a/tests/pkg_fatfs/Makefile.ci +++ b/tests/pkg_fatfs/Makefile.ci @@ -7,6 +7,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p-xplained-mini \ nucleo-l011k4 \ samd10-xmini \ - stm32f030f4-demo \ stk3200 \ + stm32f030f4-demo \ # diff --git a/tests/pkg_fatfs_vfs/Makefile.ci b/tests/pkg_fatfs_vfs/Makefile.ci index 32819b3942..4c7a87943e 100644 --- a/tests/pkg_fatfs_vfs/Makefile.ci +++ b/tests/pkg_fatfs_vfs/Makefile.ci @@ -8,13 +8,12 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430 \ msb-430h \ nucleo-f031k6 \ + nucleo-f042k6 \ nucleo-l011k4 \ nucleo-l031k6 \ - nucleo-f042k6 \ - nucleo-l031k6 \ samd10-xmini \ - stm32f030f4-demo \ stk3200 \ + stm32f030f4-demo \ telosb \ z1 \ # diff --git a/tests/pkg_libb2/Makefile.ci b/tests/pkg_libb2/Makefile.ci index 4411c95d81..c191aac13f 100644 --- a/tests/pkg_libb2/Makefile.ci +++ b/tests/pkg_libb2/Makefile.ci @@ -1,16 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega1284p \ atmega256rfr2-xpro \ - atmega328p \ - atmega328p-xplained-mini \ - derfmega128 \ - derfmega256 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f031k6 \ @@ -22,7 +11,6 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32f030f4-demo \ stm32g0316-disco \ telosb \ - waspmote-pro \ z1 \ zigduino \ # diff --git a/tests/pkg_littlefs2/Makefile.ci b/tests/pkg_littlefs2/Makefile.ci index 34fdb7387d..547018f8ba 100644 --- a/tests/pkg_littlefs2/Makefile.ci +++ b/tests/pkg_littlefs2/Makefile.ci @@ -1,7 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ arduino-leonardo \ - arduino-mega2560 \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/pkg_mbedtls/Makefile.ci b/tests/pkg_mbedtls/Makefile.ci index aa5a53e22a..981d93ae93 100644 --- a/tests/pkg_mbedtls/Makefile.ci +++ b/tests/pkg_mbedtls/Makefile.ci @@ -1,10 +1,9 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ - atmega328p-xplained-mini \ atmega328p \ + atmega328p-xplained-mini \ nucleo-f302r8 \ nucleo-f303k8 \ nucleo-f303re \ diff --git a/tests/pkg_micro-ecc/Makefile.ci b/tests/pkg_micro-ecc/Makefile.ci index 966b237618..8a295bec2a 100644 --- a/tests/pkg_micro-ecc/Makefile.ci +++ b/tests/pkg_micro-ecc/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/pkg_microcoap/Makefile.ci b/tests/pkg_microcoap/Makefile.ci index 6b3720d130..33b7279d7c 100644 --- a/tests/pkg_microcoap/Makefile.ci +++ b/tests/pkg_microcoap/Makefile.ci @@ -7,9 +7,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/pkg_nanopb/Makefile.ci b/tests/pkg_nanopb/Makefile.ci index ea81b39feb..518b330a9e 100644 --- a/tests/pkg_nanopb/Makefile.ci +++ b/tests/pkg_nanopb/Makefile.ci @@ -1,5 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - atmega328p-xplained-mini \ - atxmega-a3bu-xplained \ stm32f030f4-demo \ # diff --git a/tests/pkg_nanors/Makefile.ci b/tests/pkg_nanors/Makefile.ci index 159d19d084..5afc390e20 100644 --- a/tests/pkg_nanors/Makefile.ci +++ b/tests/pkg_nanors/Makefile.ci @@ -1,13 +1,13 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-uno \ - atmega328p-xplained-mini \ - atmega328p \ - nucleo-l011k4 \ - arduino-nano \ - arduino-leonardo \ - samd10-xmini \ arduino-duemilanove \ + arduino-leonardo \ + arduino-nano \ + arduino-uno \ + atmega328p \ + atmega328p-xplained-mini \ nucleo-f031k6 \ - stm32f030f4-demo \ + nucleo-l011k4 \ + samd10-xmini \ stk3200 \ + stm32f030f4-demo \ # diff --git a/tests/pkg_tflite-micro/Makefile.ci b/tests/pkg_tflite-micro/Makefile.ci index a56dfc1fd1..5e21893841 100644 --- a/tests/pkg_tflite-micro/Makefile.ci +++ b/tests/pkg_tflite-micro/Makefile.ci @@ -10,9 +10,9 @@ BOARD_INSUFFICIENT_MEMORY := \ bastwan \ blackpill-stm32f103c8 \ blackpill-stm32f103cb \ + bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ bluepill-stm32f103cb \ - bluepill-stm32f030c8 \ calliope-mini \ cc1350-launchpad \ cc2650-launchpad \ diff --git a/tests/pkg_tiny-asn1/Makefile.ci b/tests/pkg_tiny-asn1/Makefile.ci index b5de876337..b9ff275375 100644 --- a/tests/pkg_tiny-asn1/Makefile.ci +++ b/tests/pkg_tiny-asn1/Makefile.ci @@ -1,9 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/pkg_tweetnacl/Makefile.ci b/tests/pkg_tweetnacl/Makefile.ci index f998acb3b9..4be4c95e3a 100644 --- a/tests/pkg_tweetnacl/Makefile.ci +++ b/tests/pkg_tweetnacl/Makefile.ci @@ -1,16 +1,11 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ arduino-leonardo \ - arduino-mega2560 \ arduino-nano \ arduino-uno \ atmega256rfr2-xpro \ atmega328p \ atmega328p-xplained-mini \ - derfmega128 \ - derfmega256 \ - mega-xplained \ - microduino-corerf \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg_ubasic/Makefile.ci b/tests/pkg_ubasic/Makefile.ci index 9a3050dd6f..b2969e92a1 100644 --- a/tests/pkg_ubasic/Makefile.ci +++ b/tests/pkg_ubasic/Makefile.ci @@ -1,5 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/pthread_condition_variable/Makefile.ci b/tests/pthread_condition_variable/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/pthread_condition_variable/Makefile.ci +++ b/tests/pthread_condition_variable/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/pthread_cooperation/Makefile.ci b/tests/pthread_cooperation/Makefile.ci index f30ff23cd4..d751d28c25 100644 --- a/tests/pthread_cooperation/Makefile.ci +++ b/tests/pthread_cooperation/Makefile.ci @@ -1,23 +1,11 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-mega2560 \ - arduino-nano \ - arduino-uno \ atmega256rfr2-xpro \ - atmega328p \ - atmega328p-xplained-mini \ - derfmega128 \ - derfmega256 \ hifive1 \ hifive1b \ i-nucleo-lrwan1 \ im880b \ - mega-xplained \ - microduino-corerf \ nucleo-f031k6 \ nucleo-l011k4 \ stm32l0538-disco \ - waspmote-pro \ zigduino \ # diff --git a/tests/pthread_tls/Makefile.ci b/tests/pthread_tls/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/pthread_tls/Makefile.ci +++ b/tests/pthread_tls/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/riotboot_flashwrite/Makefile.ci b/tests/riotboot_flashwrite/Makefile.ci index 5a02afb4a1..693c47e701 100644 --- a/tests/riotboot_flashwrite/Makefile.ci +++ b/tests/riotboot_flashwrite/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-mega2560 \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ blackpill-stm32f103c8 \ blackpill-stm32f103cb \ bluepill-stm32f103c8 \ @@ -30,6 +24,5 @@ BOARD_INSUFFICIENT_MEMORY := \ stk3200 \ stm32f0discovery \ telosb \ - waspmote-pro \ z1 \ # diff --git a/tests/rng/Makefile.ci b/tests/rng/Makefile.ci index dbfb06e601..47927f6802 100644 --- a/tests/rng/Makefile.ci +++ b/tests/rng/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/saul/Makefile.ci b/tests/saul/Makefile.ci deleted file mode 100644 index 1152ca53bc..0000000000 --- a/tests/saul/Makefile.ci +++ /dev/null @@ -1,8 +0,0 @@ -BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ - # diff --git a/tests/sched_change_priority/Makefile.ci b/tests/sched_change_priority/Makefile.ci index b5de876337..69c36480c6 100644 --- a/tests/sched_change_priority/Makefile.ci +++ b/tests/sched_change_priority/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/sched_testing/Makefile.ci b/tests/sched_testing/Makefile.ci index 419215ecfd..43bbe6db85 100644 --- a/tests/sched_testing/Makefile.ci +++ b/tests/sched_testing/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/senml_saul/Makefile.ci b/tests/senml_saul/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/senml_saul/Makefile.ci +++ b/tests/senml_saul/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/shell/Makefile.ci b/tests/shell/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/shell/Makefile.ci +++ b/tests/shell/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/shell_lock/Makefile.ci b/tests/shell_lock/Makefile.ci index cd13c9e96d..b9ff275375 100644 --- a/tests/shell_lock/Makefile.ci +++ b/tests/shell_lock/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ nucleo-l011k4 \ # diff --git a/tests/sntp/Makefile.ci b/tests/sntp/Makefile.ci index 87910ec3ab..289f05e038 100644 --- a/tests/sntp/Makefile.ci +++ b/tests/sntp/Makefile.ci @@ -7,9 +7,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ bluepill-stm32f030c8 \ - derfmega128 \ i-nucleo-lrwan1 \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/sock_udp_aux/Makefile.ci b/tests/sock_udp_aux/Makefile.ci index 8770c45675..a9ce48962a 100644 --- a/tests/sock_udp_aux/Makefile.ci +++ b/tests/sock_udp_aux/Makefile.ci @@ -3,18 +3,13 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-leonardo \ arduino-mega2560 \ arduino-nano \ - arduino-nano-33-iot \ arduino-uno \ - atmega1284p \ atmega328p \ atmega328p-xplained-mini \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ calliope-mini \ - derfmega128 \ i-nucleo-lrwan1 \ - mega-xplained \ - microduino-corerf \ msb-430 \ msb-430h \ nucleo-f030r8 \ diff --git a/tests/struct_tm_utility/Makefile.ci b/tests/struct_tm_utility/Makefile.ci index 1152ca53bc..1e025a2333 100644 --- a/tests/struct_tm_utility/Makefile.ci +++ b/tests/struct_tm_utility/Makefile.ci @@ -1,8 +1,2 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ # diff --git a/tests/sys_arduino/Makefile.ci b/tests/sys_arduino/Makefile.ci index 6dd33c6f04..b9ff275375 100644 --- a/tests/sys_arduino/Makefile.ci +++ b/tests/sys_arduino/Makefile.ci @@ -1,6 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-uno \ - arduino-duemilanove \ - arduino-nano \ nucleo-l011k4 \ # diff --git a/tests/sys_arduino_lib/Makefile.ci b/tests/sys_arduino_lib/Makefile.ci index a4549c342a..ed5892bdd9 100644 --- a/tests/sys_arduino_lib/Makefile.ci +++ b/tests/sys_arduino_lib/Makefile.ci @@ -1,8 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ nucleo-f031k6 \ nucleo-l011k4 \ # diff --git a/tests/sys_sched_round_robin/Makefile.ci b/tests/sys_sched_round_robin/Makefile.ci index a387bf522a..ae9d0602a1 100644 --- a/tests/sys_sched_round_robin/Makefile.ci +++ b/tests/sys_sched_round_robin/Makefile.ci @@ -1,10 +1,9 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ - atmega328p-xplained-mini\ + atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/sys_sema_inv/Makefile.ci b/tests/sys_sema_inv/Makefile.ci index 29b1d9aae2..90da2e6a7a 100644 --- a/tests/sys_sema_inv/Makefile.ci +++ b/tests/sys_sema_inv/Makefile.ci @@ -1,9 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ # diff --git a/tests/thread_exit/Makefile.ci b/tests/thread_exit/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/thread_exit/Makefile.ci +++ b/tests/thread_exit/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/thread_flags/Makefile.ci b/tests/thread_flags/Makefile.ci index 419215ecfd..b44fab4dc4 100644 --- a/tests/thread_flags/Makefile.ci +++ b/tests/thread_flags/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/thread_msg_block_w_queue/Makefile.ci b/tests/thread_msg_block_w_queue/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/thread_msg_block_w_queue/Makefile.ci +++ b/tests/thread_msg_block_w_queue/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/thread_msg_block_wo_queue/Makefile.ci b/tests/thread_msg_block_wo_queue/Makefile.ci index b44fab4dc4..43bbe6db85 100644 --- a/tests/thread_msg_block_wo_queue/Makefile.ci +++ b/tests/thread_msg_block_wo_queue/Makefile.ci @@ -1,9 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \ diff --git a/tests/thread_race/Makefile.ci b/tests/thread_race/Makefile.ci index b5de876337..b9ff275375 100644 --- a/tests/thread_race/Makefile.ci +++ b/tests/thread_race/Makefile.ci @@ -1,9 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/thread_stack_alignment/Makefile.ci b/tests/thread_stack_alignment/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/thread_stack_alignment/Makefile.ci +++ b/tests/thread_stack_alignment/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/trace/Makefile.ci b/tests/trace/Makefile.ci index f859e70f8e..fe9558e6cf 100644 --- a/tests/trace/Makefile.ci +++ b/tests/trace/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ chronos \ msb-430 \ msb-430h \ diff --git a/tests/unittests/Makefile.ci b/tests/unittests/Makefile.ci index 716b28ffdd..94d82d38e2 100644 --- a/tests/unittests/Makefile.ci +++ b/tests/unittests/Makefile.ci @@ -1,19 +1,11 @@ BOARD_INSUFFICIENT_MEMORY := \ airfy-beacon \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-mega2560 \ arduino-mkr1000 \ arduino-mkrfox1200 \ arduino-mkrwan1300 \ arduino-mkrzero \ - arduino-nano \ - arduino-nano-33-iot \ - arduino-uno \ arduino-zero \ atmega256rfr2-xpro \ - atmega328p \ - atmega328p-xplained-mini \ avsextrem \ b-l072z-lrwan1 \ blackpill-stm32f103c8 \ @@ -28,8 +20,6 @@ BOARD_INSUFFICIENT_MEMORY := \ cc1352p-launchpad \ cc2650-launchpad \ cc2650stk \ - derfmega128 \ - derfmega256 \ e104-bt5010a-tb \ e104-bt5011a-tb \ e180-zg120b-tb \ @@ -51,9 +41,7 @@ BOARD_INSUFFICIENT_MEMORY := \ lsn50 \ maple-mini \ mcb2388 \ - mega-xplained \ microbit \ - microduino-corerf \ msb-430 \ msb-430h \ msba2 \ @@ -121,7 +109,6 @@ BOARD_INSUFFICIENT_MEMORY := \ stm32mp157c-dk2 \ teensy31 \ telosb \ - waspmote-pro \ weact-f401cc \ yarm \ yunjia-nrf51822 \ diff --git a/tests/vfs_default/Makefile.ci b/tests/vfs_default/Makefile.ci index eb1520a8a0..c9ac296b6c 100644 --- a/tests/vfs_default/Makefile.ci +++ b/tests/vfs_default/Makefile.ci @@ -8,5 +8,4 @@ BOARD_INSUFFICIENT_MEMORY := \ nucleo-l011k4 \ samd10-xmini \ stm32f030f4-demo \ - waspmote-pro \ # diff --git a/tests/xtimer_hang/Makefile.ci b/tests/xtimer_hang/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/xtimer_hang/Makefile.ci +++ b/tests/xtimer_hang/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/xtimer_msg/Makefile.ci b/tests/xtimer_msg/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/xtimer_msg/Makefile.ci +++ b/tests/xtimer_msg/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/xtimer_periodic_wakeup/Makefile.ci b/tests/xtimer_periodic_wakeup/Makefile.ci index b5de876337..69c36480c6 100644 --- a/tests/xtimer_periodic_wakeup/Makefile.ci +++ b/tests/xtimer_periodic_wakeup/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/xtimer_rmutex_lock_timeout/Makefile.ci b/tests/xtimer_rmutex_lock_timeout/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/xtimer_rmutex_lock_timeout/Makefile.ci +++ b/tests/xtimer_rmutex_lock_timeout/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/ztimer64_msg/Makefile.ci b/tests/ztimer64_msg/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/ztimer64_msg/Makefile.ci +++ b/tests/ztimer64_msg/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/ztimer_msg/Makefile.ci b/tests/ztimer_msg/Makefile.ci index d5368f025e..d28f5b77f9 100644 --- a/tests/ztimer_msg/Makefile.ci +++ b/tests/ztimer_msg/Makefile.ci @@ -1,6 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ arduino-duemilanove \ - arduino-leonardo \ arduino-nano \ arduino-uno \ atmega328p \ diff --git a/tests/ztimer_rmutex_lock_timeout/Makefile.ci b/tests/ztimer_rmutex_lock_timeout/Makefile.ci index 69c36480c6..b9ff275375 100644 --- a/tests/ztimer_rmutex_lock_timeout/Makefile.ci +++ b/tests/ztimer_rmutex_lock_timeout/Makefile.ci @@ -1,8 +1,3 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-l011k4 \ # diff --git a/tests/ztimer_underflow/Makefile.ci b/tests/ztimer_underflow/Makefile.ci index d3eee49494..da2429a326 100644 --- a/tests/ztimer_underflow/Makefile.ci +++ b/tests/ztimer_underflow/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini \ nucleo-f031k6 \ stm32f030f4-demo \ # diff --git a/tests/ztimer_xsec/Makefile.ci b/tests/ztimer_xsec/Makefile.ci index d220123487..43bbe6db85 100644 --- a/tests/ztimer_xsec/Makefile.ci +++ b/tests/ztimer_xsec/Makefile.ci @@ -1,10 +1,4 @@ BOARD_INSUFFICIENT_MEMORY := \ - arduino-duemilanove \ - arduino-leonardo \ - arduino-nano \ - arduino-uno \ - atmega328p \ - atmega328p-xplained-mini\ nucleo-f031k6 \ nucleo-l011k4 \ stm32f030f4-demo \