From b5d72d824227f70a18011ee60feb876dcfa00b3c Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Thu, 25 Jan 2024 16:45:17 -0500 Subject: [PATCH 1/3] cpu/stm32: add CPU_FAM_STM32C0 support --- cpu/stm32/Makefile.cmsis | 2 + cpu/stm32/Makefile.features | 2 +- cpu/stm32/cpu_common.c | 19 +- cpu/stm32/cpu_init.c | 2 +- cpu/stm32/include/clk/c0/cfg_clock_default.h | 66 ++++ ..._mp1.h => cfg_clock_common_fx_gx_mp1_c0.h} | 19 +- cpu/stm32/include/clk/clk_conf.h | 6 +- cpu/stm32/include/cpu_conf.h | 10 +- cpu/stm32/include/periph/c0/periph_cpu.h | 49 +++ cpu/stm32/include/periph/cpu_common.h | 7 +- cpu/stm32/include/periph/cpu_i2c.h | 11 +- cpu/stm32/include/periph_cpu.h | 2 + .../0001-stm32c0xx-remove-ErrorStatus.patch | 29 ++ cpu/stm32/kconfigs/c0/Kconfig | 31 ++ cpu/stm32/kconfigs/c0/Kconfig.clk | 51 +++ cpu/stm32/kconfigs/c0/Kconfig.lines | 27 ++ cpu/stm32/kconfigs/c0/Kconfig.models | 129 ++++++++ cpu/stm32/periph/Makefile | 6 +- .../periph/{adc_f0_g0.c => adc_f0_g0_c0.c} | 0 cpu/stm32/periph/dma.c | 4 +- cpu/stm32/periph/flash_common.c | 5 +- cpu/stm32/periph/flashpage.c | 7 +- cpu/stm32/periph/gpio_all.c | 20 +- cpu/stm32/periph/gpio_ll_irq.c | 2 +- cpu/stm32/periph/pm.c | 8 +- cpu/stm32/periph/rtt_all.c | 7 +- cpu/stm32/periph/uart.c | 4 +- cpu/stm32/stm32_info.mk | 6 +- cpu/stm32/stm32_line.mk | 7 + cpu/stm32/stm32_mem_lengths.mk | 20 ++ cpu/stm32/stmclk/Makefile | 2 + cpu/stm32/stmclk/stmclk_c0.c | 292 ++++++++++++++++++ cpu/stm32/stmclk/stmclk_common.c | 21 ++ dist/tools/doccheck/exclude_simple | 6 +- 34 files changed, 815 insertions(+), 64 deletions(-) create mode 100644 cpu/stm32/include/clk/c0/cfg_clock_default.h rename cpu/stm32/include/clk/{cfg_clock_common_fx_gx_mp1.h => cfg_clock_common_fx_gx_mp1_c0.h} (80%) create mode 100644 cpu/stm32/include/periph/c0/periph_cpu.h create mode 100644 cpu/stm32/include/vendor/patches/c0/0001-stm32c0xx-remove-ErrorStatus.patch create mode 100644 cpu/stm32/kconfigs/c0/Kconfig create mode 100644 cpu/stm32/kconfigs/c0/Kconfig.clk create mode 100644 cpu/stm32/kconfigs/c0/Kconfig.lines create mode 100644 cpu/stm32/kconfigs/c0/Kconfig.models rename cpu/stm32/periph/{adc_f0_g0.c => adc_f0_g0_c0.c} (100%) create mode 100644 cpu/stm32/stmclk/stmclk_c0.c diff --git a/cpu/stm32/Makefile.cmsis b/cpu/stm32/Makefile.cmsis index 153539da7b..b678e06a17 100644 --- a/cpu/stm32/Makefile.cmsis +++ b/cpu/stm32/Makefile.cmsis @@ -3,6 +3,8 @@ PKG_NAME=stm32cmsis # The package URL depends on the family of the target STM32 PKG_URL=https://github.com/STMicroelectronics/cmsis_device_$(CPU_FAM) +# v1.1.0 +PKG_VERSION_c0=7e32bf9d8117ee4c8f6a1d138b814fc24bf4c906 # v2.3.7 PKG_VERSION_f0=3973d99a89ac5fdf1f2593abc29a73d2981ce94a # v4.3.4 diff --git a/cpu/stm32/Makefile.features b/cpu/stm32/Makefile.features index 4fb6ab240b..1ff35af515 100644 --- a/cpu/stm32/Makefile.features +++ b/cpu/stm32/Makefile.features @@ -17,7 +17,7 @@ FEATURES_PROVIDED += periph_gpio_ll_irq FEATURES_PROVIDED += periph_gpio_ll_irq_level_triggered_high FEATURES_PROVIDED += periph_gpio_ll_irq_level_triggered_low -ifneq (,$(filter $(CPU_FAM),f0 f1 f3 g0 g4 l0 l1 l4 l5 u5 wb wl)) +ifneq (,$(filter $(CPU_FAM),c0 f0 f1 f3 g0 g4 l0 l1 l4 l5 u5 wb wl)) FEATURES_PROVIDED += periph_flashpage FEATURES_PROVIDED += periph_flashpage_in_address_space FEATURES_PROVIDED += periph_flashpage_pagewise diff --git a/cpu/stm32/cpu_common.c b/cpu/stm32/cpu_common.c index 6dbfae8e2a..a3eddd5826 100644 --- a/cpu/stm32/cpu_common.c +++ b/cpu/stm32/cpu_common.c @@ -39,7 +39,7 @@ static const uint8_t apbmul[] = { #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) [APB12] = 2, #endif #else @@ -47,7 +47,7 @@ static const uint8_t apbmul[] = { #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) [APB12] = 1, #endif #endif @@ -83,7 +83,7 @@ void periph_clk_en(bus_t bus, uint32_t mask) defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) RCC->APB1ENR1 |= mask; -#elif defined(CPU_FAM_STM32G0) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) RCC->APBENR1 |= mask; #elif defined(CPU_FAM_STM32MP1) RCC->MC_APB1ENSETR |= mask; @@ -91,7 +91,7 @@ void periph_clk_en(bus_t bus, uint32_t mask) RCC->APB1ENR |= mask; #endif break; -#if !defined(CPU_FAM_STM32G0) +#if !defined(CPU_FAM_STM32G0) && !defined(CPU_FAM_STM32C0) case APB2: #if defined(CPU_FAM_STM32MP1) RCC->MC_APB2ENSETR |= mask; @@ -111,12 +111,13 @@ void periph_clk_en(bus_t bus, uint32_t mask) case APB12: RCC->APB1ENR2 |= mask; break; -#elif defined(CPU_FAM_STM32G0) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) case APB12: RCC->APBENR2 |= mask; break; #endif -#if defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) +#if defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) || \ + defined(CPU_FAM_STM32C0) case AHB: RCC->AHBENR |= mask; break; @@ -176,7 +177,7 @@ void periph_clk_dis(bus_t bus, uint32_t mask) defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) RCC->APB1ENR1 &= ~(mask); -#elif defined(CPU_FAM_STM32G0) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) RCC->APBENR1 &= ~(mask); #elif defined(CPU_FAM_STM32MP1) /* Write 1 to clear */ @@ -185,7 +186,7 @@ void periph_clk_dis(bus_t bus, uint32_t mask) RCC->APB1ENR &= ~(mask); #endif break; -#if !defined(CPU_FAM_STM32G0) +#if !defined(CPU_FAM_STM32G0) && !defined(CPU_FAM_STM32C0) case APB2: #if defined(CPU_FAM_STM32MP1) RCC->MC_APB2ENCLRR |= mask; @@ -205,7 +206,7 @@ void periph_clk_dis(bus_t bus, uint32_t mask) case APB12: RCC->APB1ENR2 &= ~(mask); break; -#elif defined(CPU_FAM_STM32G0) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) case APB12: RCC->APBENR2 &= ~(mask); break; diff --git a/cpu/stm32/cpu_init.c b/cpu/stm32/cpu_init.c index 30b1956961..8087f11374 100644 --- a/cpu/stm32/cpu_init.c +++ b/cpu/stm32/cpu_init.c @@ -46,7 +46,7 @@ #if defined (CPU_FAM_STM32L4) || defined (CPU_FAM_STM32G4) || \ defined(CPU_FAM_STM32L5) #define BIT_APB_PWREN RCC_APB1ENR1_PWREN -#elif defined (CPU_FAM_STM32G0) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) #define BIT_APB_PWREN RCC_APBENR1_PWREN #elif !defined(CPU_FAM_STM32MP1) #define BIT_APB_PWREN RCC_APB1ENR_PWREN diff --git a/cpu/stm32/include/clk/c0/cfg_clock_default.h b/cpu/stm32/include/clk/c0/cfg_clock_default.h new file mode 100644 index 0000000000..3118bb2688 --- /dev/null +++ b/cpu/stm32/include/clk/c0/cfg_clock_default.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2024 BISSELL Homecare, Inc. + * + * 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_stm32 + * @{ + * + * @file + * @brief Configure STM32C0 clock + * + * @author Jason Parker + */ + +#ifndef CLK_C0_CFG_CLOCK_DEFAULT_H +#define CLK_C0_CFG_CLOCK_DEFAULT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name C0 clock settings + * + * @{ + */ +#if IS_ACTIVE(CONFIG_BOARD_HAS_HSE) && (CONFIG_CLOCK_HSE < MHZ(4) || CONFIG_CLOCK_HSE > MHZ(48)) +#error "HSE clock frequency must be between 4MHz and 48MHz" +#endif + +#ifdef CPU_FAM_STM32C0 +#ifndef CONFIG_CLOCK_HSISYS_DIV +#define CONFIG_CLOCK_HSISYS_DIV (1) +#endif +#endif + +#if IS_ACTIVE(CONFIG_USE_CLOCK_HSI) +#define CLOCK_CORECLOCK (CONFIG_CLOCK_HSI / CONFIG_CLOCK_HSISYS_DIV) + +#elif IS_ACTIVE(CONFIG_USE_CLOCK_HSE) +#if !IS_ACTIVE(CONFIG_BOARD_HAS_HSE) +#error "The board doesn't provide an HSE oscillator" +#endif +#define CLOCK_CORECLOCK (CONFIG_CLOCK_HSE) + +#endif + +#define CLOCK_AHB CLOCK_CORECLOCK /* max: 64MHz (G0), 170MHZ (G4) */ + +#ifndef CONFIG_CLOCK_APB1_DIV +#define CONFIG_CLOCK_APB1_DIV (1) +#endif +#define CLOCK_APB1 (CLOCK_CORECLOCK / CONFIG_CLOCK_APB1_DIV) \ + /* max: 64MHz (G0), 170MHZ (G4) */ +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* CLK_C0_CFG_CLOCK_DEFAULT_H */ +/** @} */ diff --git a/cpu/stm32/include/clk/cfg_clock_common_fx_gx_mp1.h b/cpu/stm32/include/clk/cfg_clock_common_fx_gx_mp1_c0.h similarity index 80% rename from cpu/stm32/include/clk/cfg_clock_common_fx_gx_mp1.h rename to cpu/stm32/include/clk/cfg_clock_common_fx_gx_mp1_c0.h index f6b2aaf4f2..b9f7fd3958 100644 --- a/cpu/stm32/include/clk/cfg_clock_common_fx_gx_mp1.h +++ b/cpu/stm32/include/clk/cfg_clock_common_fx_gx_mp1_c0.h @@ -13,22 +13,22 @@ * @{ * * @file - * @brief Base STM32Fx/Gx/MP1 clock configuration + * @brief Base STM32Fx/Gx/MP1/C0 clock configuration * * @author Hauke Petersen * @author Vincent Dupont * @author Alexandre Abadie */ -#ifndef CLK_CFG_CLOCK_COMMON_FX_GX_MP1_H -#define CLK_CFG_CLOCK_COMMON_FX_GX_MP1_H +#ifndef CLK_CFG_CLOCK_COMMON_FX_GX_MP1_C0_H +#define CLK_CFG_CLOCK_COMMON_FX_GX_MP1_C0_H #ifdef __cplusplus extern "C" { #endif /** - * @name Clock common configuration (F0/F1/F2/F3/F4/F7/G0/G4/MP1) + * @name Clock common configuration (F0/F1/F2/F3/F4/F7/G0/G4/MP1/C0) * @{ */ /* Select the desired system clock source between PLL, HSE or HSI */ @@ -36,8 +36,13 @@ extern "C" { #if IS_ACTIVE(CONFIG_USE_CLOCK_HSE) || IS_ACTIVE(CONFIG_USE_CLOCK_HSI) #define CONFIG_USE_CLOCK_PLL 0 #else +#if defined(CPU_FAM_STM32C0) /* PLL not supported in STM32C0 */ +#define CONFIG_USE_CLOCK_PLL 0 +#define CONFIG_USE_CLOCK_HSI 1 +#else #define CONFIG_USE_CLOCK_PLL 1 /* Use PLL by default */ #endif +#endif #endif /* CONFIG_USE_CLOCK_PLL */ #if IS_ACTIVE(CONFIG_USE_CLOCK_PLL) && \ @@ -57,7 +62,7 @@ extern "C" { #ifndef CONFIG_CLOCK_HSE #if defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) || \ - defined(CPU_FAM_STM32MP1) + defined(CPU_FAM_STM32MP1) || defined(CPU_FAM_STM32C0) #define CONFIG_CLOCK_HSE MHZ(24) #else #define CONFIG_CLOCK_HSE MHZ(8) @@ -70,6 +75,8 @@ extern "C" { #define CONFIG_CLOCK_HSI MHZ(8) #elif defined(CPU_FAM_STM32MP1) #define CONFIG_CLOCK_HSI MHZ(64) +#elif defined(CPU_FAM_STM32C0) +#define CONFIG_CLOCK_HSI MHZ(48) #else #define CONFIG_CLOCK_HSI MHZ(16) #endif @@ -80,5 +87,5 @@ extern "C" { } #endif -#endif /* CLK_CFG_CLOCK_COMMON_FX_GX_MP1_H */ +#endif /* CLK_CFG_CLOCK_COMMON_FX_GX_MP1_C0_H */ /** @} */ diff --git a/cpu/stm32/include/clk/clk_conf.h b/cpu/stm32/include/clk/clk_conf.h index 57e31b611b..4b093cdd82 100644 --- a/cpu/stm32/include/clk/clk_conf.h +++ b/cpu/stm32/include/clk/clk_conf.h @@ -26,8 +26,8 @@ defined(CPU_FAM_STM32F2) || defined(CPU_FAM_STM32F3) || \ defined(CPU_FAM_STM32F4) || defined(CPU_FAM_STM32F7) || \ defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) || \ - defined(CPU_FAM_STM32MP1) -#include "cfg_clock_common_fx_gx_mp1.h" + defined(CPU_FAM_STM32MP1) || defined(CPU_FAM_STM32C0) +#include "cfg_clock_common_fx_gx_mp1_c0.h" #else /* CPU_FAM_STM32L0 || CPU_FAM_STM32L1 || CPU_FAM_STM32L4 || * CPU_FAM_STM32L5 || CPU_FAM_STM32U5 || CPU_FAM_STM32WB */ #include "cfg_clock_common_lx_u5_wx.h" @@ -41,6 +41,8 @@ #include "f2f4f7/cfg_clock_default.h" #elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) #include "g0g4/cfg_clock_default.h" +#elif defined(CPU_FAM_STM32C0) +#include "c0/cfg_clock_default.h" #elif defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32L1) #include "l0l1/cfg_clock_default.h" #elif defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32L5) || \ diff --git a/cpu/stm32/include/cpu_conf.h b/cpu/stm32/include/cpu_conf.h index a910fee151..d7785a38c9 100644 --- a/cpu/stm32/include/cpu_conf.h +++ b/cpu/stm32/include/cpu_conf.h @@ -49,6 +49,9 @@ #elif CPU_FAM_STM32G0 #include "stm32g0xx.h" #include "irqs/g0/irqs.h" +#elif CPU_FAM_STM32C0 +#include "stm32c0xx.h" +#include "irqs/c0/irqs.h" #elif CPU_FAM_STM32G4 #include "stm32g4xx.h" #include "irqs/g4/irqs.h" @@ -127,7 +130,8 @@ extern "C" { || defined(CPU_LINE_STM32F030xC) || defined(CPU_LINE_STM32F103xE) \ || defined(CPU_FAM_STM32F3) || defined(CPU_FAM_STM32L4) \ || defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) \ - || defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32WL) + || defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32WL) \ + || defined(CPU_FAM_STM32C0) #define FLASHPAGE_SIZE (2048U) #elif defined(CPU_LINE_STM32F051x8) || defined(CPU_LINE_STM32F042x6) \ || defined(CPU_LINE_STM32F070xB) || defined(CPU_LINE_STM32F030x8) \ @@ -218,7 +222,7 @@ extern "C" { #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define FLASHPAGE_WRITE_BLOCK_SIZE (8U) typedef uint64_t stm32_flashpage_block_t; #elif defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32L1) || \ @@ -234,7 +238,7 @@ typedef uint16_t stm32_flashpage_block_t; #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define FLASHPAGE_WRITE_BLOCK_ALIGNMENT (8U) #else /* Writing should be always 4 bytes aligned */ diff --git a/cpu/stm32/include/periph/c0/periph_cpu.h b/cpu/stm32/include/periph/c0/periph_cpu.h new file mode 100644 index 0000000000..81408b0349 --- /dev/null +++ b/cpu/stm32/include/periph/c0/periph_cpu.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 BISSELL Homecare, Inc. + * + * 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_stm32 + * @{ + * + * @file + * @brief STM32C0 CPU specific definitions for internal peripheral handling + * + * @author Jason Parker + */ + +#ifndef PERIPH_C0_PERIPH_CPU_H +#define PERIPH_C0_PERIPH_CPU_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef DOXYGEN + +/** + * @brief Starting address of the ROM bootloader + * see application note AN2606 + */ +#define STM32_BOOTLOADER_ADDR (0x1FFF0000) + +/** + * @name Constants for internal VBAT ADC line + * @{ + */ +#define VBAT_ADC_RES ADC_RES_12BIT +#define VBAT_ADC_MAX 4095 +/** @} */ + +#endif /* ndef DOXYGEN */ + +#ifdef __cplusplus +} +#endif + +#endif /* PERIPH_C0_PERIPH_CPU_H */ +/** @} */ diff --git a/cpu/stm32/include/periph/cpu_common.h b/cpu/stm32/include/periph/cpu_common.h index 16b173c349..88b743c38e 100644 --- a/cpu/stm32/include/periph/cpu_common.h +++ b/cpu/stm32/include/periph/cpu_common.h @@ -62,7 +62,7 @@ extern "C" { defined(CPU_FAM_STM32WB) || defined(CPU_FAM_STM32G4) || \ defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32MP1) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define CLOCK_LSI (32000U) #else #error "error: LSI clock speed not defined for your target CPU" @@ -80,10 +80,11 @@ typedef enum { #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) APB12, /**< AHB1 bus, second register */ #endif -#if defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) +#if defined(CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) || \ + defined(CPU_FAM_STM32C0) AHB, /**< AHB bus */ IOP, /**< IOP bus */ #elif defined(CPU_FAM_STM32L1) || defined(CPU_FAM_STM32F1) || \ diff --git a/cpu/stm32/include/periph/cpu_i2c.h b/cpu/stm32/include/periph/cpu_i2c.h index 0fc0e8b587..53f864faad 100644 --- a/cpu/stm32/include/periph/cpu_i2c.h +++ b/cpu/stm32/include/periph/cpu_i2c.h @@ -67,7 +67,7 @@ typedef enum { defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) I2C_SPEED_FAST_PLUS, /**< fast plus mode: ~1Mbit/s */ #endif } i2c_speed_t; @@ -92,7 +92,8 @@ typedef struct { defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L4) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32WB) || \ - defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) || \ + defined(CPU_FAM_STM32C0) uint32_t rcc_sw_mask; /**< bit to switch I2C clock */ #endif #if defined(CPU_FAM_STM32F1) || defined(CPU_FAM_STM32F2) || \ @@ -108,7 +109,7 @@ typedef struct { defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) || \ defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WB) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) /** * @brief Structure for I2C timing register settings */ @@ -159,14 +160,14 @@ static const i2c_timing_param_t timing_params[] = { #endif /* CPU_FAM_STM32F0 || CPU_FAM_STM32F3 || CPU_FAM_STM32F7 || CPU_FAM_STM32L0 || CPU_FAM_STM32L4 || CPU_FAM_STM32L5 || CPU_FAM_STM32G0 || CPU_FAM_STM32G4 || CPU_FAM_STM32U5 || - CPU_FAM_STM32WB || CPU_FAM_STM32WL */ + CPU_FAM_STM32WB || CPU_FAM_STM32WL || CPU_FAM_STM32C0 */ #if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || \ defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L0) || \ defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WB) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) /** * @brief The I2C implementation supports only a limited frame size. * See i2c_1.c diff --git a/cpu/stm32/include/periph_cpu.h b/cpu/stm32/include/periph_cpu.h index 959ddcca6d..088a44b046 100644 --- a/cpu/stm32/include/periph_cpu.h +++ b/cpu/stm32/include/periph_cpu.h @@ -40,6 +40,8 @@ #include "periph/f7/periph_cpu.h" #elif defined(CPU_FAM_STM32G0) #include "periph/g0/periph_cpu.h" +#elif defined(CPU_FAM_STM32C0) +#include "periph/c0/periph_cpu.h" #elif defined(CPU_FAM_STM32G4) #include "periph/g4/periph_cpu.h" #elif defined(CPU_FAM_STM32L0) diff --git a/cpu/stm32/include/vendor/patches/c0/0001-stm32c0xx-remove-ErrorStatus.patch b/cpu/stm32/include/vendor/patches/c0/0001-stm32c0xx-remove-ErrorStatus.patch new file mode 100644 index 0000000000..f939b2e898 --- /dev/null +++ b/cpu/stm32/include/vendor/patches/c0/0001-stm32c0xx-remove-ErrorStatus.patch @@ -0,0 +1,29 @@ +From fe8412a4dd6b37dfd5d4701e8716b917fd8baeb8 Mon Sep 17 00:00:00 2001 +From: Jason Parker +Date: Fri, 26 Jan 2024 12:38:18 -0500 +Subject: [PATCH] stm32c0xx: remove ErrorStatus + +--- + Include/stm32c0xx.h | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/Include/stm32c0xx.h b/Include/stm32c0xx.h +index 1fe8c01..eafaa01 100644 +--- a/Include/stm32c0xx.h ++++ b/Include/stm32c0xx.h +@@ -121,12 +121,6 @@ typedef enum + } FunctionalState; + #define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE)) + +-typedef enum +-{ +- SUCCESS = 0, +- ERROR = !SUCCESS +-} ErrorStatus; +- + /** + * @} + */ +-- +2.34.1 + diff --git a/cpu/stm32/kconfigs/c0/Kconfig b/cpu/stm32/kconfigs/c0/Kconfig new file mode 100644 index 0000000000..5229d868f0 --- /dev/null +++ b/cpu/stm32/kconfigs/c0/Kconfig @@ -0,0 +1,31 @@ +# Copyright (C) 2024 BISSELL Homecare, Inc. +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# + +config CPU_FAM_C0 + bool + select CPU_STM32 + select CPU_CORE_CORTEX_M0PLUS + select HAS_CPU_STM32C0 + select HAS_PERIPH_FLASHPAGE + select HAS_PERIPH_FLASHPAGE_IN_ADDRESS_SPACE + select HAS_PERIPH_FLASHPAGE_PAGEWISE + select HAS_PERIPH_FLASHPAGE_RAW + select HAS_PERIPH_GPIO_LL + select HAS_PERIPH_GPIO_LL_IRQ + select HAS_PERIPH_GPIO_LL_IRQ_LEVEL_TRIGGERED_HIGH + select HAS_PERIPH_GPIO_LL_IRQ_LEVEL_TRIGGERED_LOW + select HAS_PERIPH_VBAT + select HAS_PERIPH_WDT + select HAS_BOOTLOADER_STM32 + +config CPU_FAM + default "c0" if CPU_FAM_C0 + +config HAS_CPU_STM32C0 + bool + help + Indicates that the cpu being used belongs to the 'stm32c0' family. diff --git a/cpu/stm32/kconfigs/c0/Kconfig.clk b/cpu/stm32/kconfigs/c0/Kconfig.clk new file mode 100644 index 0000000000..070fd3f94b --- /dev/null +++ b/cpu/stm32/kconfigs/c0/Kconfig.clk @@ -0,0 +1,51 @@ +# Copyright (C) 2024 BISSELL Homecare, Inc. +# +# 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. +# + +if CPU_FAM_C0 + +choice +bool "HSISYS division factor" if USE_CLOCK_HSI +default CLOCK_HSISYS_DIV_1 + +config CLOCK_HSISYS_DIV_1 + bool "Divide HSISYS by 1" + +config CLOCK_HSISYS_DIV_2 + bool "Divide HSISYS by 2" + +config CLOCK_HSISYS_DIV_4 + bool "Divide HSISYS by 4" + +config CLOCK_HSISYS_DIV_8 + bool "Divide HSISYS by 8" + +config CLOCK_HSISYS_DIV_16 + bool "Divide HSISYS by 16" + +config CLOCK_HSISYS_DIV_32 + bool "Divide HSISYS by 32" + +config CLOCK_HSISYS_DIV_64 + bool "Divide HSISYS by 64" + +config CLOCK_HSISYS_DIV_128 + bool "Divide HSISYS by 128" + +endchoice + +config CLOCK_HSISYS_DIV + int + default 1 if CLOCK_HSISYS_DIV_1 + default 2 if CLOCK_HSISYS_DIV_2 + default 4 if CLOCK_HSISYS_DIV_4 + default 8 if CLOCK_HSISYS_DIV_8 + default 16 if CLOCK_HSISYS_DIV_16 + default 32 if CLOCK_HSISYS_DIV_32 + default 64 if CLOCK_HSISYS_DIV_64 + default 128 if CLOCK_HSISYS_DIV_128 + +endif # CPU_FAM_C0 diff --git a/cpu/stm32/kconfigs/c0/Kconfig.lines b/cpu/stm32/kconfigs/c0/Kconfig.lines new file mode 100644 index 0000000000..b99aac4d00 --- /dev/null +++ b/cpu/stm32/kconfigs/c0/Kconfig.lines @@ -0,0 +1,27 @@ +# Copyright (C) 2024 BISSELL Homecare, Inc. +# +# 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. +# + +# This file was auto-generated from ST ProductsList.xlsx sheet using the +# script in cpu/stm32/dist/kconfig/gen_kconfig.py +# See cpu/stm32/dist/kconfig/README.md for details + +# CPU lines +config CPU_LINE_STM32C011XX + bool + select CPU_FAM_C0 + +config CPU_LINE_STM32C031XX + bool + select CPU_FAM_C0 + +config CPU_LINE_STM32C071XX + bool + select CPU_FAM_C0 + +config CPU_LINE_STM32C091XX + bool + select CPU_FAM_C0 diff --git a/cpu/stm32/kconfigs/c0/Kconfig.models b/cpu/stm32/kconfigs/c0/Kconfig.models new file mode 100644 index 0000000000..7ec105f501 --- /dev/null +++ b/cpu/stm32/kconfigs/c0/Kconfig.models @@ -0,0 +1,129 @@ +# Copyright (C) 2024 BISSELL Homecare, Inc. +# +# 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. +# + +# This file was auto-generated from ST ProductsList.xlsx sheet using the +# script in cpu/stm32/dist/kconfig/gen_kconfig.py +# See cpu/stm32/dist/kconfig/README.md for details + +# CPU models +config CPU_MODEL_STM32C011D6 + bool + select CPU_MODEL_STM32C011XX + +config CPU_MODEL_STM32C011F4 + bool + select CPU_MODEL_STM32C011XX + +config CPU_MODEL_STM32C011F6 + bool + select CPU_MODEL_STM32C011XX + +config CPU_MODEL_STM32C011J4 + bool + select CPU_MODEL_STM32C011XX + +config CPU_MODEL_STM32C011J6 + bool + select CPU_MODEL_STM32C011XX + +config CPU_MODEL_STM32C031C4 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031C6 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031F4 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031F6 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031G4 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031G6 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031K4 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C031K6 + bool + select CPU_MODEL_STM32C031XX + +config CPU_MODEL_STM32C071CB + bool + select CPU_MODEL_STM32C071XX + +config CPU_MODEL_STM32C071FB + bool + select CPU_MODEL_STM32C071XX + +config CPU_MODEL_STM32C071GB + bool + select CPU_MODEL_STM32C071XX + +config CPU_MODEL_STM32C071KB + bool + select CPU_MODEL_STM32C071XX + +config CPU_MODEL_STM32C071RB + bool + select CPU_MODEL_STM32C071XX + +config CPU_MODEL_STM32C091CC + bool + select CPU_MODEL_STM32C091XX + +config CPU_MODEL_STM32C091FC + bool + select CPU_MODEL_STM32C091XX + +config CPU_MODEL_STM32C091GC + bool + select CPU_MODEL_STM32C091XX + +config CPU_MODEL_STM32C091KC + bool + select CPU_MODEL_STM32C091XX + +config CPU_MODEL_STM32C091RC + bool + select CPU_MODEL_STM32C091XX + +# Configure CPU model +config CPU_MODEL + default "stm32c011d6" if CPU_MODEL_STM32C011D6 + default "stm32c011f4" if CPU_MODEL_STM32C011F4 + default "stm32c011f6" if CPU_MODEL_STM32C011F6 + default "stm32c011j4" if CPU_MODEL_STM32C011J4 + default "stm32c011j6" if CPU_MODEL_STM32C011J6 + default "stm32c031c4" if CPU_MODEL_STM32C031C4 + default "stm32c031c6" if CPU_MODEL_STM32C031C6 + default "stm32c031f4" if CPU_MODEL_STM32C031F4 + default "stm32c031f6" if CPU_MODEL_STM32C031F6 + default "stm32c031g4" if CPU_MODEL_STM32C031G4 + default "stm32c031g6" if CPU_MODEL_STM32C031G6 + default "stm32c031k4" if CPU_MODEL_STM32C031K4 + default "stm32c031k6" if CPU_MODEL_STM32C031K6 + default "stm32c071cb" if CPU_MODEL_STM32C071CB + default "stm32c071fb" if CPU_MODEL_STM32C071FB + default "stm32c071gb" if CPU_MODEL_STM32C071GB + default "stm32c071kb" if CPU_MODEL_STM32C071KB + default "stm32c071rb" if CPU_MODEL_STM32C071RB + default "stm32c091cc" if CPU_MODEL_STM32C091CC + default "stm32c091fc" if CPU_MODEL_STM32C091FC + default "stm32c091gc" if CPU_MODEL_STM32C091GC + default "stm32c091kc" if CPU_MODEL_STM32C091KC + default "stm32c091rc" if CPU_MODEL_STM32C091RC diff --git a/cpu/stm32/periph/Makefile b/cpu/stm32/periph/Makefile index 04d0989545..af3456fbe6 100644 --- a/cpu/stm32/periph/Makefile +++ b/cpu/stm32/periph/Makefile @@ -2,7 +2,7 @@ MODULE = periph # Select the specific implementation for `periph_i2c` ifneq (,$(filter periph_i2c,$(USEMODULE))) - ifneq (,$(filter $(CPU_FAM),f0 f3 f7 g0 g4 l0 l4 l5 u5 wb wl)) + ifneq (,$(filter $(CPU_FAM),f0 f3 f7 g0 g4 l0 l4 l5 u5 wb wl c0)) SRC += i2c_1.c else ifneq (,$(filter $(CPU_FAM),f1 f2 f4 l1)) SRC += i2c_2.c @@ -15,8 +15,8 @@ endif ifneq (,$(filter periph_adc,$(USEMODULE))) ifneq (,$(filter $(CPU_FAM),f4 f7)) SRC += adc_f4_f7.c - else ifneq (,$(filter $(CPU_FAM),f0 g0)) - SRC += adc_f0_g0.c + else ifneq (,$(filter $(CPU_FAM),f0 g0 c0)) + SRC += adc_f0_g0_c0.c else SRC += adc_$(CPU_FAM).c endif diff --git a/cpu/stm32/periph/adc_f0_g0.c b/cpu/stm32/periph/adc_f0_g0_c0.c similarity index 100% rename from cpu/stm32/periph/adc_f0_g0.c rename to cpu/stm32/periph/adc_f0_g0_c0.c diff --git a/cpu/stm32/periph/dma.c b/cpu/stm32/periph/dma.c index 0b4370aed4..f31f384f92 100644 --- a/cpu/stm32/periph/dma.c +++ b/cpu/stm32/periph/dma.c @@ -123,7 +123,7 @@ static inline DMA_TypeDef *dma_req(int stream_n) { return dma_base(stream_n); } -#elif CPU_FAM_STM32L0 || CPU_FAM_STM32L4 || CPU_FAM_STM32G0 +#elif CPU_FAM_STM32L0 || CPU_FAM_STM32L4 || CPU_FAM_STM32G0 || CPU_FAM_STM32C0 static inline DMA_Request_TypeDef *dma_req(int stream_n) { #ifdef DMA2 @@ -182,7 +182,7 @@ static IRQn_Type dma_get_irqn(int stream) else if (stream < 16) { return ((IRQn_Type)((int)DMA2_Stream5_IRQn + (stream - 13))); } -#elif CPU_FAM_STM32F0 || CPU_FAM_STM32L0 || CPU_FAM_STM32G0 +#elif CPU_FAM_STM32F0 || CPU_FAM_STM32L0 || CPU_FAM_STM32G0 || CPU_FAM_STM32C0 if (stream == 0) { return (DMA1_Channel1_IRQn); } diff --git a/cpu/stm32/periph/flash_common.c b/cpu/stm32/periph/flash_common.c index f47658af89..96c83eaffb 100644 --- a/cpu/stm32/periph/flash_common.c +++ b/cpu/stm32/periph/flash_common.c @@ -48,7 +48,8 @@ #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32F2) || defined(CPU_FAM_STM32F4) || \ - defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32WL) || \ + defined(CPU_FAM_STM32C0) #define FLASH_KEY1 ((uint32_t)0x45670123) #define FLASH_KEY2 ((uint32_t)0xCDEF89AB) #endif @@ -57,7 +58,7 @@ #define KEY_REG (FLASH->KEYR) #endif -#if defined(CPU_FAM_STM32G0) +#if defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) #define FLASH_SR_BSY (FLASH_SR_BSY1) #endif diff --git a/cpu/stm32/periph/flashpage.c b/cpu/stm32/periph/flashpage.c index 565cf7e13e..61fbcd8706 100644 --- a/cpu/stm32/periph/flashpage.c +++ b/cpu/stm32/periph/flashpage.c @@ -121,7 +121,8 @@ static void _erase_page(void *page_addr) defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32F2) || \ defined(CPU_FAM_STM32F4) || defined(CPU_FAM_STM32F7) || \ - defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) || \ + defined(CPU_FAM_STM32C0) DEBUG("[flashpage] erase: setting the page address\n"); uint8_t pn; #if (FLASHPAGE_NUMOF <= MAX_PAGES_PER_BANK) || defined(CPU_FAM_STM32WB) || \ @@ -273,7 +274,7 @@ void flashpage_write(void *target_addr, const void *data, size_t len) defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32F2) || defined(CPU_FAM_STM32F4) || \ defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) /* set PG bit and program page to flash */ CNTRL_REG |= FLASH_CR_PG; #endif @@ -294,7 +295,7 @@ void flashpage_write(void *target_addr, const void *data, size_t len) defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32L5) || \ defined(CPU_FAM_STM32F2) || defined(CPU_FAM_STM32F4) || \ defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) CNTRL_REG &= ~(FLASH_CR_PG); #endif DEBUG("[flashpage_raw] write: done writing data\n"); diff --git a/cpu/stm32/periph/gpio_all.c b/cpu/stm32/periph/gpio_all.c index 8a253d7503..4b6a578ca5 100644 --- a/cpu/stm32/periph/gpio_all.c +++ b/cpu/stm32/periph/gpio_all.c @@ -47,7 +47,7 @@ static gpio_isr_ctx_t isr_ctx[EXTI_NUMOF]; #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define EXTI_REG_RTSR (EXTI->RTSR1) #define EXTI_REG_FTSR (EXTI->FTSR1) #define EXTI_REG_PR (EXTI->PR1) @@ -100,7 +100,8 @@ static inline void port_init_clock(GPIO_TypeDef *port, gpio_t pin) (void)port; /* <-- Only used for when port G requires special handling */ #if defined(CPU_FAM_STM32F0) || defined (CPU_FAM_STM32F3) || defined(CPU_FAM_STM32L1) periph_clk_en(AHB, (RCC_AHBENR_GPIOAEN << _port_num(pin))); -#elif defined (CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) +#elif defined (CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) || \ + defined(CPU_FAM_STM32C0) periph_clk_en(IOP, (RCC_IOPENR_GPIOAEN << _port_num(pin))); #elif defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L5) || \ @@ -173,7 +174,8 @@ void gpio_init_analog(gpio_t pin) * gpio_init first */ #if defined(CPU_FAM_STM32F0) || defined (CPU_FAM_STM32F3) || defined(CPU_FAM_STM32L1) periph_clk_en(AHB, (RCC_AHBENR_GPIOAEN << _port_num(pin))); -#elif defined (CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) +#elif defined (CPU_FAM_STM32L0) || defined(CPU_FAM_STM32G0) || \ + defined(CPU_FAM_STM32C0) periph_clk_en(IOP, (RCC_IOPENR_GPIOAEN << _port_num(pin))); #elif defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L5) || \ @@ -250,7 +252,7 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, !defined(CPU_FAM_STM32WL) #ifdef CPU_FAM_STM32F0 periph_clk_en(APB2, RCC_APB2ENR_SYSCFGCOMPEN); -#elif defined(CPU_FAM_STM32G0) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) periph_clk_en(APB12, RCC_APBENR2_SYSCFGEN); #elif defined(CPU_FAM_STM32U5) periph_clk_en(APB3, RCC_APB3ENR_SYSCFGEN); @@ -266,7 +268,7 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, #if defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) NVIC_EnableIRQ(EXTI0_IRQn + pin_num); #elif defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32L0) || \ - defined(CPU_FAM_STM32G0) + defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) if (pin_num < 2) { NVIC_EnableIRQ(EXTI0_1_IRQn); } @@ -319,7 +321,7 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, EXTI_REG_FTSR |= ((flank >> 1) << pin_num); #if defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32L5) || \ - defined(CPU_FAM_STM32U5) + defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32C0) /* enable specific pin as exti sources */ EXTI->EXTICR[pin_num >> 2] &= ~(0xf << ((pin_num & 0x03) * 8)); EXTI->EXTICR[pin_num >> 2] |= (port_num << ((pin_num & 0x03) * 8)); @@ -334,7 +336,8 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, #endif #if defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32L5) || \ - defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32MP1) + defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32MP1) || \ + defined(CPU_FAM_STM32C0) /* clear any pending requests */ EXTI->RPR1 = (1 << pin_num); EXTI->FPR1 = (1 << pin_num); @@ -351,7 +354,8 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, void isr_exti(void) { #if defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32L5) || \ - defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32MP1) + defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32MP1) || \ + defined(CPU_FAM_STM32C0) /* get all interrupts handled by this ISR */ uint32_t pending_rising_isr = (EXTI->RPR1 & EXTI_MASK); uint32_t pending_falling_isr = (EXTI->FPR1 & EXTI_MASK); diff --git a/cpu/stm32/periph/gpio_ll_irq.c b/cpu/stm32/periph/gpio_ll_irq.c index 046f370978..f908ded8c8 100644 --- a/cpu/stm32/periph/gpio_ll_irq.c +++ b/cpu/stm32/periph/gpio_ll_irq.c @@ -149,7 +149,7 @@ static IRQn_Type get_irqn(uint8_t pin) #if defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) return EXTI0_IRQn + pin; #elif defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32L0) || \ - defined(CPU_FAM_STM32G0) + defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) if (pin < 2) { return EXTI0_1_IRQn; } diff --git a/cpu/stm32/periph/pm.c b/cpu/stm32/periph/pm.c index 81bfdeeb4f..b1072a9b12 100644 --- a/cpu/stm32/periph/pm.c +++ b/cpu/stm32/periph/pm.c @@ -51,7 +51,7 @@ defined(CPU_FAM_STM32L5) #define PM_STOP_CONFIG (PWR_CR1_LPMS_STOP1) #elif defined(CPU_FAM_STM32WB) || defined(CPU_FAM_STM32G0) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define PM_STOP_CONFIG (PWR_CR1_LPMS_0) #elif defined(CPU_FAM_STM32F7) #define PM_STOP_CONFIG (PWR_CR1_LPDS | PWR_CR1_FPDS | PWR_CR1_LPUDS) @@ -76,7 +76,7 @@ defined(CPU_FAM_STM32L5) #define PM_STANDBY_CONFIG (PWR_CR1_LPMS_STANDBY) #elif defined(CPU_FAM_STM32WB) || defined(CPU_FAM_STM32G0) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define PM_STANDBY_CONFIG (PWR_CR1_LPMS_0 | PWR_CR1_LPMS_1) #elif defined(CPU_FAM_STM32F7) #define PM_STANDBY_CONFIG (PWR_CR1_PDDS | PWR_CR1_CSBF) @@ -92,7 +92,7 @@ #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \ defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define PWR_CR_REG PWR->CR1 #define PWR_WUP_REG PWR->CR3 /* Allow overridable SRAM2 retention mode using CFLAGS */ @@ -199,7 +199,7 @@ void pm_backup_regulator_on(void) stmclk_dbp_unlock(); } PWR_BACKUP_REGULATOR_REG |= BKPREG_CONFIG; - while (!(PWR_BACKUP_REGULATOR_REG & BKPREG_READY)); + while (!(PWR_BACKUP_REGULATOR_REG & BKPREG_READY)){} if (locked) { stmclk_dbp_lock(); } diff --git a/cpu/stm32/periph/rtt_all.c b/cpu/stm32/periph/rtt_all.c index fce7c3c4d1..389a8ff799 100644 --- a/cpu/stm32/periph/rtt_all.c +++ b/cpu/stm32/periph/rtt_all.c @@ -86,7 +86,8 @@ register. */ #if defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || defined(CPU_FAM_STM32L5) #define IMR_REG IMR2 #define EXTI_IMR_BIT EXTI_IMR2_IM32 -#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32WL) +#elif defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32WL) || \ + defined(CPU_FAM_STM32C0) #define IMR_REG IMR1 #define EXTI_IMR_BIT EXTI_IMR1_IM29 #elif defined(CPU_FAM_STM32G4) @@ -137,7 +138,7 @@ void rtt_init(void) #if !defined(CPU_FAM_STM32L4) && !defined(CPU_FAM_STM32L0) && \ !defined(CPU_FAM_STM32WB) && !defined(CPU_FAM_STM32G4) && \ !defined(CPU_FAM_STM32G0) && !defined(CPU_FAM_STM32WL) && \ - !defined(CPU_FAM_STM32L5) + !defined(CPU_FAM_STM32L5) && !defined(CPU_FAM_STM32C0) EXTI->FTSR_REG &= ~(EXTI_FTSR_BIT); EXTI->RTSR_REG |= EXTI_RTSR_BIT; EXTI->PR_REG = EXTI_PR_BIT; @@ -249,7 +250,7 @@ void isr_lptim1(void) #if !defined(CPU_FAM_STM32L4) && !defined(CPU_FAM_STM32L0) && \ !defined(CPU_FAM_STM32WB) && !defined(CPU_FAM_STM32G4) && \ !defined(CPU_FAM_STM32G0) && !defined(CPU_FAM_STM32WL) && \ - !defined(CPU_FAM_STM32L5) + !defined(CPU_FAM_STM32L5) && !defined(CPU_FAM_STM32C0) EXTI->PR_REG = EXTI_PR_BIT; /* only clear the associated bit */ #endif diff --git a/cpu/stm32/periph/uart.c b/cpu/stm32/periph/uart.c index 09484842b8..b1a54e554d 100644 --- a/cpu/stm32/periph/uart.c +++ b/cpu/stm32/periph/uart.c @@ -36,7 +36,7 @@ #if defined(CPU_LINE_STM32L4R5xx) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define ISR_REG ISR #define ISR_TXE USART_ISR_TXE_TXFNF #define ISR_RXNE USART_ISR_RXNE_RXFNE @@ -64,7 +64,7 @@ #if defined(CPU_LINE_STM32L4R5xx) || defined(CPU_FAM_STM32G0) || \ defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \ - defined(CPU_FAM_STM32WL) + defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0) #define RXENABLE (USART_CR1_RE | USART_CR1_RXNEIE_RXFNEIE) #else #define RXENABLE (USART_CR1_RE | USART_CR1_RXNEIE) diff --git a/cpu/stm32/stm32_info.mk b/cpu/stm32/stm32_info.mk index 348bebb283..3bbf17b74a 100644 --- a/cpu/stm32/stm32_info.mk +++ b/cpu/stm32/stm32_info.mk @@ -8,7 +8,7 @@ # - STM32_PINCOUNT: R (64) # - STM32_ROMSIZE: G (1024K) CPU_MODEL_UPPERCASE = $(call uppercase,$(CPU_MODEL)) -STM32_INFO := $(shell echo $(CPU_MODEL_UPPERCASE) | sed -E -e 's/^STM32(F|L|W|G|MP|U)([0-7]|B|L)([A-Z0-9])([0-9])(.)(.)?(_A)?/\1 \2 \2\3\4 \3 \4 \5 \6 \7/') +STM32_INFO := $(shell echo $(CPU_MODEL_UPPERCASE) | sed -E -e 's/^STM32(F|L|W|G|MP|U|C)([0-7]|B|L)([A-Z0-9])([0-9])(.)(.)?(_A)?/\1 \2 \2\3\4 \3 \4 \5 \6 \7/') STM32_TYPE = $(word 1, $(STM32_INFO)) STM32_FAMILY = $(word 2, $(STM32_INFO)) STM32_MODEL = $(word 3, $(STM32_INFO)) @@ -40,10 +40,10 @@ else ifneq (,$(filter $(CPU_FAM),g4 wb wl)) CPU_CORE = cortex-m4 else ifeq (f7,$(CPU_FAM)) CPU_CORE = cortex-m7 -else ifneq (,$(filter $(CPU_FAM),g0 l0)) +else ifneq (,$(filter $(CPU_FAM),g0 l0 c0)) CPU_CORE = cortex-m0plus else ifneq (,$(filter $(CPU_FAM),l5 u5)) CPU_CORE = cortex-m33 else - $(error Not supported CPU family: 'stm32$(CPU_FAM)') + $(error Not supported CPU family: '$(CPU_FAM)') endif diff --git a/cpu/stm32/stm32_line.mk b/cpu/stm32/stm32_line.mk index 094cb40e00..a7b4e49d49 100644 --- a/cpu/stm32/stm32_line.mk +++ b/cpu/stm32/stm32_line.mk @@ -95,6 +95,13 @@ ifeq (G,$(STM32_TYPE)) endif endif endif +ifeq (C,$(STM32_TYPE)) + ifeq (0,$(STM32_FAMILY)) # STM32C0 + ifneq (,$(filter $(STM32_MODEL), 011 031 071 091)) + CPU_LINE = STM32C$(STM32_MODEL)xx + endif + endif +endif ifeq (L,$(STM32_TYPE)) ifeq (0,$(STM32_FAMILY)) # STM32L0 ifneq (,$(filter $(STM32_MODEL), 010)) diff --git a/cpu/stm32/stm32_mem_lengths.mk b/cpu/stm32/stm32_mem_lengths.mk index 2e6471d793..e6c9805cbe 100644 --- a/cpu/stm32/stm32_mem_lengths.mk +++ b/cpu/stm32/stm32_mem_lengths.mk @@ -318,6 +318,22 @@ else ifeq ($(STM32_TYPE), MP) RAM_LEN = 384K endif endif +else ifeq ($(STM32_TYPE), C) + ifeq ($(STM32_FAMILY), 0) + ifneq (, $(filter $(STM32_MODEL2), 1)) + RAM_LEN = 6K + else ifneq (, $(filter $(STM32_MODEL2), 7)) + ifeq ($(STM32_ROMSIZE), 8) + RAM_LEN = 12K + else ifeq ($(STM32_ROMSIZE), B) + RAM_LEN = 24K + endif + else ifneq (, $(filter $(STM32_MODEL2), 9)) + RAM_LEN = 36K + else ifneq (, $(filter $(STM32_MODEL2), 3)) + RAM_LEN = 12K + endif + endif endif ifeq ($(RAM_LEN), ) @@ -414,6 +430,10 @@ else ifeq ($(STM32_PINCOUNT), Z) STM32_PIN = 144 else ifeq ($(STM32_PINCOUNT), AC) STM32_PIN = 361 +else ifeq ($(STM32_PINCOUNT), J) + STM32_PIN = 8 +else ifeq ($(STM32_PINCOUNT), D) + STM32_PIN = 12 endif # Set the common memory addresses for stm32 MCU family diff --git a/cpu/stm32/stmclk/Makefile b/cpu/stm32/stmclk/Makefile index 37ea80c3e8..b8d2bf1794 100644 --- a/cpu/stm32/stmclk/Makefile +++ b/cpu/stm32/stmclk/Makefile @@ -18,6 +18,8 @@ else ifneq (,$(filter $(CPU_FAM),u5)) SRC += stmclk_u5.c else ifneq (,$(filter $(CPU_FAM),g0 g4)) SRC += stmclk_gx.c +else ifneq (,$(filter $(CPU_FAM),c0)) + SRC += stmclk_c0.c else ifneq (,$(filter $(CPU_FAM),mp1)) ifneq (,$(filter stm32mp1_eng_mode,$(USEMODULE))) SRC = stmclk_mp1.c diff --git a/cpu/stm32/stmclk/stmclk_c0.c b/cpu/stm32/stmclk/stmclk_c0.c new file mode 100644 index 0000000000..85503f29e9 --- /dev/null +++ b/cpu/stm32/stmclk/stmclk_c0.c @@ -0,0 +1,292 @@ +/* + * Copyright (C) 2024 BISSELL Homecare, Inc. + * + * 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_stm32 + * @{ + * + * @file + * @brief Implementation of STM32 clock configuration for the C0 family + * + * @author Jason Parker + * @} + */ + +#include "cpu.h" +#include "stmclk.h" +#include "periph_conf.h" +#include "periph/gpio.h" + +#if defined(CPU_FAM_STM32C0) +#define RCC_CFGR_SW_HSI (0) +#define RCC_CFGR_SW_HSE (RCC_CFGR_SW_0) + +#if CONFIG_CLOCK_HSISYS_DIV == 1 +#define CLOCK_HSI_DIV (0) +#elif CONFIG_CLOCK_HSISYS_DIV == 2 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_0) +#elif CONFIG_CLOCK_HSISYS_DIV == 4 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_1) +#elif CONFIG_CLOCK_HSISYS_DIV == 8 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_1 | RCC_CR_HSIDIV_0) +#elif CONFIG_CLOCK_HSISYS_DIV == 16 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_2) +#elif CONFIG_CLOCK_HSISYS_DIV == 32 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_2 | RCC_CR_HSIDIV_0) +#elif CONFIG_CLOCK_HSISYS_DIV == 64 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_2 | RCC_CR_HSIDIV_1) +#elif CONFIG_CLOCK_HSISYS_DIV == 128 +#define CLOCK_HSI_DIV (RCC_CR_HSIDIV_2 | RCC_CR_HSIDIV_1 | RCC_CR_HSIDIV_0) +#endif + +#define CLOCK_AHB_DIV (0) + +#if CONFIG_CLOCK_APB1_DIV == 1 +#define CLOCK_APB1_DIV (0) +#elif CONFIG_CLOCK_APB1_DIV == 2 +#define CLOCK_APB1_DIV (RCC_CFGR_PPRE_2) +#elif CONFIG_CLOCK_APB1_DIV == 4 +#define CLOCK_APB1_DIV (RCC_CFGR_PPRE_2 | RCC_CFGR_PPRE_0) +#elif CONFIG_CLOCK_APB1_DIV == 8 +#define CLOCK_APB1_DIV (RCC_CFGR_PPRE_2 | RCC_CFGR_PPRE_1) +#elif CONFIG_CLOCK_APB1_DIV == 16 +#define CLOCK_APB1_DIV (RCC_CFGR_PPRE_2 | RCC_CFGR_PPRE_1 | RCC_CFGR_PPRE_0) +#endif +#endif /* CPU_FAM_STM32C0 */ + +/* Configure MCO */ +#ifndef CONFIG_CLOCK_ENABLE_MCO +#define CONFIG_CLOCK_ENABLE_MCO 0 /* Don't enable MCO by default */ +#endif + +/* Configure the MCO clock source: options are HSE, HSI (default), LSE, LSI or SYSCLK*/ +#define CONFIG_CLOCK_MCO_USE_PLLCLK 0 // PLL not supported in STM32C0 + +#ifndef CONFIG_CLOCK_MCO_USE_HSE +#define CONFIG_CLOCK_MCO_USE_HSE 0 +#endif /* CONFIG_CLOCK_MCO_USE_HSE */ + +#ifndef CONFIG_CLOCK_MCO_USE_HSI +#define CONFIG_CLOCK_MCO_USE_HSI 1 +#endif /* CONFIG_CLOCK_MCO_USE_HSI */ + +#ifndef CONFIG_CLOCK_MCO_USE_LSE +#define CONFIG_CLOCK_MCO_USE_LSE 0 +#endif /* CONFIG_CLOCK_MCO_USE_LSE */ + +#ifndef CONFIG_CLOCK_MCO_USE_LSI +#define CONFIG_CLOCK_MCO_USE_LSI 0 +#endif /* CONFIG_CLOCK_MCO_USE_LSI */ + +#ifndef CONFIG_CLOCK_MCO_USE_SYSCLK +#define CONFIG_CLOCK_MCO_USE_SYSCLK 0 +#endif /* CONFIG_CLOCK_MCO_USE_SYSCLK */ + +#if IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE) && \ + (IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) || \ + IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_SYSCLK)) +#error "Cannot use HSE as MCO clock source with other clocks" +#endif + +#if IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI) && \ + (IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) || \ + IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_SYSCLK)) +#error "Cannot use HSI as MCO clock source with other clocks" +#endif + +#if IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) && \ + (IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI) || \ + IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_SYSCLK)) +#error "Cannot use LSE as MCO clock source with other clocks" +#endif + +#if IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI) && \ + (IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI) || \ + IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_SYSCLK)) +#error "Cannot use LSI as MCO clock source with other clocks" +#endif + +#if IS_ACTIVE(CONFIG_CLOCK_MCO_USE_SYSCLK) && \ + (IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI) || \ + IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) || IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI)) +#error "Cannot use SYSCLK as MCO clock source with other clocks" +#endif + +#if IS_ACTIVE(CONFIG_CLOCK_MCO_USE_SYSCLK) +#define CLOCK_MCO_SRC (RCC_CFGR_MCOSEL_0) +#elif IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI) +#define CLOCK_MCO_SRC (RCC_CFGR_MCOSEL_1 | RCC_CFGR_MCOSEL_0) +#elif IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE) +#define CLOCK_MCO_SRC (RCC_CFGR_MCOSEL_2) +#elif IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI) +#define CLOCK_MCO_SRC (RCC_CFGR_MCOSEL_2 | RCC_CFGR_MCOSEL_1) +#elif IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) +#define CLOCK_MCO_SRC (RCC_CFGR_MCOSEL_2 | RCC_CFGR_MCOSEL_1 | RCC_CFGR_MCOSEL_0) +#else +#error "Invalid MCO clock source selection" +#endif + +/* Configure the MCO prescaler */ +#ifndef CONFIG_CLOCK_MCO_PRE +#define CONFIG_CLOCK_MCO_PRE (1) +#endif + +/* Define MCO prescalers */ +#if CONFIG_CLOCK_MCO_PRE == 1 +#define CLOCK_MCO_PRE (0) +#elif CONFIG_CLOCK_MCO_PRE == 2 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_0) +#elif CONFIG_CLOCK_MCO_PRE == 4 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_1) +#elif CONFIG_CLOCK_MCO_PRE == 8 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_1 | RCC_CFGR_MCOPRE_0) +#elif CONFIG_CLOCK_MCO_PRE == 16 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_2) +#elif CONFIG_CLOCK_MCO_PRE == 32 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_2 | RCC_CFGR_MCOPRE_0) +#elif CONFIG_CLOCK_MCO_PRE == 64 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_2 | RCC_CFGR_MCOPRE_1) +#elif CONFIG_CLOCK_MCO_PRE == 128 +#define CLOCK_MCO_PRE (RCC_CFGR_MCOPRE_2 | RCC_CFGR_MCOPRE_1 | RCC_CFGR_MCOPRE_0) +#else +#error "Invalid MCO prescaler" +#endif + +/* PLL not supported in STM32C0 */ +#define CLOCK_ENABLE_PLL 0 + +/* Check whether HSE is required: + - When HSE is used as SYSCLK + - When HSE is used as MCO clock source +*/ +#if IS_ACTIVE(CONFIG_USE_CLOCK_HSE) || \ + (IS_ACTIVE(CONFIG_CLOCK_ENABLE_MCO) && IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSE)) +#define CLOCK_ENABLE_HSE 1 +#else +#define CLOCK_ENABLE_HSE 0 +#endif + +/* Check whether HSI is required: + - When HSI is used as SYSCLK + - When HSI is used as MCO clock source +*/ +#if IS_ACTIVE(CONFIG_USE_CLOCK_HSI) || \ + (IS_ACTIVE(CONFIG_CLOCK_ENABLE_MCO) && IS_ACTIVE(CONFIG_CLOCK_MCO_USE_HSI)) +#define CLOCK_ENABLE_HSI 1 +#else +#define CLOCK_ENABLE_HSI 0 +#endif + +/* Check whether LSE must be enabled */ +#if IS_ACTIVE(CONFIG_CLOCK_ENABLE_MCO) && IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSE) +#define CLOCK_ENABLE_LSE 1 +#else +#define CLOCK_ENABLE_LSE 0 +#endif + +/* Check whether LSI must be enabled */ +#if IS_ACTIVE(CONFIG_CLOCK_ENABLE_MCO) && IS_ACTIVE(CONFIG_CLOCK_MCO_USE_LSI) +#define CLOCK_ENABLE_LSI 1 +#else +#define CLOCK_ENABLE_LSI 0 +#endif + +/** Determine the required flash wait states from the core clock frequency */ +#if CLOCK_CORECLOCK >= 24000000 +#define FLASH_WAITSTATES (FLASH_ACR_LATENCY_0) /* 1 wait states */ +#else +#define FLASH_WAITSTATES (0) /* 0 wait states */ +#endif + +void stmclk_init_sysclk(void) +{ + /* disable any interrupts. Global interrupts could be enabled if this is + * called from some kind of bootloader... */ + unsigned is = irq_disable(); + /* enable HSI clock for the duration of initialization */ + stmclk_enable_hsi(); + + RCC->CIER = 0; + + /* use HSI as system clock while we do any further configuration and + * configure the AHB and APB clock dividers as configured by the board */ + RCC->CFGR = (RCC_CFGR_SW_HSI | CLOCK_AHB_DIV | CLOCK_APB1_DIV); + + while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI) {} + + /* we enable instruction cache, pre-fetch, and we set the required flash wait states */ + FLASH->ACR |= (FLASH_ACR_ICEN | FLASH_ACR_PRFTEN | FLASH_WAITSTATES); + + /* disable all active clocks except HSI -> resets the clk configuration */ + RCC->CR = RCC_CR_HSION; + + if (IS_ACTIVE(CONFIG_USE_CLOCK_HSI) && CONFIG_CLOCK_HSISYS_DIV != 1) { + /* configure HSISYS divider */ + RCC->CR |= CLOCK_HSI_DIV; + while (!(RCC->CR & RCC_CR_HSIRDY)) {} + } + + /* Enable HSE if required */ + if (IS_ACTIVE(CLOCK_ENABLE_HSE)) { + RCC->CR |= RCC_CR_HSEON; + while (!(RCC->CR & RCC_CR_HSERDY)) {} + } + + /* Configure SYSCLK */ + if (IS_ACTIVE(CONFIG_USE_CLOCK_HSE)) { + RCC->CFGR = (RCC_CFGR_SW_HSE | CLOCK_AHB_DIV | CLOCK_APB1_DIV); + + RCC->CFGR |= RCC_CFGR_SW_HSE; + while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSE) {} + } + + if (!IS_ACTIVE(CLOCK_ENABLE_HSI)) { + /* Disable HSI only if not used */ + stmclk_disable_hsi(); + } + + /* Enable the LSE if required for MCO + * If available on the board, LSE might also be initialized for RTT/RTC + * peripherals. For the monent, this initialization is done in the + * corresponding peripheral drivers. */ + if (IS_ACTIVE(CLOCK_ENABLE_LSE)) { + stmclk_dbp_unlock(); + RCC->CSR1 |= RCC_CSR1_LSEON; + while (!(RCC->CSR1 & RCC_CSR1_LSERDY)) {} + stmclk_dbp_lock(); + } + + /* Enable the LSI if required for MCO + * If no LSE is available on the board, LSI might also be initialized for + * RTT/RTC peripherals. For the monent, this initialization is done in the + * corresponding peripheral drivers. */ + if (IS_ACTIVE(CLOCK_ENABLE_LSI)) { + RCC->CSR2 |= RCC_CSR2_LSION; + while (!(RCC->CSR2 & RCC_CSR2_LSIRDY)) {} + } + + /* Configure MCO */ + if (IS_ACTIVE(CONFIG_CLOCK_ENABLE_MCO)) { + /* As stated in the manual, it is highly recommended to change the MCO + prescaler before enabling the MCO */ + RCC->CFGR |= CLOCK_MCO_PRE; + RCC->CFGR |= CLOCK_MCO_SRC; + + /* Configure MCO pin (PA8 with AF0) */ + gpio_init(GPIO_PIN(PORT_A, 8), GPIO_OUT); + gpio_init_af(GPIO_PIN(PORT_A, 8), GPIO_AF0); + } + +#if IS_USED(MODULE_PERIPH_HWRNG) + /* HWRNG is clocked by HSI48 so enable this clock when the peripheral is used */ + RCC->CRRCR |= RCC_CRRCR_HSI48ON; + while (!(RCC->CRRCR & RCC_CRRCR_HSI48RDY)) {} +#endif + + irq_restore(is); +} diff --git a/cpu/stm32/stmclk/stmclk_common.c b/cpu/stm32/stmclk/stmclk_common.c index 413b4eef97..7ba57c69f9 100644 --- a/cpu/stm32/stmclk/stmclk_common.c +++ b/cpu/stm32/stmclk/stmclk_common.c @@ -41,6 +41,10 @@ #define REG_LSE CSR #define BIT_LSEON RCC_CSR_LSEON #define BIT_LSERDY RCC_CSR_LSERDY +#elif defined(CPU_FAM_STM32C0) +#define REG_LSE CSR1 +#define BIT_LSEON RCC_CSR1_LSEON +#define BIT_LSERDY RCC_CSR1_LSERDY #else #define REG_LSE BDCR #define BIT_LSEON RCC_BDCR_LSEON @@ -90,8 +94,13 @@ void stmclk_enable_lfclk(void) stmclk_dbp_lock(); } else { +#if defined(CPU_FAM_STM32C0) + RCC->CSR2 |= RCC_CSR2_LSION; + while (!(RCC->CSR2 & RCC_CSR2_LSIRDY)) {} +#else RCC->CSR |= RCC_CSR_LSION; while (!(RCC->CSR & RCC_CSR_LSIRDY)) {} +#endif } } @@ -104,25 +113,37 @@ void stmclk_disable_lfclk(void) stmclk_dbp_lock(); } else { +#if defined(CPU_FAM_STM32C0) + RCC->CSR2 &= ~(RCC_CSR2_LSION); +#else RCC->CSR &= ~(RCC_CSR_LSION); +#endif } } void stmclk_dbp_unlock(void) { +#if !defined(CPU_FAM_STM32C0) /* CPU_FAM_STM32C0 does not support DBP */ PWR->REG_PWR_CR |= BIT_CR_DBP; +#endif } void stmclk_dbp_lock(void) { +#if !defined(CPU_FAM_STM32C0) /* CPU_FAM_STM32C0 does not support DBP */ if (!IS_ACTIVE(CPU_HAS_BACKUP_RAM)) { /* The DBP must be unlocked all the time, if we modify backup RAM content by comfortable BACKUP_RAM variables */ PWR->REG_PWR_CR &= ~(BIT_CR_DBP); } +#endif } bool stmclk_dbp_is_locked(void) { +#if !defined(CPU_FAM_STM32C0) /* CPU_FAM_STM32C0 does not support DBP */ return !(PWR->REG_PWR_CR & BIT_CR_DBP); +#else + return 0; +#endif } diff --git a/dist/tools/doccheck/exclude_simple b/dist/tools/doccheck/exclude_simple index 362f0057dc..ebbd216432 100644 --- a/dist/tools/doccheck/exclude_simple +++ b/dist/tools/doccheck/exclude_simple @@ -1545,12 +1545,12 @@ warning: Member CONFIG_CLOCK_APB3_DIV (macro definition) of file cfg_clock_defau warning: Member CONFIG_CLOCK_DESIRED_FREQUENCY (macro definition) of file clk_conf.h is not documented. warning: Member CONFIG_CLOCK_HFROSC_DIV (macro definition) of file clk_conf.h is not documented. warning: Member CONFIG_CLOCK_HFROSC_TRIM (macro definition) of file clk_conf.h is not documented. -warning: Member CONFIG_CLOCK_HSE (macro definition) of file cfg_clock_common_fx_gx_mp1.h is not documented. +warning: Member CONFIG_CLOCK_HSE (macro definition) of file cfg_clock_common_fx_gx_mp1_c0.h is not documented. warning: Member CONFIG_CLOCK_HSE (macro definition) of file cfg_clock_common_lx_u5_wx.h is not documented. warning: Member CONFIG_CLOCK_HSE (macro definition) of file cfg_clock_common_lx_wx.h is not documented. warning: Member CONFIG_CLOCK_HSE (macro definition) of file periph_conf_common.h is not documented. warning: Member CONFIG_CLOCK_HSE (macro definition) of file periph_conf.h is not documented. -warning: Member CONFIG_CLOCK_HSI (macro definition) of file cfg_clock_common_fx_gx_mp1.h is not documented. +warning: Member CONFIG_CLOCK_HSI (macro definition) of file cfg_clock_common_fx_gx_mp1_c0.h is not documented. warning: Member CONFIG_CLOCK_HSI (macro definition) of file cfg_clock_common_lx_u5_wx.h is not documented. warning: Member CONFIG_CLOCK_HSI (macro definition) of file cfg_clock_common_lx_wx.h is not documented. warning: Member CONFIG_CLOCK_MCU_DIV (macro definition) of file cfg_clock_default.h is not documented. @@ -1608,7 +1608,7 @@ warning: Member CONFIG_USE_CLOCK_HFROSC (macro definition) of file clk_conf.h is warning: Member CONFIG_USE_CLOCK_HFROSC_PLL (macro definition) of file clk_conf.h is not documented. warning: Member CONFIG_USE_CLOCK_HFXOSC (macro definition) of file clk_conf.h is not documented. warning: Member CONFIG_USE_CLOCK_HFXOSC_PLL (macro definition) of file clk_conf.h is not documented. -warning: Member CONFIG_USE_CLOCK_PLL (macro definition) of file cfg_clock_common_fx_gx_mp1.h is not documented. +warning: Member CONFIG_USE_CLOCK_PLL (macro definition) of file cfg_clock_common_fx_gx_mp1_c0.h is not documented. warning: Member CONFIG_USE_CLOCK_PLL (macro definition) of file cfg_clock_common_lx_u5_wx.h is not documented. warning: Member CONFIG_USE_CLOCK_PLL (macro definition) of file cfg_clock_common_lx_wx.h is not documented. warning: Member CONFIG_ZTIMER_LPTIMER_BLOCK_PM_MODE (macro definition) of file board.h is not documented. From a2f4a13beb29e42e3db35eee71cbc8c63bb20202 Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Thu, 25 Jan 2024 16:46:02 -0500 Subject: [PATCH 2/3] boards/nucleo-c031c6 initial add --- boards/common/nucleo/include/board_nucleo.h | 2 +- boards/common/stm32/dist/stm32c0.cfg | 3 + .../common/stm32/include/cfg_i2c1_pb8_pb9.h | 6 +- boards/nucleo-c031c6/Kconfig | 28 ++++ boards/nucleo-c031c6/Makefile | 4 + boards/nucleo-c031c6/Makefile.dep | 1 + boards/nucleo-c031c6/Makefile.features | 15 ++ boards/nucleo-c031c6/Makefile.include | 2 + boards/nucleo-c031c6/doc.txt | 26 +++ boards/nucleo-c031c6/include/periph_conf.h | 157 ++++++++++++++++++ examples/asymcute_mqttsn/Makefile.ci | 1 + examples/benchmark_udp/Makefile.ci | 1 + examples/cord_ep/Makefile.ci | 1 + examples/cord_epsim/Makefile.ci | 1 + examples/cord_lc/Makefile.ci | 1 + examples/dtls-echo/Makefile.ci | 1 + examples/dtls-sock/Makefile.ci | 1 + examples/dtls-wolfssl/Makefile.ci | 1 + examples/emcute_mqttsn/Makefile.ci | 1 + examples/gcoap/Makefile.ci | 1 + examples/gcoap_block_server/Makefile.ci | 1 + examples/gcoap_dtls/Makefile.ci | 1 + examples/gcoap_fileserver/Makefile.ci | 1 + examples/gnrc_border_router/Makefile.ci | 1 + examples/gnrc_networking/Makefile.ci | 1 + examples/gnrc_networking_subnets/Makefile.ci | 1 + examples/javascript/Makefile.ci | 1 + examples/lorawan/Makefile.ci | 1 + examples/lua_REPL/Makefile.ci | 1 + examples/lua_basic/Makefile.ci | 1 + examples/micropython/Makefile.ci | 1 + examples/nanocoap_server/Makefile.ci | 1 + examples/paho-mqtt/Makefile.ci | 1 + examples/posix_select/Makefile.ci | 1 + examples/posix_sockets/Makefile.ci | 1 + examples/psa_crypto/Makefile.ci | 1 + examples/rust-gcoap/Makefile.ci | 1 + examples/suit_update/Makefile.ci | 1 + examples/telnet_server/Makefile.ci | 1 + examples/twr_aloha/Makefile.ci | 1 + examples/wakaama/Makefile.ci | 1 + examples/wasm/Makefile.ci | 1 + tests/bench/xtimer/Makefile.ci | 1 + tests/bench/ztimer/Makefile.ci | 1 + tests/core/thread_cooperation/Makefile.ci | 1 + tests/drivers/at86rf215/Makefile.ci | 1 + tests/drivers/atwinc15x0/Makefile.ci | 1 + tests/drivers/cc110x/Makefile.ci | 1 + tests/drivers/nrf24l01p_ng/Makefile.ci | 1 + tests/drivers/sx127x/Makefile.ci | 1 + tests/net/emcute/Makefile.ci | 1 + tests/net/gcoap_dns/Makefile.ci | 1 + tests/net/gcoap_fileserver/Makefile.ci | 1 + tests/net/gnrc_dhcpv6_client/Makefile.ci | 1 + tests/net/gnrc_dhcpv6_client_6lbr/Makefile.ci | 1 + .../gnrc_dhcpv6_client_stateless/Makefile.ci | 1 + tests/net/gnrc_dhcpv6_relay/Makefile.ci | 1 + tests/net/gnrc_ipv6_ext/Makefile.ci | 1 + tests/net/gnrc_ipv6_ext_frag/Makefile.ci | 1 + tests/net/gnrc_ipv6_ext_opt/Makefile.ci | 1 + tests/net/gnrc_ipv6_fwd_w_sub/Makefile.ci | 1 + tests/net/gnrc_ipv6_nib/Makefile.ci | 1 + tests/net/gnrc_ipv6_nib_6ln/Makefile.ci | 1 + tests/net/gnrc_ipv6_nib_dns/Makefile.ci | 1 + tests/net/gnrc_ndp/Makefile.ci | 1 + tests/net/gnrc_netif/Makefile.ci | 1 + .../Makefile.ci | 1 + tests/net/gnrc_rpl/Makefile.ci | 1 + tests/net/gnrc_rpl_p2p/Makefile.ci | 1 + tests/net/gnrc_rpl_srh/Makefile.ci | 1 + tests/net/gnrc_sixlowpan/Makefile.ci | 1 + .../gnrc_sixlowpan_frag_minfwd/Makefile.ci | 1 + tests/net/gnrc_sixlowpan_frag_sfr/Makefile.ci | 1 + .../Makefile.ci | 1 + .../Makefile.ci | 1 + .../net/gnrc_sixlowpan_iphc_w_vrb/Makefile.ci | 1 + tests/net/gnrc_sock_dns/Makefile.ci | 1 + tests/net/gnrc_sock_dodtls/Makefile.ci | 1 + tests/net/gnrc_sock_ip/Makefile.ci | 1 + tests/net/gnrc_sock_neterr/Makefile.ci | 1 + tests/net/gnrc_sock_tcp/Makefile.ci | 1 + tests/net/gnrc_sock_udp/Makefile.ci | 1 + tests/net/gnrc_tcp/Makefile.ci | 1 + tests/net/gnrc_tx_sync/Makefile.ci | 1 + tests/net/gnrc_udp/Makefile.ci | 1 + tests/net/nanocoap_cli/Makefile.ci | 1 + tests/net/netutils/Makefile.ci | 1 + tests/net/slip/Makefile.ci | 1 + tests/net/sntp/Makefile.ci | 1 + tests/net/sock_udp_aux/Makefile.ci | 1 + .../cryptoauthlib_internal-tests/Makefile.ci | 1 + tests/pkg/elk/Makefile.ci | 1 + tests/pkg/emlearn/Makefile.ci | 1 + tests/pkg/fatfs_vfs/Makefile.ci | 1 + tests/pkg/flashdb_vfs/Makefile.ci | 1 + tests/pkg/libb2/Makefile.ci | 1 + tests/pkg/libcose/Makefile.ci | 1 + tests/pkg/libfixmath_unittests/Makefile.ci | 1 + tests/pkg/libschc/Makefile.ci | 1 + tests/pkg/littlefs2/Makefile.ci | 1 + tests/pkg/lwip/Makefile.ci | 1 + tests/pkg/lwip_sock_ip/Makefile.ci | 1 + tests/pkg/lwip_sock_tcp/Makefile.ci | 1 + tests/pkg/lwip_sock_udp/Makefile.ci | 1 + tests/pkg/lz4/Makefile.ci | 1 + tests/pkg/microcoap/Makefile.ci | 1 + tests/pkg/relic/Makefile.ci | 1 + tests/pkg/semtech-loramac/Makefile.ci | 1 + tests/pkg/spiffs/Makefile.ci | 1 + tests/pkg/tflite-micro/Makefile.ci | 1 + tests/pkg/tinydtls_sock_async/Makefile.ci | 1 + tests/pkg/tinyvcdiff/Makefile.ci | 1 + tests/pkg/utensor/Makefile.ci | 1 + tests/pkg/wolfssl/Makefile.ci | 1 + tests/riotboot/Makefile.ci | 1 + tests/riotboot_flashwrite/Makefile.ci | 1 + tests/sys/crypto/Makefile.ci | 1 + tests/sys/crypto_aes_ccm/Makefile.ci | 1 + tests/sys/ps_schedstatistics/Makefile.ci | 1 + tests/sys/pthread_rwlock/Makefile.ci | 1 + tests/sys/senml_phydat/Makefile.ci | 1 + tests/unittests/Makefile.ci | 1 + 122 files changed, 352 insertions(+), 4 deletions(-) create mode 100644 boards/common/stm32/dist/stm32c0.cfg create mode 100644 boards/nucleo-c031c6/Kconfig create mode 100644 boards/nucleo-c031c6/Makefile create mode 100644 boards/nucleo-c031c6/Makefile.dep create mode 100644 boards/nucleo-c031c6/Makefile.features create mode 100644 boards/nucleo-c031c6/Makefile.include create mode 100644 boards/nucleo-c031c6/doc.txt create mode 100644 boards/nucleo-c031c6/include/periph_conf.h diff --git a/boards/common/nucleo/include/board_nucleo.h b/boards/common/nucleo/include/board_nucleo.h index 9a964b690b..ebc075fe33 100644 --- a/boards/common/nucleo/include/board_nucleo.h +++ b/boards/common/nucleo/include/board_nucleo.h @@ -37,7 +37,7 @@ extern "C" { #define XTIMER_WIDTH (16) #endif -#if defined(CPU_FAM_STM32G0) +#if defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32C0) #define XTIMER_WIDTH (16) #endif diff --git a/boards/common/stm32/dist/stm32c0.cfg b/boards/common/stm32/dist/stm32c0.cfg new file mode 100644 index 0000000000..a5346c10f3 --- /dev/null +++ b/boards/common/stm32/dist/stm32c0.cfg @@ -0,0 +1,3 @@ +source [find target/stm32c0x.cfg] +reset_config srst_only +$_TARGETNAME configure -rtos auto diff --git a/boards/common/stm32/include/cfg_i2c1_pb8_pb9.h b/boards/common/stm32/include/cfg_i2c1_pb8_pb9.h index 65499e8823..dd6f5015fe 100644 --- a/boards/common/stm32/include/cfg_i2c1_pb8_pb9.h +++ b/boards/common/stm32/include/cfg_i2c1_pb8_pb9.h @@ -38,7 +38,7 @@ static const i2c_conf_t i2c_config[] = { #if CPU_FAM_STM32F0 .scl_af = GPIO_AF1, .sda_af = GPIO_AF1, -#elif CPU_FAM_STM32G0 +#elif CPU_FAM_STM32G0 || CPU_FAM_STM32C0 .scl_af = GPIO_AF6, .sda_af = GPIO_AF6, #else @@ -58,7 +58,7 @@ static const i2c_conf_t i2c_config[] = { .rcc_mask = RCC_APB1ENR1_I2C1EN, .rcc_sw_mask = RCC_CCIPR1_I2C1SEL_1, /* HSI (16 MHz) */ .irqn = I2C1_ER_IRQn, -#elif CPU_FAM_STM32G0 +#elif CPU_FAM_STM32G0 || CPU_FAM_STM32C0 .rcc_mask = RCC_APBENR1_I2C1EN, .rcc_sw_mask = RCC_CCIPR_I2C1SEL_1, /* HSI (16 MHz) */ .irqn = I2C1_IRQn, @@ -80,7 +80,7 @@ static const i2c_conf_t i2c_config[] = { #define I2C_0_ISR isr_i2c1_ev #elif CPU_FAM_STM32L4 || CPU_FAM_STM32F7 || CPU_FAM_STM32WB || CPU_FAM_STM32L5 #define I2C_0_ISR isr_i2c1_er -#elif CPU_FAM_STM32F0 || CPU_FAM_STM32L0 || CPU_FAM_STM32G0 +#elif CPU_FAM_STM32F0 || CPU_FAM_STM32L0 || CPU_FAM_STM32G0 || CPU_FAM_STM32C0 #define I2C_0_ISR isr_i2c1 #endif diff --git a/boards/nucleo-c031c6/Kconfig b/boards/nucleo-c031c6/Kconfig new file mode 100644 index 0000000000..de3c01f443 --- /dev/null +++ b/boards/nucleo-c031c6/Kconfig @@ -0,0 +1,28 @@ +# Copyright (C) 2024 BISSELL Homecare, Inc. +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# + +config BOARD + default "nucleo-c031c6" if BOARD_NUCLEO_C031C6 + +config BOARD_NUCLEO_C031C6 + bool + default y + select BOARD_COMMON_NUCLEO64 + select CPU_MODEL_STM32C031C6 + + # Put defined MCU peripherals here (in alphabetical order) + select HAS_PERIPH_ADC + select HAS_PERIPH_I2C + select HAS_PERIPH_RTT + select HAS_PERIPH_SPI + select HAS_PERIPH_TIMER + select HAS_PERIPH_UART + + # Put other features for this board (in alphabetical order) + select HAS_RIOTBOOT + +source "$(RIOTBOARD)/common/nucleo64/Kconfig" diff --git a/boards/nucleo-c031c6/Makefile b/boards/nucleo-c031c6/Makefile new file mode 100644 index 0000000000..4dd17b1d0c --- /dev/null +++ b/boards/nucleo-c031c6/Makefile @@ -0,0 +1,4 @@ +MODULE = board +DIRS = $(RIOTBOARD)/common/nucleo + +include $(RIOTBASE)/Makefile.base diff --git a/boards/nucleo-c031c6/Makefile.dep b/boards/nucleo-c031c6/Makefile.dep new file mode 100644 index 0000000000..dbfbd3bd20 --- /dev/null +++ b/boards/nucleo-c031c6/Makefile.dep @@ -0,0 +1 @@ +include $(RIOTBOARD)/common/nucleo64/Makefile.dep diff --git a/boards/nucleo-c031c6/Makefile.features b/boards/nucleo-c031c6/Makefile.features new file mode 100644 index 0000000000..464936cf8b --- /dev/null +++ b/boards/nucleo-c031c6/Makefile.features @@ -0,0 +1,15 @@ +CPU = stm32 +CPU_MODEL = stm32c031c6 + +# Put defined MCU peripherals here (in alphabetical order) +FEATURES_PROVIDED += periph_adc +FEATURES_PROVIDED += periph_i2c +FEATURES_PROVIDED += periph_spi +FEATURES_PROVIDED += periph_timer +FEATURES_PROVIDED += periph_uart + +# Put other features for this board (in alphabetical order) +FEATURES_PROVIDED += riotboot + +# load the common Makefile.features for Nucleo boards +include $(RIOTBOARD)/common/nucleo64/Makefile.features diff --git a/boards/nucleo-c031c6/Makefile.include b/boards/nucleo-c031c6/Makefile.include new file mode 100644 index 0000000000..8db8eaed90 --- /dev/null +++ b/boards/nucleo-c031c6/Makefile.include @@ -0,0 +1,2 @@ +# load the common Makefile.include for Nucleo boards +include $(RIOTBOARD)/common/nucleo64/Makefile.include diff --git a/boards/nucleo-c031c6/doc.txt b/boards/nucleo-c031c6/doc.txt new file mode 100644 index 0000000000..8a1d920436 --- /dev/null +++ b/boards/nucleo-c031c6/doc.txt @@ -0,0 +1,26 @@ +/** +@defgroup boards_nucleo-c031c6 STM32 Nucleo-C031C6 +@ingroup boards_common_nucleo64 +@brief Support for the STM32 Nucleo-C031C6 + +## Overview + +The Nucleo-C031C6 is a board from ST's Nucleo family supporting a ARM +Cortex-M0+ STM32C031C6 microcontroller with 12KiB of RAM and 32KiB of Flash. + +## Flashing the Board Using ST-LINK Removable Media + +On-board ST-LINK programmer provides via composite USB device removable media. +Copying the HEX file causes reprogramming of the board. This task +could be performed manually; however, the cpy2remed (copy to removable +media) PROGRAMMER script does this automatically. To program board in +this manner, use the command: + +``` +make BOARD=nucleo-c031c6 PROGRAMMER=cpy2remed flash +``` + +@note This PROGRAMMER was tested using ST-LINK firmware 2.37.26. Firmware updates +could be found on [this STM webpage](https://www.st.com/en/development-tools/stsw-link007.html). + + */ diff --git a/boards/nucleo-c031c6/include/periph_conf.h b/boards/nucleo-c031c6/include/periph_conf.h new file mode 100644 index 0000000000..8baf472410 --- /dev/null +++ b/boards/nucleo-c031c6/include/periph_conf.h @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2024 BISSELL Homecare, Inc. + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + +/** + * @ingroup boards_nucleo-c031c6 + * @{ + * + * @file + * @brief Peripheral MCU configuration for the nucleo-c031c6 board + * + * @author Jason Parker + */ + +#ifndef PERIPH_CONF_H +#define PERIPH_CONF_H + +/* Add specific clock configuration (HSE, LSE) for this board here */ +#ifndef CONFIG_BOARD_HAS_LSE +#define CONFIG_BOARD_HAS_LSE 1 +#endif + +#include "clk_conf.h" +#include "cfg_i2c1_pb8_pb9.h" +#include "cfg_rtt_default.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Timer configuration + * @{ + */ +static const timer_conf_t timer_config[] = { + { + .dev = TIM3, + .max = 0x0000ffff, + .rcc_mask = RCC_APBENR1_TIM3EN, + .bus = APB1, + .irqn = TIM3_IRQn + } +}; + +#define TIMER_0_ISR isr_tim3 + +#define TIMER_NUMOF ARRAY_SIZE(timer_config) +/** @} */ + +/** + * @name UART configuration + * @{ + */ +static const uart_conf_t uart_config[] = { + { + .dev = USART2, + .rcc_mask = RCC_APBENR1_USART2EN, + .rx_pin = GPIO_PIN(PORT_A, 3), + .tx_pin = GPIO_PIN(PORT_A, 2), + .rx_af = GPIO_AF1, + .tx_af = GPIO_AF1, + .bus = APB1, + .irqn = USART2_IRQn, + }, + { /* Arduino pinout on D0/D1 */ + .dev = USART1, + .rcc_mask = RCC_APBENR2_USART1EN, + .rx_pin = GPIO_PIN(PORT_B, 7), + .tx_pin = GPIO_PIN(PORT_B, 6), + .rx_af = GPIO_AF0, + .tx_af = GPIO_AF0, + .bus = APB12, //? + .irqn = USART1_IRQn, + }, +}; + +#define UART_0_ISR (isr_usart2) +#define UART_1_ISR (isr_usart1) + +#define UART_NUMOF ARRAY_SIZE(uart_config) +/** @} */ + +/** + * @name ADC configuration + * + * Note that we do not configure all ADC channels, + * and not in the STM32G071 order. Instead, we + * just define 6 ADC channels, for the Nucleo + * Arduino header pins A0-A5 and the internal VBAT channel. + * + * To find appropriate device and channel find in the + * board manual, table showing pin assignments and + * information about ADC - a text similar to ARD_A[N]_IN[X], + * where: + * [N] - describes analog pin number, + * [X] - describes used channel - indexed from 1, + * for example ARD_A5_IN16 is channel 16 + * + * For Nucleo-G071RB this information is in board manual, + * Table 12, page 30. + * + * VBAT is connected to an internal input and voltage divider + * is used, so that only 1/3 of the actual VBAT is measured. This + * allows for a supply voltage higher than the reference voltage. + * + * For Nucleo-G071RB more information is provided in MCU datasheet, + * in section 3.14.3 - Vbat battery voltage monitoring, page 26. + + * @{ + */ +static const adc_conf_t adc_config[] = { + { .pin = GPIO_PIN(PORT_A, 0), .dev = 0, .chan = 0 }, /* ARD_A0_IN0 */ + { .pin = GPIO_PIN(PORT_A, 1), .dev = 0, .chan = 1 }, /* ARD_A1_IN1 */ + { .pin = GPIO_PIN(PORT_A, 4), .dev = 0, .chan = 4 }, /* ARD_A2_IN4 */ + { .pin = GPIO_PIN(PORT_B, 1), .dev = 0, .chan = 9 }, /* ARD_A3_IN9 */ + { .pin = GPIO_PIN(PORT_B, 11), .dev = 0, .chan = 15 }, /* ARD_A4_IN15 */ + { .pin = GPIO_PIN(PORT_B, 12), .dev = 0, .chan = 16 }, /* ARD_A5_IN16 */ + { .pin = GPIO_UNDEF, .dev = 0, .chan = 14}, /* VBAT */ +}; + +#define VBAT_ADC ADC_LINE(6) /**< VBAT ADC line */ +#define ADC_NUMOF ARRAY_SIZE(adc_config) +/** @} */ + +/** + * @name SPI configuration + * @{ + */ +static const spi_conf_t spi_config[] = { + { + .dev = SPI1, + .mosi_pin = GPIO_PIN(PORT_A, 7), /* Arduino D11 */ + .miso_pin = GPIO_PIN(PORT_A, 6), /* Arduino D12 */ + .sclk_pin = GPIO_PIN(PORT_A, 5), /* Arduino D13 */ + .cs_pin = GPIO_UNDEF, + .mosi_af = GPIO_AF0, + .miso_af = GPIO_AF0, + .sclk_af = GPIO_AF0, + .cs_af = GPIO_AF0, + .rccmask = RCC_APBENR2_SPI1EN, + .apbbus = APB12, + }, +}; + +#define SPI_NUMOF ARRAY_SIZE(spi_config) +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* PERIPH_CONF_H */ +/** @} */ diff --git a/examples/asymcute_mqttsn/Makefile.ci b/examples/asymcute_mqttsn/Makefile.ci index 075f3da50d..bc11819a7c 100644 --- a/examples/asymcute_mqttsn/Makefile.ci +++ b/examples/asymcute_mqttsn/Makefile.ci @@ -23,6 +23,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/benchmark_udp/Makefile.ci b/examples/benchmark_udp/Makefile.ci index c17706b049..d7b6950877 100644 --- a/examples/benchmark_udp/Makefile.ci +++ b/examples/benchmark_udp/Makefile.ci @@ -17,6 +17,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/cord_ep/Makefile.ci b/examples/cord_ep/Makefile.ci index f4296b7fa8..e5c68b46b9 100644 --- a/examples/cord_ep/Makefile.ci +++ b/examples/cord_ep/Makefile.ci @@ -17,6 +17,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/cord_epsim/Makefile.ci b/examples/cord_epsim/Makefile.ci index 35d296d0e7..84627c6da4 100644 --- a/examples/cord_epsim/Makefile.ci +++ b/examples/cord_epsim/Makefile.ci @@ -13,6 +13,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/cord_lc/Makefile.ci b/examples/cord_lc/Makefile.ci index 2de80b23c5..ec80ea4480 100644 --- a/examples/cord_lc/Makefile.ci +++ b/examples/cord_lc/Makefile.ci @@ -16,6 +16,7 @@ BOARD_INSUFFICIENT_MEMORY := \ im880b \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/dtls-echo/Makefile.ci b/examples/dtls-echo/Makefile.ci index 1b801c9ce6..0d8d734c7b 100644 --- a/examples/dtls-echo/Makefile.ci +++ b/examples/dtls-echo/Makefile.ci @@ -28,6 +28,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/dtls-sock/Makefile.ci b/examples/dtls-sock/Makefile.ci index 2a5bcdd41e..6110d18ded 100644 --- a/examples/dtls-sock/Makefile.ci +++ b/examples/dtls-sock/Makefile.ci @@ -31,6 +31,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/dtls-wolfssl/Makefile.ci b/examples/dtls-wolfssl/Makefile.ci index 37d456d683..25e5f934f0 100644 --- a/examples/dtls-wolfssl/Makefile.ci +++ b/examples/dtls-wolfssl/Makefile.ci @@ -16,6 +16,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microbit \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/emcute_mqttsn/Makefile.ci b/examples/emcute_mqttsn/Makefile.ci index da4ea67fa1..1b984863cf 100644 --- a/examples/emcute_mqttsn/Makefile.ci +++ b/examples/emcute_mqttsn/Makefile.ci @@ -17,6 +17,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gcoap/Makefile.ci b/examples/gcoap/Makefile.ci index 0125a1b527..fa31b2b6a3 100644 --- a/examples/gcoap/Makefile.ci +++ b/examples/gcoap/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gcoap_block_server/Makefile.ci b/examples/gcoap_block_server/Makefile.ci index 24cf855717..e13f71fb2a 100644 --- a/examples/gcoap_block_server/Makefile.ci +++ b/examples/gcoap_block_server/Makefile.ci @@ -13,6 +13,7 @@ BOARD_INSUFFICIENT_MEMORY := \ m1284p \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gcoap_dtls/Makefile.ci b/examples/gcoap_dtls/Makefile.ci index 6cc506417f..eb2278c907 100644 --- a/examples/gcoap_dtls/Makefile.ci +++ b/examples/gcoap_dtls/Makefile.ci @@ -32,6 +32,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gcoap_fileserver/Makefile.ci b/examples/gcoap_fileserver/Makefile.ci index ccf3f0f0cc..7eb163419d 100644 --- a/examples/gcoap_fileserver/Makefile.ci +++ b/examples/gcoap_fileserver/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gnrc_border_router/Makefile.ci b/examples/gnrc_border_router/Makefile.ci index 0ae86284ac..2cddd9122c 100644 --- a/examples/gnrc_border_router/Makefile.ci +++ b/examples/gnrc_border_router/Makefile.ci @@ -35,6 +35,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gnrc_networking/Makefile.ci b/examples/gnrc_networking/Makefile.ci index 082969563f..ae39d8c9a6 100644 --- a/examples/gnrc_networking/Makefile.ci +++ b/examples/gnrc_networking/Makefile.ci @@ -16,6 +16,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/gnrc_networking_subnets/Makefile.ci b/examples/gnrc_networking_subnets/Makefile.ci index 9810ffc7b0..45ae6d2e25 100644 --- a/examples/gnrc_networking_subnets/Makefile.ci +++ b/examples/gnrc_networking_subnets/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ m1284p \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/javascript/Makefile.ci b/examples/javascript/Makefile.ci index 286cbcc9a7..9ab137cef9 100644 --- a/examples/javascript/Makefile.ci +++ b/examples/javascript/Makefile.ci @@ -23,6 +23,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/lorawan/Makefile.ci b/examples/lorawan/Makefile.ci index 83360fd8cc..f042c50667 100644 --- a/examples/lorawan/Makefile.ci +++ b/examples/lorawan/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/examples/lua_REPL/Makefile.ci b/examples/lua_REPL/Makefile.ci index 085c59de2d..811a5ad9d9 100644 --- a/examples/lua_REPL/Makefile.ci +++ b/examples/lua_REPL/Makefile.ci @@ -41,6 +41,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/lua_basic/Makefile.ci b/examples/lua_basic/Makefile.ci index 3fa6c5ab42..3c52addf18 100644 --- a/examples/lua_basic/Makefile.ci +++ b/examples/lua_basic/Makefile.ci @@ -15,6 +15,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microbit \ nrf51dk \ nrf51dongle \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/micropython/Makefile.ci b/examples/micropython/Makefile.ci index 4f90cad688..5c78ea7d12 100644 --- a/examples/micropython/Makefile.ci +++ b/examples/micropython/Makefile.ci @@ -8,6 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ microbit \ nrf51dongle \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/nanocoap_server/Makefile.ci b/examples/nanocoap_server/Makefile.ci index cd9ae512ed..6fcb34c595 100644 --- a/examples/nanocoap_server/Makefile.ci +++ b/examples/nanocoap_server/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/paho-mqtt/Makefile.ci b/examples/paho-mqtt/Makefile.ci index ef70f00b8d..3d62d913a9 100644 --- a/examples/paho-mqtt/Makefile.ci +++ b/examples/paho-mqtt/Makefile.ci @@ -27,6 +27,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/posix_select/Makefile.ci b/examples/posix_select/Makefile.ci index 15fd802386..ae6971b10e 100644 --- a/examples/posix_select/Makefile.ci +++ b/examples/posix_select/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/posix_sockets/Makefile.ci b/examples/posix_sockets/Makefile.ci index fe0bf14624..a8fce0e27f 100644 --- a/examples/posix_sockets/Makefile.ci +++ b/examples/posix_sockets/Makefile.ci @@ -17,6 +17,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/psa_crypto/Makefile.ci b/examples/psa_crypto/Makefile.ci index 622ae711a6..4b0abb9a45 100644 --- a/examples/psa_crypto/Makefile.ci +++ b/examples/psa_crypto/Makefile.ci @@ -9,6 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/rust-gcoap/Makefile.ci b/examples/rust-gcoap/Makefile.ci index 7ab263894b..2f6ff8556e 100644 --- a/examples/rust-gcoap/Makefile.ci +++ b/examples/rust-gcoap/Makefile.ci @@ -9,6 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microbit \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/suit_update/Makefile.ci b/examples/suit_update/Makefile.ci index a0bb82a8a0..2a5a320662 100644 --- a/examples/suit_update/Makefile.ci +++ b/examples/suit_update/Makefile.ci @@ -9,6 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \ lsn50 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/telnet_server/Makefile.ci b/examples/telnet_server/Makefile.ci index a9369e4842..f948bfe2a3 100644 --- a/examples/telnet_server/Makefile.ci +++ b/examples/telnet_server/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/twr_aloha/Makefile.ci b/examples/twr_aloha/Makefile.ci index bcb129262f..b8c222fc1f 100644 --- a/examples/twr_aloha/Makefile.ci +++ b/examples/twr_aloha/Makefile.ci @@ -1,6 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/examples/wakaama/Makefile.ci b/examples/wakaama/Makefile.ci index 75605a3de8..47eb840321 100644 --- a/examples/wakaama/Makefile.ci +++ b/examples/wakaama/Makefile.ci @@ -18,6 +18,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microbit \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/examples/wasm/Makefile.ci b/examples/wasm/Makefile.ci index e1b03087fa..cf9726eee7 100644 --- a/examples/wasm/Makefile.ci +++ b/examples/wasm/Makefile.ci @@ -3,6 +3,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/bench/xtimer/Makefile.ci b/tests/bench/xtimer/Makefile.ci index 7ddc7cc47d..0a3316148b 100644 --- a/tests/bench/xtimer/Makefile.ci +++ b/tests/bench/xtimer/Makefile.ci @@ -2,6 +2,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ im880b \ + nucleo-c031c6 \ nucleo-l011k4 \ olimex-msp430-h1611 \ olimex-msp430-h2618 \ diff --git a/tests/bench/ztimer/Makefile.ci b/tests/bench/ztimer/Makefile.ci index 7ddc7cc47d..0a3316148b 100644 --- a/tests/bench/ztimer/Makefile.ci +++ b/tests/bench/ztimer/Makefile.ci @@ -2,6 +2,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ im880b \ + nucleo-c031c6 \ nucleo-l011k4 \ olimex-msp430-h1611 \ olimex-msp430-h2618 \ diff --git a/tests/core/thread_cooperation/Makefile.ci b/tests/core/thread_cooperation/Makefile.ci index 767196f7d0..6adc9bc400 100644 --- a/tests/core/thread_cooperation/Makefile.ci +++ b/tests/core/thread_cooperation/Makefile.ci @@ -10,6 +10,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-l011k4 \ samd10-xmini \ diff --git a/tests/drivers/at86rf215/Makefile.ci b/tests/drivers/at86rf215/Makefile.ci index 83360fd8cc..f042c50667 100644 --- a/tests/drivers/at86rf215/Makefile.ci +++ b/tests/drivers/at86rf215/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/drivers/atwinc15x0/Makefile.ci b/tests/drivers/atwinc15x0/Makefile.ci index 877613d9ab..07e50ceb21 100644 --- a/tests/drivers/atwinc15x0/Makefile.ci +++ b/tests/drivers/atwinc15x0/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/drivers/cc110x/Makefile.ci b/tests/drivers/cc110x/Makefile.ci index 9b47ccae52..8e702ea689 100644 --- a/tests/drivers/cc110x/Makefile.ci +++ b/tests/drivers/cc110x/Makefile.ci @@ -21,6 +21,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/drivers/nrf24l01p_ng/Makefile.ci b/tests/drivers/nrf24l01p_ng/Makefile.ci index f4b4f85ef2..1ef37dca83 100644 --- a/tests/drivers/nrf24l01p_ng/Makefile.ci +++ b/tests/drivers/nrf24l01p_ng/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atxmega-a3bu-xplained \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/drivers/sx127x/Makefile.ci b/tests/drivers/sx127x/Makefile.ci index 83360fd8cc..f042c50667 100644 --- a/tests/drivers/sx127x/Makefile.ci +++ b/tests/drivers/sx127x/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/net/emcute/Makefile.ci b/tests/net/emcute/Makefile.ci index 6f53fcf9f9..90a29f0c2f 100644 --- a/tests/net/emcute/Makefile.ci +++ b/tests/net/emcute/Makefile.ci @@ -33,6 +33,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gcoap_dns/Makefile.ci b/tests/net/gcoap_dns/Makefile.ci index 99ae062ce0..905beae795 100644 --- a/tests/net/gcoap_dns/Makefile.ci +++ b/tests/net/gcoap_dns/Makefile.ci @@ -26,6 +26,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gcoap_fileserver/Makefile.ci b/tests/net/gcoap_fileserver/Makefile.ci index 6cdb6ac26e..6fbb084e2b 100644 --- a/tests/net/gcoap_fileserver/Makefile.ci +++ b/tests/net/gcoap_fileserver/Makefile.ci @@ -21,6 +21,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_dhcpv6_client/Makefile.ci b/tests/net/gnrc_dhcpv6_client/Makefile.ci index 6b35eeb95e..f7360d257d 100644 --- a/tests/net/gnrc_dhcpv6_client/Makefile.ci +++ b/tests/net/gnrc_dhcpv6_client/Makefile.ci @@ -15,6 +15,7 @@ BOARD_INSUFFICIENT_MEMORY := \ im880b \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_dhcpv6_client_6lbr/Makefile.ci b/tests/net/gnrc_dhcpv6_client_6lbr/Makefile.ci index bc608d60c0..dd1c8f3911 100644 --- a/tests/net/gnrc_dhcpv6_client_6lbr/Makefile.ci +++ b/tests/net/gnrc_dhcpv6_client_6lbr/Makefile.ci @@ -36,6 +36,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_dhcpv6_client_stateless/Makefile.ci b/tests/net/gnrc_dhcpv6_client_stateless/Makefile.ci index ddd6dd2067..a7a36a2b4e 100644 --- a/tests/net/gnrc_dhcpv6_client_stateless/Makefile.ci +++ b/tests/net/gnrc_dhcpv6_client_stateless/Makefile.ci @@ -24,6 +24,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_dhcpv6_relay/Makefile.ci b/tests/net/gnrc_dhcpv6_relay/Makefile.ci index 6b35eeb95e..f7360d257d 100644 --- a/tests/net/gnrc_dhcpv6_relay/Makefile.ci +++ b/tests/net/gnrc_dhcpv6_relay/Makefile.ci @@ -15,6 +15,7 @@ BOARD_INSUFFICIENT_MEMORY := \ im880b \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ipv6_ext/Makefile.ci b/tests/net/gnrc_ipv6_ext/Makefile.ci index e71cc7d810..897a161fe0 100644 --- a/tests/net/gnrc_ipv6_ext/Makefile.ci +++ b/tests/net/gnrc_ipv6_ext/Makefile.ci @@ -15,6 +15,7 @@ BOARD_INSUFFICIENT_MEMORY := \ im880b \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ipv6_ext_frag/Makefile.ci b/tests/net/gnrc_ipv6_ext_frag/Makefile.ci index c19d98cc50..432f173ba7 100644 --- a/tests/net/gnrc_ipv6_ext_frag/Makefile.ci +++ b/tests/net/gnrc_ipv6_ext_frag/Makefile.ci @@ -21,6 +21,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ipv6_ext_opt/Makefile.ci b/tests/net/gnrc_ipv6_ext_opt/Makefile.ci index bde8710bff..8838d59e61 100644 --- a/tests/net/gnrc_ipv6_ext_opt/Makefile.ci +++ b/tests/net/gnrc_ipv6_ext_opt/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ipv6_fwd_w_sub/Makefile.ci b/tests/net/gnrc_ipv6_fwd_w_sub/Makefile.ci index 21e889c0d3..a52553f22e 100644 --- a/tests/net/gnrc_ipv6_fwd_w_sub/Makefile.ci +++ b/tests/net/gnrc_ipv6_fwd_w_sub/Makefile.ci @@ -10,6 +10,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ipv6_nib/Makefile.ci b/tests/net/gnrc_ipv6_nib/Makefile.ci index e8226e3e5a..4a04f9f316 100644 --- a/tests/net/gnrc_ipv6_nib/Makefile.ci +++ b/tests/net/gnrc_ipv6_nib/Makefile.ci @@ -9,6 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/net/gnrc_ipv6_nib_6ln/Makefile.ci b/tests/net/gnrc_ipv6_nib_6ln/Makefile.ci index a381b6d049..e4bb1a84ba 100644 --- a/tests/net/gnrc_ipv6_nib_6ln/Makefile.ci +++ b/tests/net/gnrc_ipv6_nib_6ln/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ipv6_nib_dns/Makefile.ci b/tests/net/gnrc_ipv6_nib_dns/Makefile.ci index 0208ac795c..4800846098 100644 --- a/tests/net/gnrc_ipv6_nib_dns/Makefile.ci +++ b/tests/net/gnrc_ipv6_nib_dns/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_ndp/Makefile.ci b/tests/net/gnrc_ndp/Makefile.ci index 88a7af4f0c..3835305d1d 100644 --- a/tests/net/gnrc_ndp/Makefile.ci +++ b/tests/net/gnrc_ndp/Makefile.ci @@ -10,6 +10,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_netif/Makefile.ci b/tests/net/gnrc_netif/Makefile.ci index 846a49e797..53110ed2f6 100644 --- a/tests/net/gnrc_netif/Makefile.ci +++ b/tests/net/gnrc_netif/Makefile.ci @@ -37,6 +37,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_netif_ipv6_wait_for_global_address/Makefile.ci b/tests/net/gnrc_netif_ipv6_wait_for_global_address/Makefile.ci index 99e4a29d44..538860ebd9 100644 --- a/tests/net/gnrc_netif_ipv6_wait_for_global_address/Makefile.ci +++ b/tests/net/gnrc_netif_ipv6_wait_for_global_address/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_rpl/Makefile.ci b/tests/net/gnrc_rpl/Makefile.ci index bb6fa5ebeb..45a8e073f6 100644 --- a/tests/net/gnrc_rpl/Makefile.ci +++ b/tests/net/gnrc_rpl/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_rpl_p2p/Makefile.ci b/tests/net/gnrc_rpl_p2p/Makefile.ci index a99fffe1e2..47686d2dc3 100644 --- a/tests/net/gnrc_rpl_p2p/Makefile.ci +++ b/tests/net/gnrc_rpl_p2p/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_rpl_srh/Makefile.ci b/tests/net/gnrc_rpl_srh/Makefile.ci index e71cc7d810..897a161fe0 100644 --- a/tests/net/gnrc_rpl_srh/Makefile.ci +++ b/tests/net/gnrc_rpl_srh/Makefile.ci @@ -15,6 +15,7 @@ BOARD_INSUFFICIENT_MEMORY := \ im880b \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sixlowpan/Makefile.ci b/tests/net/gnrc_sixlowpan/Makefile.ci index 233dff3623..7330b4a32d 100644 --- a/tests/net/gnrc_sixlowpan/Makefile.ci +++ b/tests/net/gnrc_sixlowpan/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ im880b \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sixlowpan_frag_minfwd/Makefile.ci b/tests/net/gnrc_sixlowpan_frag_minfwd/Makefile.ci index c19d98cc50..432f173ba7 100644 --- a/tests/net/gnrc_sixlowpan_frag_minfwd/Makefile.ci +++ b/tests/net/gnrc_sixlowpan_frag_minfwd/Makefile.ci @@ -21,6 +21,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sixlowpan_frag_sfr/Makefile.ci b/tests/net/gnrc_sixlowpan_frag_sfr/Makefile.ci index 3c9fb13b29..2bd0af1df5 100644 --- a/tests/net/gnrc_sixlowpan_frag_sfr/Makefile.ci +++ b/tests/net/gnrc_sixlowpan_frag_sfr/Makefile.ci @@ -23,6 +23,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci b/tests/net/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci index 47f6e19e9e..96920c7a7f 100644 --- a/tests/net/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci +++ b/tests/net/gnrc_sixlowpan_frag_sfr_congure/Makefile.ci @@ -23,6 +23,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sixlowpan_frag_sfr_congure_impl/Makefile.ci b/tests/net/gnrc_sixlowpan_frag_sfr_congure_impl/Makefile.ci index e05aee30b0..9673025a40 100644 --- a/tests/net/gnrc_sixlowpan_frag_sfr_congure_impl/Makefile.ci +++ b/tests/net/gnrc_sixlowpan_frag_sfr_congure_impl/Makefile.ci @@ -28,6 +28,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sixlowpan_iphc_w_vrb/Makefile.ci b/tests/net/gnrc_sixlowpan_iphc_w_vrb/Makefile.ci index a381b6d049..e4bb1a84ba 100644 --- a/tests/net/gnrc_sixlowpan_iphc_w_vrb/Makefile.ci +++ b/tests/net/gnrc_sixlowpan_iphc_w_vrb/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sock_dns/Makefile.ci b/tests/net/gnrc_sock_dns/Makefile.ci index 9545403b95..92e0336849 100644 --- a/tests/net/gnrc_sock_dns/Makefile.ci +++ b/tests/net/gnrc_sock_dns/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sock_dodtls/Makefile.ci b/tests/net/gnrc_sock_dodtls/Makefile.ci index c19d98cc50..432f173ba7 100644 --- a/tests/net/gnrc_sock_dodtls/Makefile.ci +++ b/tests/net/gnrc_sock_dodtls/Makefile.ci @@ -21,6 +21,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sock_ip/Makefile.ci b/tests/net/gnrc_sock_ip/Makefile.ci index 45f7e6ecfa..3fcf16a1f0 100644 --- a/tests/net/gnrc_sock_ip/Makefile.ci +++ b/tests/net/gnrc_sock_ip/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/net/gnrc_sock_neterr/Makefile.ci b/tests/net/gnrc_sock_neterr/Makefile.ci index 234b8766e6..7a945af81a 100644 --- a/tests/net/gnrc_sock_neterr/Makefile.ci +++ b/tests/net/gnrc_sock_neterr/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/net/gnrc_sock_tcp/Makefile.ci b/tests/net/gnrc_sock_tcp/Makefile.ci index d6679a01e0..91a644a1ee 100644 --- a/tests/net/gnrc_sock_tcp/Makefile.ci +++ b/tests/net/gnrc_sock_tcp/Makefile.ci @@ -18,6 +18,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_sock_udp/Makefile.ci b/tests/net/gnrc_sock_udp/Makefile.ci index eb01c2674c..f199366b1a 100644 --- a/tests/net/gnrc_sock_udp/Makefile.ci +++ b/tests/net/gnrc_sock_udp/Makefile.ci @@ -8,6 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/net/gnrc_tcp/Makefile.ci b/tests/net/gnrc_tcp/Makefile.ci index 4ec2f8b96e..1032458551 100644 --- a/tests/net/gnrc_tcp/Makefile.ci +++ b/tests/net/gnrc_tcp/Makefile.ci @@ -19,6 +19,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_tx_sync/Makefile.ci b/tests/net/gnrc_tx_sync/Makefile.ci index 0bf340e66d..7083d55bfc 100644 --- a/tests/net/gnrc_tx_sync/Makefile.ci +++ b/tests/net/gnrc_tx_sync/Makefile.ci @@ -22,6 +22,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/gnrc_udp/Makefile.ci b/tests/net/gnrc_udp/Makefile.ci index 62a1ab6b28..d7ce75820a 100644 --- a/tests/net/gnrc_udp/Makefile.ci +++ b/tests/net/gnrc_udp/Makefile.ci @@ -24,6 +24,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/nanocoap_cli/Makefile.ci b/tests/net/nanocoap_cli/Makefile.ci index 64194753e5..8639be2c06 100644 --- a/tests/net/nanocoap_cli/Makefile.ci +++ b/tests/net/nanocoap_cli/Makefile.ci @@ -15,6 +15,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/netutils/Makefile.ci b/tests/net/netutils/Makefile.ci index 223568d610..6d03d8db95 100644 --- a/tests/net/netutils/Makefile.ci +++ b/tests/net/netutils/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/slip/Makefile.ci b/tests/net/slip/Makefile.ci index ccbc3a81c1..e9ac8392ed 100644 --- a/tests/net/slip/Makefile.ci +++ b/tests/net/slip/Makefile.ci @@ -12,6 +12,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/sntp/Makefile.ci b/tests/net/sntp/Makefile.ci index cd1597cdf9..90b18bf154 100644 --- a/tests/net/sntp/Makefile.ci +++ b/tests/net/sntp/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/sock_udp_aux/Makefile.ci b/tests/net/sock_udp_aux/Makefile.ci index 9d1a73a961..cd48f71c51 100644 --- a/tests/net/sock_udp_aux/Makefile.ci +++ b/tests/net/sock_udp_aux/Makefile.ci @@ -13,6 +13,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/cryptoauthlib_internal-tests/Makefile.ci b/tests/pkg/cryptoauthlib_internal-tests/Makefile.ci index fb65dbc553..d2d0a7b4b7 100644 --- a/tests/pkg/cryptoauthlib_internal-tests/Makefile.ci +++ b/tests/pkg/cryptoauthlib_internal-tests/Makefile.ci @@ -18,6 +18,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ mega-xplained \ microduino-corerf \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f302r8 \ nucleo-l011k4 \ diff --git a/tests/pkg/elk/Makefile.ci b/tests/pkg/elk/Makefile.ci index 39c5002313..69e8f4b44c 100644 --- a/tests/pkg/elk/Makefile.ci +++ b/tests/pkg/elk/Makefile.ci @@ -1,6 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/emlearn/Makefile.ci b/tests/pkg/emlearn/Makefile.ci index 39a88cb1f1..a938520f27 100644 --- a/tests/pkg/emlearn/Makefile.ci +++ b/tests/pkg/emlearn/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/fatfs_vfs/Makefile.ci b/tests/pkg/fatfs_vfs/Makefile.ci index a5effd177a..3275367775 100644 --- a/tests/pkg/fatfs_vfs/Makefile.ci +++ b/tests/pkg/fatfs_vfs/Makefile.ci @@ -8,6 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/flashdb_vfs/Makefile.ci b/tests/pkg/flashdb_vfs/Makefile.ci index 84248e69c9..6d0692d313 100644 --- a/tests/pkg/flashdb_vfs/Makefile.ci +++ b/tests/pkg/flashdb_vfs/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/libb2/Makefile.ci b/tests/pkg/libb2/Makefile.ci index 39c5002313..69e8f4b44c 100644 --- a/tests/pkg/libb2/Makefile.ci +++ b/tests/pkg/libb2/Makefile.ci @@ -1,6 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/libcose/Makefile.ci b/tests/pkg/libcose/Makefile.ci index 1059c4aaa5..a677466e17 100644 --- a/tests/pkg/libcose/Makefile.ci +++ b/tests/pkg/libcose/Makefile.ci @@ -1,6 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/libfixmath_unittests/Makefile.ci b/tests/pkg/libfixmath_unittests/Makefile.ci index e1b03087fa..cf9726eee7 100644 --- a/tests/pkg/libfixmath_unittests/Makefile.ci +++ b/tests/pkg/libfixmath_unittests/Makefile.ci @@ -3,6 +3,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/libschc/Makefile.ci b/tests/pkg/libschc/Makefile.ci index 84248e69c9..6d0692d313 100644 --- a/tests/pkg/libschc/Makefile.ci +++ b/tests/pkg/libschc/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/littlefs2/Makefile.ci b/tests/pkg/littlefs2/Makefile.ci index 3ac39a5162..03b9fcc7aa 100644 --- a/tests/pkg/littlefs2/Makefile.ci +++ b/tests/pkg/littlefs2/Makefile.ci @@ -8,6 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/lwip/Makefile.ci b/tests/pkg/lwip/Makefile.ci index fa0a6a1f3e..8afe3b56dd 100644 --- a/tests/pkg/lwip/Makefile.ci +++ b/tests/pkg/lwip/Makefile.ci @@ -7,6 +7,7 @@ BOARD_INSUFFICIENT_MEMORY := \ hifive1b \ i-nucleo-lrwan1 \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/lwip_sock_ip/Makefile.ci b/tests/pkg/lwip_sock_ip/Makefile.ci index 83196f65d8..e530fd5f1c 100644 --- a/tests/pkg/lwip_sock_ip/Makefile.ci +++ b/tests/pkg/lwip_sock_ip/Makefile.ci @@ -1,6 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/lwip_sock_tcp/Makefile.ci b/tests/pkg/lwip_sock_tcp/Makefile.ci index e1b03087fa..cf9726eee7 100644 --- a/tests/pkg/lwip_sock_tcp/Makefile.ci +++ b/tests/pkg/lwip_sock_tcp/Makefile.ci @@ -3,6 +3,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/lwip_sock_udp/Makefile.ci b/tests/pkg/lwip_sock_udp/Makefile.ci index 83196f65d8..e530fd5f1c 100644 --- a/tests/pkg/lwip_sock_udp/Makefile.ci +++ b/tests/pkg/lwip_sock_udp/Makefile.ci @@ -1,6 +1,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/lz4/Makefile.ci b/tests/pkg/lz4/Makefile.ci index 122db30e22..3d483c1794 100644 --- a/tests/pkg/lz4/Makefile.ci +++ b/tests/pkg/lz4/Makefile.ci @@ -20,6 +20,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microbit \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/microcoap/Makefile.ci b/tests/pkg/microcoap/Makefile.ci index 9548275e9d..d9981869fb 100644 --- a/tests/pkg/microcoap/Makefile.ci +++ b/tests/pkg/microcoap/Makefile.ci @@ -11,6 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/relic/Makefile.ci b/tests/pkg/relic/Makefile.ci index 486c51d437..65590fe45b 100644 --- a/tests/pkg/relic/Makefile.ci +++ b/tests/pkg/relic/Makefile.ci @@ -2,6 +2,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/semtech-loramac/Makefile.ci b/tests/pkg/semtech-loramac/Makefile.ci index 83360fd8cc..f042c50667 100644 --- a/tests/pkg/semtech-loramac/Makefile.ci +++ b/tests/pkg/semtech-loramac/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/spiffs/Makefile.ci b/tests/pkg/spiffs/Makefile.ci index e5de1bc4a6..f22cdfa088 100644 --- a/tests/pkg/spiffs/Makefile.ci +++ b/tests/pkg/spiffs/Makefile.ci @@ -10,6 +10,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/tflite-micro/Makefile.ci b/tests/pkg/tflite-micro/Makefile.ci index 5e21893841..1688715c6b 100644 --- a/tests/pkg/tflite-micro/Makefile.ci +++ b/tests/pkg/tflite-micro/Makefile.ci @@ -39,6 +39,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/tinydtls_sock_async/Makefile.ci b/tests/pkg/tinydtls_sock_async/Makefile.ci index bc608d60c0..dd1c8f3911 100644 --- a/tests/pkg/tinydtls_sock_async/Makefile.ci +++ b/tests/pkg/tinydtls_sock_async/Makefile.ci @@ -36,6 +36,7 @@ BOARD_INSUFFICIENT_MEMORY := \ msb-430h \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/tinyvcdiff/Makefile.ci b/tests/pkg/tinyvcdiff/Makefile.ci index e685ae4766..a6943910cb 100644 --- a/tests/pkg/tinyvcdiff/Makefile.ci +++ b/tests/pkg/tinyvcdiff/Makefile.ci @@ -9,6 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/utensor/Makefile.ci b/tests/pkg/utensor/Makefile.ci index beaedbcdf5..4a181f5909 100644 --- a/tests/pkg/utensor/Makefile.ci +++ b/tests/pkg/utensor/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ maple-mini \ microbit \ nrf51dongle \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/wolfssl/Makefile.ci b/tests/pkg/wolfssl/Makefile.ci index 40eb37cb3d..d64b474d9b 100644 --- a/tests/pkg/wolfssl/Makefile.ci +++ b/tests/pkg/wolfssl/Makefile.ci @@ -5,6 +5,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f103c8 \ bluepill-stm32f103cb \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/riotboot/Makefile.ci b/tests/riotboot/Makefile.ci index bd55e88be5..324eaa886c 100644 --- a/tests/riotboot/Makefile.ci +++ b/tests/riotboot/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ slstk3400a \ stk3200 \ # diff --git a/tests/riotboot_flashwrite/Makefile.ci b/tests/riotboot_flashwrite/Makefile.ci index b8620949f2..d6d7db3248 100644 --- a/tests/riotboot_flashwrite/Makefile.ci +++ b/tests/riotboot_flashwrite/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/sys/crypto/Makefile.ci b/tests/sys/crypto/Makefile.ci index 9901200766..e87da3121c 100644 --- a/tests/sys/crypto/Makefile.ci +++ b/tests/sys/crypto/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/sys/crypto_aes_ccm/Makefile.ci b/tests/sys/crypto_aes_ccm/Makefile.ci index 9901200766..e87da3121c 100644 --- a/tests/sys/crypto_aes_ccm/Makefile.ci +++ b/tests/sys/crypto_aes_ccm/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microduino-corerf \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/sys/ps_schedstatistics/Makefile.ci b/tests/sys/ps_schedstatistics/Makefile.ci index ef5f4862fb..968fe89d7c 100644 --- a/tests/sys/ps_schedstatistics/Makefile.ci +++ b/tests/sys/ps_schedstatistics/Makefile.ci @@ -8,6 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/sys/pthread_rwlock/Makefile.ci b/tests/sys/pthread_rwlock/Makefile.ci index 35d17e3b9d..0488facc14 100644 --- a/tests/sys/pthread_rwlock/Makefile.ci +++ b/tests/sys/pthread_rwlock/Makefile.ci @@ -10,6 +10,7 @@ BOARD_INSUFFICIENT_MEMORY := \ i-nucleo-lrwan1 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/sys/senml_phydat/Makefile.ci b/tests/sys/senml_phydat/Makefile.ci index 234b8766e6..7a945af81a 100644 --- a/tests/sys/senml_phydat/Makefile.ci +++ b/tests/sys/senml_phydat/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/unittests/Makefile.ci b/tests/unittests/Makefile.ci index af77d4c31e..1716be43d0 100644 --- a/tests/unittests/Makefile.ci +++ b/tests/unittests/Makefile.ci @@ -44,6 +44,7 @@ BOARD_INSUFFICIENT_MEMORY := \ nrf51dk \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ From a67f7782addba3b0d239e030d2fd3f635f2157e4 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Wed, 31 Jan 2024 13:11:05 +0100 Subject: [PATCH 3/3] tests: add nucleo-c031c6 to Makefile.ci --- examples/gnrc_lorawan/Makefile.ci | 1 + tests/core/thread_float/Makefile.ci | 1 + tests/core/thread_stack_alignment/Makefile.ci | 1 + tests/drivers/ds3231/Makefile.ci | 1 + tests/drivers/ili9341/Makefile.ci | 1 + tests/drivers/scd30/Makefile.ci | 1 + tests/drivers/sdp3x/Makefile.ci | 1 + tests/drivers/st77xx/Makefile.ci | 1 + tests/drivers/xbee/Makefile.ci | 1 + tests/net/netstats_neighbor/Makefile.ci | 1 + tests/pkg/fatfs/Makefile.ci | 1 + tests/pkg/lvgl/Makefile.ci | 1 + tests/pkg/lvgl_touch/Makefile.ci | 1 + tests/pkg/monocypher/Makefile.ci | 1 + tests/pkg/ubasic/Makefile.ci | 1 + tests/pkg/ucglib/Makefile.ci | 1 + tests/sys/cpp11_condition_variable/Makefile.ci | 1 + tests/sys/cpp11_thread/Makefile.ci | 1 + 18 files changed, 18 insertions(+) diff --git a/examples/gnrc_lorawan/Makefile.ci b/examples/gnrc_lorawan/Makefile.ci index 7b75f3e2e3..1b095d9ed2 100644 --- a/examples/gnrc_lorawan/Makefile.ci +++ b/examples/gnrc_lorawan/Makefile.ci @@ -8,6 +8,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ msb-430 \ msb-430h \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/core/thread_float/Makefile.ci b/tests/core/thread_float/Makefile.ci index 7ffc2b096e..54f67f94b5 100644 --- a/tests/core/thread_float/Makefile.ci +++ b/tests/core/thread_float/Makefile.ci @@ -14,6 +14,7 @@ BOARD_INSUFFICIENT_MEMORY := \ microbit \ nrf51dongle \ nrf6310 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/core/thread_stack_alignment/Makefile.ci b/tests/core/thread_stack_alignment/Makefile.ci index 5f2032215b..8ac56df13c 100644 --- a/tests/core/thread_stack_alignment/Makefile.ci +++ b/tests/core/thread_stack_alignment/Makefile.ci @@ -5,6 +5,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-l011k4 \ samd10-xmini \ diff --git a/tests/drivers/ds3231/Makefile.ci b/tests/drivers/ds3231/Makefile.ci index 1ff2f623eb..917ed82653 100644 --- a/tests/drivers/ds3231/Makefile.ci +++ b/tests/drivers/ds3231/Makefile.ci @@ -5,6 +5,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/drivers/ili9341/Makefile.ci b/tests/drivers/ili9341/Makefile.ci index 503e5a4624..eb94acf90e 100644 --- a/tests/drivers/ili9341/Makefile.ci +++ b/tests/drivers/ili9341/Makefile.ci @@ -1,5 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/drivers/scd30/Makefile.ci b/tests/drivers/scd30/Makefile.ci index 5bb2959ed0..c9c0d36403 100644 --- a/tests/drivers/scd30/Makefile.ci +++ b/tests/drivers/scd30/Makefile.ci @@ -1,5 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/drivers/sdp3x/Makefile.ci b/tests/drivers/sdp3x/Makefile.ci index 5bb2959ed0..c9c0d36403 100644 --- a/tests/drivers/sdp3x/Makefile.ci +++ b/tests/drivers/sdp3x/Makefile.ci @@ -1,5 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/drivers/st77xx/Makefile.ci b/tests/drivers/st77xx/Makefile.ci index ae1a170cd5..d7f471b8cf 100644 --- a/tests/drivers/st77xx/Makefile.ci +++ b/tests/drivers/st77xx/Makefile.ci @@ -1,5 +1,6 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ + nucleo-c031c6 \ nucleo-l011k4 \ nucleo-l031k6 \ samd10-xmini \ diff --git a/tests/drivers/xbee/Makefile.ci b/tests/drivers/xbee/Makefile.ci index a5a5801714..486b355ae3 100644 --- a/tests/drivers/xbee/Makefile.ci +++ b/tests/drivers/xbee/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/net/netstats_neighbor/Makefile.ci b/tests/net/netstats_neighbor/Makefile.ci index e685ae4766..a6943910cb 100644 --- a/tests/net/netstats_neighbor/Makefile.ci +++ b/tests/net/netstats_neighbor/Makefile.ci @@ -9,6 +9,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega8 \ bluepill-stm32f030c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/fatfs/Makefile.ci b/tests/pkg/fatfs/Makefile.ci index e4212a9a9f..1e579cdd34 100644 --- a/tests/pkg/fatfs/Makefile.ci +++ b/tests/pkg/fatfs/Makefile.ci @@ -6,6 +6,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/pkg/lvgl/Makefile.ci b/tests/pkg/lvgl/Makefile.ci index 3c7a08410c..16e225a94d 100644 --- a/tests/pkg/lvgl/Makefile.ci +++ b/tests/pkg/lvgl/Makefile.ci @@ -3,6 +3,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/lvgl_touch/Makefile.ci b/tests/pkg/lvgl_touch/Makefile.ci index e1b03087fa..cf9726eee7 100644 --- a/tests/pkg/lvgl_touch/Makefile.ci +++ b/tests/pkg/lvgl_touch/Makefile.ci @@ -3,6 +3,7 @@ BOARD_INSUFFICIENT_MEMORY := \ bluepill-stm32f030c8 \ bluepill-stm32f103c8 \ i-nucleo-lrwan1 \ + nucleo-c031c6 \ nucleo-f030r8 \ nucleo-f031k6 \ nucleo-f042k6 \ diff --git a/tests/pkg/monocypher/Makefile.ci b/tests/pkg/monocypher/Makefile.ci index 21f03aed9e..2313f08a82 100644 --- a/tests/pkg/monocypher/Makefile.ci +++ b/tests/pkg/monocypher/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \ diff --git a/tests/pkg/ubasic/Makefile.ci b/tests/pkg/ubasic/Makefile.ci index b2969e92a1..adf722e62c 100644 --- a/tests/pkg/ubasic/Makefile.ci +++ b/tests/pkg/ubasic/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/pkg/ucglib/Makefile.ci b/tests/pkg/ucglib/Makefile.ci index 82175eadd7..fd46f72445 100644 --- a/tests/pkg/ucglib/Makefile.ci +++ b/tests/pkg/ucglib/Makefile.ci @@ -7,6 +7,7 @@ BOARD_INSUFFICIENT_MEMORY := \ atmega328p \ atmega328p-xplained-mini \ atmega8 \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/sys/cpp11_condition_variable/Makefile.ci b/tests/sys/cpp11_condition_variable/Makefile.ci index b2969e92a1..adf722e62c 100644 --- a/tests/sys/cpp11_condition_variable/Makefile.ci +++ b/tests/sys/cpp11_condition_variable/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ nucleo-l011k4 \ samd10-xmini \ stk3200 \ diff --git a/tests/sys/cpp11_thread/Makefile.ci b/tests/sys/cpp11_thread/Makefile.ci index 84248e69c9..6d0692d313 100644 --- a/tests/sys/cpp11_thread/Makefile.ci +++ b/tests/sys/cpp11_thread/Makefile.ci @@ -1,4 +1,5 @@ BOARD_INSUFFICIENT_MEMORY := \ + nucleo-c031c6 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-l011k4 \