diff --git a/CI/build/arduino-cli.py b/CI/build/arduino-cli.py index f6307d5c99..d87ff979a4 100644 --- a/CI/build/arduino-cli.py +++ b/CI/build/arduino-cli.py @@ -492,10 +492,11 @@ def check_status(status, build_conf, boardKo): elif status[1] == 1: # Check if failed due to a region overflowed logFile = os.path.join(build_conf[3], sketch_name + ".log") - error_pattern = re.compile(":\\d+:\\d+:\\serror:\\s") + # error or fatal error + error_pattern = re.compile(r":\d+:\d+:\s.*error:\s") ld_pattern = re.compile("arm-none-eabi/bin/ld:") overflow_pattern = re.compile( - "will not fit in region|region .+ overflowed by [\\d]+ bytes" + r"will not fit in region|region .+ overflowed by [\d]+ bytes" ) error_found = False for i, line in enumerate(open(logFile)): diff --git a/CI/build/conf/cores_config.json b/CI/build/conf/cores_config.json index e815c5f5f3..50a345662f 100644 --- a/CI/build/conf/cores_config.json +++ b/CI/build/conf/cores_config.json @@ -23,9 +23,56 @@ ], "sketches": [ { + "comment": "By default, ignore all those boards", + "pattern": "^.*$", + "applicable": false, + "boards": [ + "AFROFLIGHT_F103CB_12M", + "BLACKPILL_F103CB", + "BLACK_F407VG", + "BLACK_F407ZE", + "BLACK_F407ZG", + "BLUEPILL_F103C6", + "BLUEPILL_F103CB", + "DEMO_F030F4_16M", + "DEMO_F030F4_HSI", + "Generic_F103R8T6", + "Generic_F103RBT6", + "Generic_F103RCT6", + "Generic_F103ZC", + "Generic_F103ZD", + "Generic_F103ZE", + "Generic_F103ZF", + "Generic_F401CB", + "Generic_F401CC", + "Generic_F401CD", + "Generic_F401RB", + "Generic_F401RC", + "Generic_F401RD", + "Generic_F405RG", + "Generic_F407VE", + "Generic_F410C8", + "Generic_F410R8", + "Generic_F411CC", + "Generic_F411RE", + "Generic_F412CE", + "Generic_F412RE", + "Generic_F413CG", + "Generic_F413RG", + "Generic_F417VE", + "Generic_F423CH", + "Generic_F446RC", + "NUCLEO_H743ZI", + "NUCLEO_L496ZG", + "NUCLEO_L4R5ZI", + "RAK811_TRACKERA" + ] + }, + { + "comment": "Ignore also those boards except for BareMinimum", "pattern": "^((?!BareMinimum).)*$", "applicable": false, - "boards": [ "DEMO_F030F4", "DEMO_F030F4_16M", "DEMO_F030F4_HSI", "RHF76_052" ] + "boards": [ "DEMO_F030F4", "RHF76_052" ] }, { "pattern": "DISCO_IOT_|M24SR64-Y|MX25R6435F", @@ -52,13 +99,9 @@ "applicable": false, "boards": [ "AFROFLIGHT_F103CB", - "AFROFLIGHT_F103CB_12M", "ARMED_V1", "BLUE_F407VE_Mini", "BLACKPILL_F103C8", - "BLACKPILL_F103CB", - "BLUEPILL_F103C6", - "BLUEPILL_F103C8", "BLUEPILL_F103CB", "BLACKPILL_F303CC", "BLACKPILL_F401CC", @@ -67,9 +110,6 @@ "EEXTR_F030_V1", "ELEKTOR_F072C8", "FEATHER_F405", - "Generic_F103R8T6", - "Generic_F103RBT6", - "Generic_F103RCT6", "Generic_F103RET6", "HY_TinySTM103TB", "MALYANM200_F070CB", @@ -85,7 +125,6 @@ "PRNTR_V2", "RUMBA32", "RAK811_TRACKER", - "RAK811_TRACKERA", "REMRAM_V1", "Sparky_V1", "Wraith32_V1" @@ -105,14 +144,14 @@ "pattern": "Firmata/", "applicable": false, "boards": [ - "BLUEPILL_F103C6", "EEXTR_F030_V1", "ELEKTOR_F072C8", "MALYANM200_F103CB", - "PX_HER0", "STEVAL_MKSBOX1V1", "VAKE_F446VE", "Wraith32_V1" + "EEXTR_F030_V1", "ELEKTOR_F072C8", "FYSETC_S6", "MALYANM200_F103CB", + "PRNTR_V2", "PX_HER0", "STEVAL_MKSBOX1V1", "VAKE_F446VE", "Wraith32_V1" ] }, { "pattern": "Blink(WithoutDelay)?", "applicable": false, - "boards": [ "EEXTR_F030_V1", "MALYANM200_F103CB", "PRNTR_V2" ] + "boards": [ "EEXTR_F030_V1", "FYSETC_S6", "MALYANM200_F103CB", "PRNTR_V2" ] }, { "pattern": "STM32SD", @@ -123,7 +162,7 @@ "pattern": "Ethernet/|STM32FreeRTOS", "applicable": false, "boards": [ - "BLUEPILL_F103C6", "EEXTR_F030_V1", "MALYANM200_F103CB", "NUCLEO_F030R8", + "EEXTR_F030_V1", "FYSETC_S6", "MALYANM200_F103CB", "NUCLEO_F030R8", "NUCLEO_L031K6", "PRNTR_V2" ] }, { @@ -152,22 +191,15 @@ "applicable": false, "boards": [ "AFROFLIGHT_F103CB", - "AFROFLIGHT_F103CB_12M", "ARMED_V1", "BLACKPILL_F103C8", - "BLACKPILL_F103CB", - "BLUEPILL_F103C6", "BLUEPILL_F103C8", - "BLUEPILL_F103CB", "BLACKPILL_F303CC", "BLACKPILL_F401CC", "BLUE_F407VE_Mini", "CoreBoard_F401RC", "DIYMORE_F407VGT", "EEXTR_F030_V1", - "Generic_F103R8T6", - "Generic_F103RBT6", - "Generic_F103RCT6", "Generic_F103RET6", "HY_TinySTM103TB", "MALYANM200_F070CB", @@ -198,16 +230,15 @@ "applicable": false, "boards": [ "ARMED_V1", - "BLUEPILL_F103C6", "EEXTR_F030_V1", "ELEKTOR_F072C8", "FEATHER_F405", + "FYSETC_S6", "MALYANM200_F103CB", "NUCLEO_L031K6", "PRNTR_V2", "PX_HER0", "RAK811_TRACKER", - "RAK811_TRACKERA", "REMRAM_V1", "STEVAL_MKSBOX1V1", "THUNDERPACK_F411", @@ -223,7 +254,6 @@ "EEXTR_F030_V1", "PX_HER0", "RAK811_TRACKER", - "RAK811_TRACKERA", "REMRAM_V1", "STEVAL_MKSBOX1V1", "THUNDERPACK_F411", @@ -237,19 +267,18 @@ "ARMED_V1", "EEXTR_F030_V1", "RAK811_TRACKER", - "RAK811_TRACKERA", "STEVAL_MKSBOX1V1" ] }, { "pattern": "SerialLoop|Tests_basic_functions", "applicable": false, - "boards": [ "BLUEPILL_F103C6", "NUCLEO_L031K6", "Wraith32_V1" ] + "boards": [ "NUCLEO_L031K6", "Wraith32_V1" ] }, { "pattern": "(Alarm)?TimedWak(e)?up|SerialDeepSleep", "applicable": false, - "boards": [ "EEXTR_F030_V1", "MALYANM200_F103CB", "PRNTR_V2", "STEVAL_MKSBOX1V1" ] + "boards": [ "EEXTR_F030_V1", "FYSETC_S6", "MALYANM200_F103CB", "PRNTR_V2", "STEVAL_MKSBOX1V1" ] }, { "pattern": "ArduinoISP", @@ -278,8 +307,7 @@ "pattern": "PWM_FullConfiguration", "applicable": false, "boards": [ - "GENERIC_F401RB", "GENERIC_F401RC", "GENERIC_F401RD", "GENERIC_F401RE", - "HY_TinySTM103TB", "THUNDERPACK_F411", "THUNDERPACK_L072" + "GENERIC_F401RE", "HY_TinySTM103TB", "THUNDERPACK_F411", "THUNDERPACK_L072" ] }, { diff --git a/CI/build/conf/cores_config_ci.json b/CI/build/conf/cores_config_ci.json index 1aec0925d7..2de82e2220 100644 --- a/CI/build/conf/cores_config_ci.json +++ b/CI/build/conf/cores_config_ci.json @@ -34,6 +34,7 @@ "BLUEPILL_F103C6", "BLUEPILL_F103CB", "DEMO_F030F4_16M", + "DEMO_F030F4_HSI", "Generic_F103R8T6", "Generic_F103RBT6", "Generic_F103RCT6", @@ -47,6 +48,7 @@ "Generic_F401RB", "Generic_F401RC", "Generic_F401RD", + "Generic_F405RG", "Generic_F407VE", "Generic_F410C8", "Generic_F410R8", diff --git a/README.md b/README.md index 36e188e990..efdde6db41 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d | :---: | --- | :---: | :--- | | :green_heart: | [BluePill F103C(6-8-B)](https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill) | *1.2.0* | USB CDC support since *1.5.0*, Maple bootloaders support since *1.6.0* | | :green_heart: | [BlackPill F103C(8-B)](https://stm32-base.org/boards/STM32F103C8T6-Black-Pill) | *1.5.0* | | -| :green_heart: | [Generic F103R(8-B-C-E)T6](https://stm32-base.org/boards/STM32F103RET6-Generic-Board) | *1.7.0* | Blue Button | +| :green_heart: | [Generic F103R(8-B-C-E)T6](https://stm32-base.org/boards/STM32F103RET6-Generic-Board) | *1.7.0* | | | :yellow_heart: | Generic F103Z(C-D-E-F-G) | **1.9.0** | | | :green_heart: | HY-TinySTM103T | *1.5.0* | | | :green_heart: | MapleMini F103CB | *1.2.0* | USB CDC support since *1.5.0*, Maple bootloaders support since *1.6.0* | diff --git a/boards.txt b/boards.txt index 0e7420c392..13f3fae4c4 100644 --- a/boards.txt +++ b/boards.txt @@ -873,29 +873,29 @@ GenF1.menu.pnum.BLACKPILL_F103CB.build.board=BLACKPILL_F103CB GenF1.menu.pnum.BLACKPILL_F103CB.build.product_line=STM32F103xB GenF1.menu.pnum.BLACKPILL_F103CB.build.variant=PILL_F103XX -# Generic STM32F103Rx boards (Blue button) -GenF1.menu.pnum.Generic_F103R8T6=Generic F103R8T6 (Blue Button) +# Generic STM32F103Rx boards +GenF1.menu.pnum.Generic_F103R8T6=Generic F103R8T6 GenF1.menu.pnum.Generic_F103R8T6.upload.maximum_size=65536 GenF1.menu.pnum.Generic_F103R8T6.upload.maximum_data_size=20480 GenF1.menu.pnum.Generic_F103R8T6.build.board=GENERIC_F103R8T6 GenF1.menu.pnum.Generic_F103R8T6.build.product_line=STM32F103xB GenF1.menu.pnum.Generic_F103R8T6.build.variant=Generic_F103Rx -GenF1.menu.pnum.Generic_F103RBT6=Generic F103RBT6 (Blue Button) +GenF1.menu.pnum.Generic_F103RBT6=Generic F103RBT6 GenF1.menu.pnum.Generic_F103RBT6.upload.maximum_size=131072 GenF1.menu.pnum.Generic_F103RBT6.upload.maximum_data_size=20480 GenF1.menu.pnum.Generic_F103RBT6.build.board=GENERIC_F103RBT6 GenF1.menu.pnum.Generic_F103RBT6.build.product_line=STM32F103xB GenF1.menu.pnum.Generic_F103RBT6.build.variant=Generic_F103Rx -GenF1.menu.pnum.Generic_F103RCT6=Generic F103RCT6 (Blue Button) +GenF1.menu.pnum.Generic_F103RCT6=Generic F103RCT6 GenF1.menu.pnum.Generic_F103RCT6.upload.maximum_size=262144 GenF1.menu.pnum.Generic_F103RCT6.upload.maximum_data_size=49152 GenF1.menu.pnum.Generic_F103RCT6.build.board=GENERIC_F103RCT6 GenF1.menu.pnum.Generic_F103RCT6.build.product_line=STM32F103xE GenF1.menu.pnum.Generic_F103RCT6.build.variant=Generic_F103Rx -GenF1.menu.pnum.Generic_F103RET6=Generic F103RET6 (Blue Button) +GenF1.menu.pnum.Generic_F103RET6=Generic F103RET6 GenF1.menu.pnum.Generic_F103RET6.upload.maximum_size=524288 GenF1.menu.pnum.Generic_F103RET6.upload.maximum_data_size=65536 GenF1.menu.pnum.Generic_F103RET6.build.board=GENERIC_F103RET6 diff --git a/variants/BLACK_F407XX/variant.h b/variants/BLACK_F407XX/variant.h index fb3c7d4144..341421c87b 100644 --- a/variants/BLACK_F407XX/variant.h +++ b/variants/BLACK_F407XX/variant.h @@ -290,15 +290,9 @@ extern "C" { // UART Definitions // Define here Serial instance number to map on Serial generic name -#define SERIAL_UART_INSTANCE 1 //ex: 2 for Serial2 (USART2) -// DEBUG_UART could be redefined to print on another instance than 'Serial' -//#define DEBUG_UART ((USART_TypeDef *) U(S)ARTX) // ex: USART3 -// DEBUG_UART baudrate, default: 9600 if not defined -//#define DEBUG_UART_BAUDRATE x -// DEBUG_UART Tx pin name, default: the first one found in PinMap_UART_TX for DEBUG_UART -//#define DEBUG_PINNAME_TX PX_n // PinName used for TX +#define SERIAL_UART_INSTANCE 1 -// Default pin used for 'Serial' instance (ex: ST-Link) +// Default pin used for 'Serial' instance // Mandatory for Firmata #define PIN_SERIAL_RX PA10 #define PIN_SERIAL_TX PA9 diff --git a/variants/Generic_F103Rx/variant.cpp b/variants/Generic_F103Rx/variant.cpp index 917c5ca9da..4d815a34d7 100644 --- a/variants/Generic_F103Rx/variant.cpp +++ b/variants/Generic_F103Rx/variant.cpp @@ -23,6 +23,14 @@ extern "C" { #endif const PinName digitalPin[] = { + PA_0, + PA_1, + PA_2, + PA_3, + PA_4, + PA_5, + PA_6, + PA_7, PA_8, PA_9, // RXD PA_10, // TXD @@ -31,6 +39,8 @@ const PinName digitalPin[] = { PA_13, // JTDI PA_14, // JTCK PA_15, + PB_0, + PB_1, PB_2, PB_3, // JTDO PB_4, // JTRST @@ -45,6 +55,12 @@ const PinName digitalPin[] = { PB_13, PB_14, PB_15, + PC_0, + PC_1, + PC_2, + PC_3, + PC_4, + PC_5, PC_6, PC_7, PC_8, @@ -53,28 +69,31 @@ const PinName digitalPin[] = { PC_11, PC_12, PC_13, - NC, // PC_14 OSC32_1 - NC, // PC_15 OSC32_2 - NC, // PD_0 OSCIN - NC, // PD_1 OSCOUT - PD_2, + PC_14, // OSC32_1 + PC_15, // OSC32_2 + PD_0, // OSCIN + PD_1, // OSCOUT + PD_2 +}; - PA_0, - PA_1, - PA_2, - PA_3, - PA_4, - PA_5, - PA_6, - PA_7, - PB_0, - PB_1, - PC_0, - PC_1, - PC_2, - PC_3, - PC_4, - PC_5 +// Analog (Ax) pin number array +const uint32_t analogInputPin[] = { + 0, // A0, PA0 + 1, // A1, PA1 + 2, // A2, PA2 + 3, // A3, PA3 + 4, // A4, PA4 + 5, // A5, PA5 + 6, // A6, PA6 + 7, // A7, PA7 + 16, // A8, PB0 + 17, // A9, PB1 + 32, // A10, PC0 + 33, // A11, PC1 + 34, // A12, PC2 + 35, // A13, PC3 + 36, // A14, PC4 + 37 // A15, PC5 }; #ifdef __cplusplus diff --git a/variants/Generic_F103Rx/variant.h b/variants/Generic_F103Rx/variant.h index 31c51a60f4..ac048e3b18 100644 --- a/variants/Generic_F103Rx/variant.h +++ b/variants/Generic_F103Rx/variant.h @@ -27,69 +27,77 @@ extern "C" { * Pins *----------------------------------------------------------------------------*/ -#define PA8 0 -#define PA9 1 -#define PA10 2 -#define PA11 3 -#define PA12 4 -#define PA13 5 -#define PA14 6 -#define PA15 7 -#define PB2 8 -#define PB3 9 -#define PB4 10 -#define PB5 11 -#define PB6 12 -#define PB7 13 -#define PB8 14 -#define PB9 15 -#define PB10 16 -#define PB11 17 -#define PB12 18 -#define PB13 19 -#define PB14 20 -#define PB15 21 -#define PC6 22 -#define PC7 23 -#define PC8 24 -#define PC9 25 -#define PC10 26 -#define PC11 27 -#define PC12 28 -#define PC13 29 -#define PC14 30 -#define PC15 31 -#define PD0 32 -#define PD1 33 -#define PD2 34 - -#define PA0 35 -#define PA1 36 -#define PA2 37 -#define PA3 38 -#define PA4 39 -#define PA5 40 -#define PA6 41 -#define PA7 42 -#define PB0 43 -#define PB1 44 -#define PC0 45 -#define PC1 46 -#define PC2 47 -#define PC3 48 -#define PC4 49 -#define PC5 50 +#define PA0 A0 +#define PA1 A1 +#define PA2 A2 +#define PA3 A3 +#define PA4 A4 +#define PA5 A5 +#define PA6 A6 +#define PA7 A7 +#define PA8 8 +#define PA9 9 +#define PA10 10 +#define PA11 11 +#define PA12 12 +#define PA13 13 +#define PA14 14 +#define PA15 15 + +#define PB0 A8 +#define PB1 A9 +#define PB2 18 +#define PB3 19 +#define PB4 20 +#define PB5 21 +#define PB6 22 +#define PB7 23 +#define PB8 24 +#define PB9 25 +#define PB10 26 +#define PB11 27 +#define PB12 28 +#define PB13 29 +#define PB14 30 +#define PB15 31 + +#define PC0 A10 +#define PC1 A11 +#define PC2 A12 +#define PC3 A13 +#define PC4 A14 +#define PC5 A15 +#define PC6 38 +#define PC7 39 +#define PC8 40 +#define PC9 41 +#define PC10 42 +#define PC11 43 +#define PC12 44 +#define PC13 45 +#define PC14 46 +#define PC15 47 + +#define PD0 48 +#define PD1 49 +#define PD2 50 // This must be a literal #define NUM_DIGITAL_PINS 51 // This must be a literal with a value less than or equal to to MAX_ANALOG_INPUTS #define NUM_ANALOG_INPUTS 16 -#define NUM_ANALOG_FIRST 35 // On-board LED pin number -#define LED_BUILTIN PB11 +#ifndef LED_BUILTIN +#define LED_BUILTIN PB11 // On some generic board with a blue button +#endif #define LED_GREEN LED_BUILTIN +// On-board user button +#ifndef USER_BTN +#define USER_BTN PC13 +#endif + // Override default Arduino configuration // SPI Definitions #define PIN_SPI_SS PA4 diff --git a/variants/Generic_F103Zx/variant.h b/variants/Generic_F103Zx/variant.h index f3f908ab76..3e466d7696 100644 --- a/variants/Generic_F103Zx/variant.h +++ b/variants/Generic_F103Zx/variant.h @@ -149,6 +149,13 @@ extern "C" { #define LED_BUILTIN PG15 #elif defined(ARDUINO_VCCGND_F103ZET6) #define LED_BUILTIN PC13 +#elif !defined(LED_BUILTIN) +#define LED_BUILTIN PC13 +#endif + +// On-board user button +#ifndef USER_BTN +#define USER_BTN PB1 #endif // SPI Definitions diff --git a/variants/Generic_F411Cx/variant.h b/variants/Generic_F411Cx/variant.h index fbe68e38d6..c4488de4b3 100644 --- a/variants/Generic_F411Cx/variant.h +++ b/variants/Generic_F411Cx/variant.h @@ -74,8 +74,7 @@ extern "C" { // On-board LED pin number #ifdef ARDUINO_BLACKPILL_F411CE #define LED_BUILTIN PC13 -#endif -#ifndef LED_BUILTIN +#elif !defined(LED_BUILTIN) #define LED_BUILTIN PA5 #endif #define LED_GREEN LED_BUILTIN @@ -83,8 +82,7 @@ extern "C" { // On-board user button #ifdef ARDUINO_BLACKPILL_F411CE #define USER_BTN PA0 -#endif -#if !defined(USER_BTN) +#elif !defined(USER_BTN) #define USER_BTN PC13 #endif diff --git a/variants/Generic_F4x5RG/variant.h b/variants/Generic_F4x5RG/variant.h index 834623d789..06256625d6 100644 --- a/variants/Generic_F4x5RG/variant.h +++ b/variants/Generic_F4x5RG/variant.h @@ -106,6 +106,10 @@ extern "C" { #define TIMER_TONE TIM6 #define TIMER_SERVO TIM7 +// UART Definitions +// Define here Serial instance number to map on Serial generic name +#define SERIAL_UART_INSTANCE 2 + // Default pin used for 'Serial' instance // Mandatory for Firmata #define PIN_SERIAL_RX PA3