From cd76352a0693c657e94d250d7d02769f5fee2a83 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:27:24 +0200 Subject: [PATCH 01/14] fix(boards.txt): remove warnings raised by arduino-lint even if those pattern properties are present thanks other patterns to shorten some recipe lines. WARNING: recipe.c.o.pattern property value does not contain a {compiler.c.extra_flags} reference. This is necessary to allow the user to customize the compiler command. (Rule PF057) WARNING: recipe.S.o.pattern property value does not contain a {compiler.S.extra_flags} reference. This is necessary to allow the user to customize the compiler command. (Rule PF063) Signed-off-by: Frederic Pillon --- platform.txt | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/platform.txt b/platform.txt index 20bb576336..2a2fa4e1dd 100644 --- a/platform.txt +++ b/platform.txt @@ -71,12 +71,6 @@ compiler.elf2hex.extra_flags= compiler.arm.cmsis.c.flags="-I{runtime.tools.CMSIS-5.7.0.path}/CMSIS/Core/Include/" "-I{build.system.path}/Drivers/CMSIS/Device/ST/{build.series}/Include/" "-I{build.system.path}/Drivers/CMSIS/Device/ST/{build.series}/Source/Templates/gcc/" "-I{runtime.tools.CMSIS-5.7.0.path}/CMSIS/DSP/Include" "-I{runtime.tools.CMSIS-5.7.0.path}/CMSIS/DSP/PrivateInclude" compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.7.0.path}/CMSIS/DSP/Lib/GCC/" -l{build.cmsis_lib_gcc} -# Groups some extra_flags properties to shorten recipe lines and allows arduino-cli to -# override some standard Arduino build property with a custom value. -build.g_extra_flags={build.st_extra_flags} {build.extra_flags} -compiler.c.g_extra_flags={compiler.c.st_extra_flags} {compiler.c.extra_flags} -compiler.S.g_extra_flags={compiler.S.st_extra_flags} {compiler.S.extra_flags} - # USB Flags # --------- build.usb_flags=-DUSBCON {build.usb_speed} -DUSBD_VID={build.vid} -DUSBD_PID={build.pid} -DHAL_PCD_MODULE_ENABLED @@ -128,13 +122,13 @@ recipe.hooks.prebuild.1.pattern.windows="{runtime.tools.STM32Tools.path}/win/bus # --------------------- ## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} {build.info.flags} {compiler.c.g_extra_flags} {build.g_extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}" +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} {build.info.flags} {compiler.c.st_extra_flags} {compiler.c.extra_flags} {build.st_extra_flags} {build.extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}" ## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {build.info.flags} {compiler.cpp.extra_flags} {build.g_extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}" +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {build.info.flags} {compiler.cpp.extra_flags} {build.st_extra_flags} {build.extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}" ## Compile S files -recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} {build.info.flags} {compiler.S.g_extra_flags} {build.g_extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}" +recipe.S.o.pattern="{compiler.path}{compiler.S.cmd}" {compiler.S.flags} {build.info.flags} {compiler.S.st_extra_flags} {compiler.S.extra_flags} {build.st_extra_flags} {build.extra_flags} {compiler.arm.cmsis.c.flags} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" From 085c68a5e7e1192dbe9b439b75d9dec1efc59ed8 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:30:29 +0200 Subject: [PATCH 02/14] fix(CMSIS_DSP): remove warning raised by arduino-lint WARNING: library.properties name CMSIS DSP contains spaces. Although supported, best practices is to not use spaces. (Rule LP015) Signed-off-by: Frederic Pillon --- libraries/CMSIS_DSP/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/CMSIS_DSP/library.properties b/libraries/CMSIS_DSP/library.properties index d89c332dcb..5b88954b97 100644 --- a/libraries/CMSIS_DSP/library.properties +++ b/libraries/CMSIS_DSP/library.properties @@ -1,4 +1,4 @@ -name=CMSIS DSP +name=CMSIS_DSP version=1.0.0 author=Frederic Pillon maintainer=stm32duino From 2defba5389f5e13dfe2e3901d66fa5f9fdc152ec Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:31:41 +0200 Subject: [PATCH 03/14] fix(IWatchdog): remove errors and warnings raised by arduino-lint ERROR: library.properties url value is less than minimum length. (Rule LP056) ERROR: library.properties url field value does not have a valid URL format. (Rule LP041) WARNING: Unable to load the library.properties url field: Head "": unsupported protocol scheme "" (Rule LP042) Signed-off-by: Frederic Pillon --- libraries/IWatchdog/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/IWatchdog/library.properties b/libraries/IWatchdog/library.properties index 114a9a03ed..216bd65248 100644 --- a/libraries/IWatchdog/library.properties +++ b/libraries/IWatchdog/library.properties @@ -5,5 +5,5 @@ maintainer=stm32duino sentence=Enables support for independent watchdog (IWDG) hardware on STM32 processors. paragraph=Independent watchdog (IWDG) is a hardware timer on the chip which would generate a reset condition if the time is not reloaded within the specified time. It is generally used in production systems to reset the system if the CPU becomes "stuck". category=Timing -url= +url=https://github.com/stm32duino/Arduino_Core_STM32/blob/main/libraries/IWatchdog/README.md architectures=stm32 From d1e66f96dacb49ce8d43d159961cb6d8d9767c4e Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:32:37 +0200 Subject: [PATCH 04/14] fix(Keyboard): remove warnings raised by arduino-lint WARNING: library.properties maintainer value Arduino starts with "Arduino". 3rd party libraries are not maintained by Arduino. (Rule LP027) WARNING: library.properties maintainer value Arduino contains "Arduino". 3rd party libraries are not maintained by Arduino. (Rule LP057) Signed-off-by: Frederic Pillon --- libraries/Keyboard/library.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/Keyboard/library.properties b/libraries/Keyboard/library.properties index 8eea681d30..1533d990c3 100644 --- a/libraries/Keyboard/library.properties +++ b/libraries/Keyboard/library.properties @@ -1,9 +1,9 @@ name=Keyboard version=1.1.0 -author=Arduino -maintainer=Arduino -sentence=Allows an Arduino/Genuino board with USB capabilities to act as a Keyboard. -paragraph=This library plugs on the HID library. It can be used with or without other HID-based libraries (Mouse, Gamepad etc) +author=Arduino, stm32duino +maintainer=stm32duino +sentence=Allows a STM32 based board with USB capabilities to act as a Keyboard. +paragraph=This library plugs on the HID implementation provided by the core. category=Device Control url=http://www.arduino.cc/en/Reference/Keyboard architectures=stm32 From f63ca83f5b1f542d4ad7a5e62948c2abcb0ad059 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:33:05 +0200 Subject: [PATCH 05/14] fix(Mouse): remove warnings raised by arduino-lint WARNING: library.properties maintainer value Arduino starts with "Arduino". 3rd party libraries are not maintained by Arduino. (Rule LP027) WARNING: library.properties maintainer value Arduino contains "Arduino". 3rd party libraries are not maintained by Arduino. (Rule LP057) Signed-off-by: Frederic Pillon --- libraries/Mouse/library.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/Mouse/library.properties b/libraries/Mouse/library.properties index 74d2c5f114..eff500cead 100644 --- a/libraries/Mouse/library.properties +++ b/libraries/Mouse/library.properties @@ -1,9 +1,9 @@ name=Mouse version=1.1.0 -author=Arduino -maintainer=Arduino -sentence=Allows an Arduino board with USB capabilities to act as a Mouse. For Leonardo/Micro only -paragraph=This library plugs on the HID library. Can be used with or without other HID-based libraries (Keyboard, Gamepad etc) +author=Arduino, stm32duino +maintainer=stm32duino +sentence=Allows a STM32 based board with USB capabilities to act as a Mouse. +paragraph=This library plugs on the HID implementation provided by the core. category=Device Control url=http://www.arduino.cc/en/Reference/Mouse architectures=stm32 From 52638dac992d57fea0218737eddfa0504f8233fb Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:33:56 +0200 Subject: [PATCH 06/14] fix(RGB_LED_TCL_59731): remove warning raised by arduino-lint WARNING: library.properties name RGB LED TLC59731 contains spaces. Although supported, best practices is to not use spaces. (Rule LP015) Signed-off-by: Frederic Pillon --- libraries/RGB_LED_TLC59731/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/RGB_LED_TLC59731/library.properties b/libraries/RGB_LED_TLC59731/library.properties index acfeaa4410..635961b0ac 100644 --- a/libraries/RGB_LED_TLC59731/library.properties +++ b/libraries/RGB_LED_TLC59731/library.properties @@ -1,4 +1,4 @@ -name=RGB LED TLC59731 +name=RGB_LED_TLC59731 version=1.0.0 author=Frederic Pillon maintainer=stm32duino From 0391a7e6a4e183628d1e170c66ad6fa86eb8d71f Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:34:37 +0200 Subject: [PATCH 07/14] fix(SPI): remove warning raised by arduino-lint WARNING: library.properties version value 1.0 is not compliant with the semver specification. See https://semver.org/ (Rule LP021) Signed-off-by: Frederic Pillon --- libraries/SPI/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/SPI/library.properties b/libraries/SPI/library.properties index 0b6c665f63..0edf297586 100644 --- a/libraries/SPI/library.properties +++ b/libraries/SPI/library.properties @@ -1,5 +1,5 @@ name=SPI -version=1.0 +version=1.0.0 author=Arduino, Wi6Labs maintainer=stm32duino sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. From d0bda023bb2cd8f817ac5e78b09699fc66b724fd Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:35:07 +0200 Subject: [PATCH 08/14] fix(Servo): remove warnings raised by arduino-lint WARNING: library.properties maintainer value Arduino starts with "Arduino". 3rd party libraries are not maintained by Arduino. (Rule LP027) WARNING: library.properties maintainer value Arduino contains "Arduino". 3rd party libraries are not maintained by Arduino. (Rule LP057) Signed-off-by: Frederic Pillon --- libraries/Servo/library.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/Servo/library.properties b/libraries/Servo/library.properties index 7875ecd0aa..1d3cd276d0 100644 --- a/libraries/Servo/library.properties +++ b/libraries/Servo/library.properties @@ -1,8 +1,8 @@ name=Servo version=1.1.2 author=Michael Margolis, Arduino -maintainer=Arduino -sentence=Allows Arduino/Genuino boards to control a variety of servo motors. +maintainer=stm32duino +sentence=Allows Arduino/Genuino and STM32 based boards to control a variety of servo motors. paragraph=This library can control a great number of servos.
It makes careful use of timers: the library can control 12 servos using only 1 timer.
On the Arduino Due you can control up to 60 servos.
category=Device Control url=http://www.arduino.cc/en/Reference/Servo From 03deb0dcb1cbed987232a7cac80101d1081e0ddc Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:35:50 +0200 Subject: [PATCH 09/14] fix(Softwareserial): remove warning raised by arduino-lint WARNING: library.properties version value 1.0 is not compliant with the semver specification. See https://semver.org/ (Rule LP021) Signed-off-by: Frederic Pillon --- libraries/SoftwareSerial/library.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/SoftwareSerial/library.properties b/libraries/SoftwareSerial/library.properties index 4dcebb4106..4bf36a6600 100644 --- a/libraries/SoftwareSerial/library.properties +++ b/libraries/SoftwareSerial/library.properties @@ -1,9 +1,9 @@ name=SoftwareSerial -version=1.0 +version=1.0.0 author=Arduino, Armin van der Togt maintainer=stm32duino sentence=Enables serial communication on any digital pin. -paragraph=The SoftwareSerial library has been developed to allow serial communication on any digital pin of the board, using software to replicate the functionality of the hardware UART. It is possible to have multiple software serial ports. +paragraph=The SoftwareSerial library has been developed to allow serial communication on any digital pin of the board, using software to replicate the functionality of the hardware UART. It is possible to have multiple software serial ports. category=Communication url=http://www.arduino.cc/en/Reference/SoftwareSerial architectures=stm32 From 5899a6452f6b10dcf551565799a0cec3824830cf Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:36:36 +0200 Subject: [PATCH 10/14] fix(SrcWrapper): remove errors and warnings raised by arduino-lint WARNING: No header file found matching library name (Source_Wrapper.h). Best practices are for primary header filename to match library name. (Rule LS008) WARNING: library.properties name Source Wrapper contains spaces. Although supported, best practices is to not use spaces. (Rule LP015) ERROR: library.properties url value is less than minimum length. (Rule LP056) ERROR: library.properties url field value does not have a valid URL format. (Rule LP041) WARNING: Unable to load the library.properties url field: Head "": unsupported protocol scheme "" (Rule LP042) Signed-off-by: Frederic Pillon --- libraries/SrcWrapper/library.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/SrcWrapper/library.properties b/libraries/SrcWrapper/library.properties index 80cd2680b5..c650999934 100644 --- a/libraries/SrcWrapper/library.properties +++ b/libraries/SrcWrapper/library.properties @@ -1,9 +1,9 @@ -name=Source Wrapper +name=SrcWrapper version=1.0.1 author=Frederic Pillon maintainer=stm32duino sentence=Source files wrapper (HAL, LL,...) paragraph=Allow to not archive source object files to core.a. This avoid the linker to select weak definitions instead of non-weak ones when 'whole-archive' option is not used. category=Other -url= +url=https://github.com/stm32duino/Arduino_Core_STM32 architectures=stm32 From 83b9f75d471dffd909acad96f79bccaa93786cba Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 16:37:15 +0200 Subject: [PATCH 11/14] fix(Wire): remove warning raised by arduino-lint WARNING: library.properties version value 1.0 is not compliant with the semver specification. See https://semver.org/ (Rule LP021) Signed-off-by: Frederic Pillon --- libraries/Wire/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Wire/library.properties b/libraries/Wire/library.properties index 8143ffa09f..2419e4dcc6 100644 --- a/libraries/Wire/library.properties +++ b/libraries/Wire/library.properties @@ -1,5 +1,5 @@ name=Wire -version=1.0 +version=1.0.0 author=Arduino, Wi6Labs maintainer=stm32duino sentence=Allows the communication between devices or sensors connected via Two Wire (I2C) Interface Bus. From 2c45db9253e9e1fcc654ed5a4f240c49a7dbc1cc Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Fri, 17 Jun 2022 17:15:30 +0200 Subject: [PATCH 12/14] fix(libraries): remove warnings raised by arduino-lint WARNING: No example sketches found. Please provide examples. See: https://arduino.github.io/arduino-cli/latest/library-specification/#library-examples (Rule LD004) Signed-off-by: Frederic Pillon --- .../arm_sin_cos_example_f32.ino | 163 ++++++++++++++++++ .../KeyboardMessage/KeyboardMessage.ino | 57 ++++++ .../ButtonMouseControl/ButtonMouseControl.ino | 84 +++++++++ .../examples/BareMinimum/BareMinimum.ino | 9 + 4 files changed, 313 insertions(+) create mode 100644 libraries/CMSIS_DSP/examples/arm_sin_cos_example_f32/arm_sin_cos_example_f32.ino create mode 100644 libraries/Keyboard/examples/KeyboardMessage/KeyboardMessage.ino create mode 100644 libraries/Mouse/examples/ButtonMouseControl/ButtonMouseControl.ino create mode 100644 libraries/SrcWrapper/examples/BareMinimum/BareMinimum.ino diff --git a/libraries/CMSIS_DSP/examples/arm_sin_cos_example_f32/arm_sin_cos_example_f32.ino b/libraries/CMSIS_DSP/examples/arm_sin_cos_example_f32/arm_sin_cos_example_f32.ino new file mode 100644 index 0000000000..418836f973 --- /dev/null +++ b/libraries/CMSIS_DSP/examples/arm_sin_cos_example_f32/arm_sin_cos_example_f32.ino @@ -0,0 +1,163 @@ +/* ---------------------------------------------------------------------- + Copyright (C) 2010-2012 ARM Limited. All rights reserved. + + $Date: 12. March 2014 + $Revision: V1.4.3 + + Project: CMSIS DSP Library + Title: arm_sin_cos_example_f32.c + + Description: Example code demonstrating sin and cos calculation of input signal. + + Target Processor: Cortex-M4/Cortex-M3 + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + - Neither the name of ARM LIMITED nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + -------------------------------------------------------------------- */ + +/** + @ingroup groupExamples +*/ + +/** + @defgroup SinCosExample SineCosine Example + + \par Description: + \par + Demonstrates the Pythagorean trignometric identity with the use of Cosine, Sine, Vector + Multiplication, and Vector Addition functions. + + \par Algorithm: + \par + Mathematically, the Pythagorean trignometric identity is defined by the following equation: +
sin(x) * sin(x) + cos(x) * cos(x) = 1
+ where \c x is the angle in radians. + + \par Block Diagram: + \par + \image html sinCos.gif + + \par Variables Description: + \par + \li \c testInput_f32 array of input angle in radians + \li \c testOutput stores sum of the squares of sine and cosine values of input angle + + \par CMSIS DSP Software Library Functions Used: + \par + - arm_cos_f32() + - arm_sin_f32() + - arm_mult_f32() + - arm_add_f32() + + Refer + \link arm_sin_cos_example_f32.c \endlink + +*/ + + +/** \example arm_sin_cos_example_f32.c +*/ + +#include "CMSIS_DSP.h" + +/* ---------------------------------------------------------------------- + Defines each of the tests performed + ------------------------------------------------------------------- */ +#define MAX_BLOCKSIZE 32 +#define DELTA (0.0001f) + + +/* ---------------------------------------------------------------------- + Test input data for Floating point sin_cos example for 32-blockSize + Generated by the MATLAB randn() function + ------------------------------------------------------------------- */ + +const float32_t testInput_f32[MAX_BLOCKSIZE] = +{ + -1.244916875853235400, -4.793533929171324800, 0.360705030233248850, 0.827929644170887320, -3.299532218312426900, 3.427441903227623800, 3.422401784294607700, -0.108308165334010680, + 0.941943896490312180, 0.502609575000365850, -0.537345278736373500, 2.088817392965764500, -1.693168684143455700, 6.283185307179590700, -0.392545884746175080, 0.327893095115825040, + 3.070147440456292300, 0.170611405884662230, -0.275275082396073010, -2.395492805446796300, 0.847311163536506600, -3.845517018083148800, 2.055818378415868300, 4.672594161978930800, + -1.990923030266425800, 2.469305197656249500, 3.609002606064021000, -4.586736582331667500, -4.147080139136136300, 1.643756718868359500, -1.150866392366494800, 1.985805026477433800 + + +}; + +const float32_t testRefOutput_f32 = 1.000000000; + +/* ---------------------------------------------------------------------- + Declare Global variables + ------------------------------------------------------------------- */ +uint32_t blockSize = 32; +float32_t testOutput; +float32_t cosOutput; +float32_t sinOutput; +float32_t cosSquareOutput; +float32_t sinSquareOutput; + +/* ---------------------------------------------------------------------- + Max magnitude FFT Bin test + ------------------------------------------------------------------- */ + +arm_status status; + +void setup() { + Serial.begin(9600); +} + +void loop() { + float32_t diff; + uint32_t i; + + for (i = 0; i < blockSize; i++) { + cosOutput = arm_cos_f32(testInput_f32[i]); + sinOutput = arm_sin_f32(testInput_f32[i]); + + arm_mult_f32(&cosOutput, &cosOutput, &cosSquareOutput, 1); + arm_mult_f32(&sinOutput, &sinOutput, &sinSquareOutput, 1); + + arm_add_f32(&cosSquareOutput, &sinSquareOutput, &testOutput, 1); + + /* absolute value of difference between ref and test */ + diff = fabsf(testRefOutput_f32 - testOutput); + + /* Comparison of sin_cos value with reference */ + status = (diff > DELTA) ? ARM_MATH_TEST_FAILURE : ARM_MATH_SUCCESS; + + if ( status == ARM_MATH_TEST_FAILURE) { + break; + } + } + + if (status != ARM_MATH_SUCCESS) { + Serial.println("FAILURE"); + } + else { + Serial.println("SUCCESS"); + } + while (1) {}; +} + +/** \endlink */ diff --git a/libraries/Keyboard/examples/KeyboardMessage/KeyboardMessage.ino b/libraries/Keyboard/examples/KeyboardMessage/KeyboardMessage.ino new file mode 100644 index 0000000000..c428112fd4 --- /dev/null +++ b/libraries/Keyboard/examples/KeyboardMessage/KeyboardMessage.ino @@ -0,0 +1,57 @@ +/* + Keyboard Message test + + For STM32 based board with USB capabilities + + Sends a text string when a button is pressed. + + The circuit: + - pushbutton attached from pin 4 to +3.3V + - 10 kilohm resistor attached from pin 4 to ground + + created 24 Oct 2011 + modified 27 Mar 2012 + by Tom Igoe + modified 11 Nov 2013 + by Scott Fitzgerald + + This example code is in the public domain. + + https://www.arduino.cc/en/Tutorial/BuiltInExamples/KeyboardMessage +*/ + +#include "Keyboard.h" + +#ifdef USER_BTN +const int buttonPin = USER_BTN; // input pin for pushbutton +#else +const int buttonPin = 4; // input pin for pushbutton +#endif + +int previousButtonState = HIGH; // for checking the state of a pushButton +int counter = 0; // button push counter + +void setup() { + // make the pushButton pin an input: + pinMode(buttonPin, INPUT); + // initialize control over the keyboard: + Keyboard.begin(); +} + +void loop() { + // read the pushbutton: + int buttonState = digitalRead(buttonPin); + // if the button state has changed, + if ((buttonState != previousButtonState) + // and it's currently pressed: + && (buttonState == HIGH)) { + // increment the button counter + counter++; + // type out a message + Keyboard.print("You pressed the button "); + Keyboard.print(counter); + Keyboard.println(" times."); + } + // save the current button state for comparison next time: + previousButtonState = buttonState; +} diff --git a/libraries/Mouse/examples/ButtonMouseControl/ButtonMouseControl.ino b/libraries/Mouse/examples/ButtonMouseControl/ButtonMouseControl.ino new file mode 100644 index 0000000000..3fc95e5411 --- /dev/null +++ b/libraries/Mouse/examples/ButtonMouseControl/ButtonMouseControl.ino @@ -0,0 +1,84 @@ +/* + ButtonMouseControl + + For STM32 based board with USB capabilities + + Controls the mouse from five pushbuttons. + + Hardware: + - five pushbuttons attached to D2, D3, D4, D5, D6 + + The mouse movement is always relative. This sketch reads four pushbuttons, + and uses them to set the movement of the mouse. + + WARNING: When you use the Mouse.move() command, the Arduino takes over your + mouse! Make sure you have control before you use the mouse commands. + + created 15 Mar 2012 + modified 27 Mar 2012 + by Tom Igoe + + This example code is in the public domain. + + https://www.arduino.cc/en/Tutorial/BuiltInExamples/ButtonMouseControl +*/ + +#include "Mouse.h" + +// set pin numbers for the five buttons: +const int upButton = 2; +const int downButton = 3; +const int leftButton = 4; +const int rightButton = 5; +const int mouseButton = 6; + +int range = 5; // output range of X or Y movement; affects movement speed +int responseDelay = 10; // response delay of the mouse, in ms + + +void setup() { + // initialize the buttons' inputs: + pinMode(upButton, INPUT); + pinMode(downButton, INPUT); + pinMode(leftButton, INPUT); + pinMode(rightButton, INPUT); + pinMode(mouseButton, INPUT); + // initialize mouse control: + Mouse.begin(); +} + +void loop() { + // read the buttons: + int upState = digitalRead(upButton); + int downState = digitalRead(downButton); + int rightState = digitalRead(rightButton); + int leftState = digitalRead(leftButton); + int clickState = digitalRead(mouseButton); + + // calculate the movement distance based on the button states: + int xDistance = (leftState - rightState) * range; + int yDistance = (upState - downState) * range; + + // if X or Y is non-zero, move: + if ((xDistance != 0) || (yDistance != 0)) { + Mouse.move(xDistance, yDistance, 0); + } + + // if the mouse button is pressed: + if (clickState == HIGH) { + // if the mouse is not pressed, press it: + if (!Mouse.isPressed(MOUSE_LEFT)) { + Mouse.press(MOUSE_LEFT); + } + } + // else the mouse button is not pressed: + else { + // if the mouse is pressed, release it: + if (Mouse.isPressed(MOUSE_LEFT)) { + Mouse.release(MOUSE_LEFT); + } + } + + // a delay so the mouse doesn't move too fast: + delay(responseDelay); +} diff --git a/libraries/SrcWrapper/examples/BareMinimum/BareMinimum.ino b/libraries/SrcWrapper/examples/BareMinimum/BareMinimum.ino new file mode 100644 index 0000000000..95c2b6eb0a --- /dev/null +++ b/libraries/SrcWrapper/examples/BareMinimum/BareMinimum.ino @@ -0,0 +1,9 @@ +void setup() { + // put your setup code here, to run once: + +} + +void loop() { + // put your main code here, to run repeatedly: + +} From bb6590db891ec10d9aa4245da6d9e223b82c6478 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Mon, 20 Jun 2022 10:38:16 +0200 Subject: [PATCH 13/14] ci: add arduino-lint action Signed-off-by: Frederic Pillon --- .github/workflows/arduino-lint.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/arduino-lint.yml diff --git a/.github/workflows/arduino-lint.yml b/.github/workflows/arduino-lint.yml new file mode 100644 index 0000000000..52a701d3d3 --- /dev/null +++ b/.github/workflows/arduino-lint.yml @@ -0,0 +1,19 @@ +name: Check Arduino + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Arduino Lint + uses: arduino/arduino-lint-action@v1 From cf05e1e8f8afeb0be74c8f004b700cdebc0feabd Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Mon, 20 Jun 2022 11:16:26 +0200 Subject: [PATCH 14/14] fix: properly set fpu and float-abi for precompiled binaries https://arduino.github.io/arduino-cli/0.21/library-specification/#precompiled-binaries Signed-off-by: Frederic Pillon --- boards.txt | 192 ++++++++++++++++++++++++++++++++++----------------- platform.txt | 7 +- 2 files changed, 132 insertions(+), 67 deletions(-) diff --git a/boards.txt b/boards.txt index 0666a3b308..2daef8821f 100644 --- a/boards.txt +++ b/boards.txt @@ -41,7 +41,8 @@ Nucleo_144.menu.pnum.NUCLEO_F429ZI.node=NODE_F429ZI Nucleo_144.menu.pnum.NUCLEO_F429ZI.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_F429ZI.upload.maximum_data_size=196608 Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.mcu=cortex-m4 -Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.board=NUCLEO_F429ZI Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.series=STM32F4xx Nucleo_144.menu.pnum.NUCLEO_F429ZI.build.product_line=STM32F429xx @@ -54,7 +55,8 @@ Nucleo_144.menu.pnum.NUCLEO_F746ZG.node=NODE_F746ZG Nucleo_144.menu.pnum.NUCLEO_F746ZG.upload.maximum_size=1048576 Nucleo_144.menu.pnum.NUCLEO_F746ZG.upload.maximum_data_size=327680 Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.mcu=cortex-m7 -Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.board=NUCLEO_F746ZG Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.series=STM32F7xx Nucleo_144.menu.pnum.NUCLEO_F746ZG.build.product_line=STM32F746xx @@ -68,7 +70,8 @@ Nucleo_144.menu.pnum.NUCLEO_F756ZG.node=NODE_F756ZG Nucleo_144.menu.pnum.NUCLEO_F756ZG.upload.maximum_size=1048576 Nucleo_144.menu.pnum.NUCLEO_F756ZG.upload.maximum_data_size=327680 Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.mcu=cortex-m7 -Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.board=NUCLEO_F756ZG Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.series=STM32F7xx Nucleo_144.menu.pnum.NUCLEO_F756ZG.build.product_line=STM32F756xx @@ -82,7 +85,8 @@ Nucleo_144.menu.pnum.NUCLEO_F767ZI.node=NODE_F767ZI Nucleo_144.menu.pnum.NUCLEO_F767ZI.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_F767ZI.upload.maximum_data_size=524288 Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.mcu=cortex-m7 -Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.board=NUCLEO_F767ZI Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.series=STM32F7xx Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.product_line=STM32F767xx @@ -95,7 +99,8 @@ Nucleo_144.menu.pnum.NUCLEO_H743ZI.node=NODE_H743ZI Nucleo_144.menu.pnum.NUCLEO_H743ZI.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_H743ZI.upload.maximum_data_size=524288 Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.mcu=cortex-m7 -Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.board=NUCLEO_H743ZI Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.series=STM32H7xx Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.product_line=STM32H743xx @@ -107,7 +112,8 @@ Nucleo_144.menu.pnum.NUCLEO_H743ZI2.node="NODE_H743ZI,NOD_H743ZI2" Nucleo_144.menu.pnum.NUCLEO_H743ZI2.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_H743ZI2.upload.maximum_data_size=524288 Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.mcu=cortex-m7 -Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.board=NUCLEO_H743ZI2 Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.series=STM32H7xx Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.product_line=STM32H743xx @@ -121,7 +127,8 @@ Nucleo_144.menu.pnum.NUCLEO_L496ZG.node=NODE_L496ZG Nucleo_144.menu.pnum.NUCLEO_L496ZG.upload.maximum_size=1048576 Nucleo_144.menu.pnum.NUCLEO_L496ZG.upload.maximum_data_size=327680 Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.mcu=cortex-m4 -Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.board=NUCLEO_L496ZG Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.series=STM32L4xx Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.product_line=STM32L496xx @@ -134,7 +141,8 @@ Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.node=NODE_L496ZG Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.upload.maximum_size=1048576 Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.upload.maximum_data_size=327680 Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.mcu=cortex-m4 -Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_L496ZG.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.board=NUCLEO_L496ZG_P Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.series=STM32L4xx Nucleo_144.menu.pnum.NUCLEO_L496ZG-P.build.product_line=STM32L496xx @@ -147,7 +155,8 @@ Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.node=NODE_L4R5ZI Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.upload.maximum_data_size=655360 Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.mcu=cortex-m4 -Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.board=NUCLEO_L4R5ZI Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.series=STM32L4xx Nucleo_144.menu.pnum.NUCLEO_L4R5ZI.build.product_line=STM32L4R5xx @@ -160,7 +169,8 @@ Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.node=NODE_L4R5ZI Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.upload.maximum_data_size=655360 Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.mcu=cortex-m4 -Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.board=NUCLEO_L4R5ZI_P Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.series=STM32L4xx Nucleo_144.menu.pnum.NUCLEO_L4R5ZI_P.build.product_line=STM32L4R5xx @@ -173,7 +183,8 @@ Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.node=NODE_L552ZE Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.upload.maximum_size=524288 Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.upload.maximum_data_size=196608 Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.mcu=cortex-m33 -Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.board=NUCLEO_L552ZE_Q Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.series=STM32L5xx Nucleo_144.menu.pnum.NUCLEO_L552ZE_Q.build.product_line=STM32L552xx @@ -186,7 +197,8 @@ Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.node=NOD_U575ZI Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.upload.maximum_size=2097152 Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.upload.maximum_data_size=262144 Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.mcu=cortex-m33 -Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.float-abi=-mfloat-abi=hard Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.board=NUCLEO_U575ZI_Q Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.series=STM32U5xx Nucleo_144.menu.pnum.NUCLEO_U575ZI_Q.build.product_line=STM32U575xx @@ -290,7 +302,8 @@ Nucleo_64.menu.pnum.NUCLEO_F302R8.node=NODE_F302R8 Nucleo_64.menu.pnum.NUCLEO_F302R8.upload.maximum_size=65536 Nucleo_64.menu.pnum.NUCLEO_F302R8.upload.maximum_data_size=16384 Nucleo_64.menu.pnum.NUCLEO_F302R8.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_F302R8.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_F302R8.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_F302R8.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_F302R8.build.board=NUCLEO_F302R8 Nucleo_64.menu.pnum.NUCLEO_F302R8.build.series=STM32F3xx Nucleo_64.menu.pnum.NUCLEO_F302R8.build.product_line=STM32F302x8 @@ -303,7 +316,8 @@ Nucleo_64.menu.pnum.NUCLEO_F303RE.node=NODE_F303RE Nucleo_64.menu.pnum.NUCLEO_F303RE.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_F303RE.upload.maximum_data_size=65536 Nucleo_64.menu.pnum.NUCLEO_F303RE.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_F303RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_F303RE.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_F303RE.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_F303RE.build.board=NUCLEO_F303RE Nucleo_64.menu.pnum.NUCLEO_F303RE.build.series=STM32F3xx Nucleo_64.menu.pnum.NUCLEO_F303RE.build.product_line=STM32F303xE @@ -316,7 +330,8 @@ Nucleo_64.menu.pnum.NUCLEO_F401RE.node=NODE_F401RE Nucleo_64.menu.pnum.NUCLEO_F401RE.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_F401RE.upload.maximum_data_size=98304 Nucleo_64.menu.pnum.NUCLEO_F401RE.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_F401RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_F401RE.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_F401RE.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_F401RE.build.board=NUCLEO_F401RE Nucleo_64.menu.pnum.NUCLEO_F401RE.build.series=STM32F4xx Nucleo_64.menu.pnum.NUCLEO_F401RE.build.product_line=STM32F401xE @@ -329,7 +344,8 @@ Nucleo_64.menu.pnum.NUCLEO_F411RE.node="NODE_F411RE,NUCLEO" Nucleo_64.menu.pnum.NUCLEO_F411RE.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_F411RE.upload.maximum_data_size=131072 Nucleo_64.menu.pnum.NUCLEO_F411RE.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_F411RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_F411RE.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_F411RE.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_F411RE.build.board=NUCLEO_F411RE Nucleo_64.menu.pnum.NUCLEO_F411RE.build.series=STM32F4xx Nucleo_64.menu.pnum.NUCLEO_F411RE.build.product_line=STM32F411xE @@ -342,7 +358,8 @@ Nucleo_64.menu.pnum.NUCLEO_F446RE.node=NODE_F446RE Nucleo_64.menu.pnum.NUCLEO_F446RE.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_F446RE.upload.maximum_data_size=131072 Nucleo_64.menu.pnum.NUCLEO_F446RE.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_F446RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_F446RE.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_F446RE.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_F446RE.build.board=NUCLEO_F446RE Nucleo_64.menu.pnum.NUCLEO_F446RE.build.series=STM32F4xx Nucleo_64.menu.pnum.NUCLEO_F446RE.build.product_line=STM32F446xx @@ -381,7 +398,8 @@ Nucleo_64.menu.pnum.NUCLEO_G431RB.node="NODE_G431RB,NOD_G431RB" Nucleo_64.menu.pnum.NUCLEO_G431RB.upload.maximum_size=131072 Nucleo_64.menu.pnum.NUCLEO_G431RB.upload.maximum_data_size=32768 Nucleo_64.menu.pnum.NUCLEO_G431RB.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_G431RB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_G431RB.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_G431RB.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_G431RB.build.board=NUCLEO_G431RB Nucleo_64.menu.pnum.NUCLEO_G431RB.build.series=STM32G4xx Nucleo_64.menu.pnum.NUCLEO_G431RB.build.product_line=STM32G431xx @@ -394,7 +412,8 @@ Nucleo_64.menu.pnum.NUCLEO_G474RE.node=NODE_G474RE Nucleo_64.menu.pnum.NUCLEO_G474RE.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_G474RE.upload.maximum_data_size=131072 Nucleo_64.menu.pnum.NUCLEO_G474RE.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_G474RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_G474RE.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_G474RE.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_G474RE.build.board=NUCLEO_G474RE Nucleo_64.menu.pnum.NUCLEO_G474RE.build.series=STM32G4xx Nucleo_64.menu.pnum.NUCLEO_G474RE.build.product_line=STM32G474xx @@ -458,7 +477,8 @@ Nucleo_64.menu.pnum.NUCLEO_L433RC_P.node=NODE_L433RC Nucleo_64.menu.pnum.NUCLEO_L433RC_P.upload.maximum_size=262144 Nucleo_64.menu.pnum.NUCLEO_L433RC_P.upload.maximum_data_size=65536 Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.board=NUCLEO_L433RC_P Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.series=STM32L4xx Nucleo_64.menu.pnum.NUCLEO_L433RC_P.build.product_line=STM32L433xx @@ -471,7 +491,8 @@ Nucleo_64.menu.pnum.NUCLEO_L452RE.node=NODE_L452RE Nucleo_64.menu.pnum.NUCLEO_L452RE.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_L452RE.upload.maximum_data_size=163840 Nucleo_64.menu.pnum.NUCLEO_L452RE.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_L452RE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_L452RE.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_L452RE.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_L452RE.build.board=NUCLEO_L452RE Nucleo_64.menu.pnum.NUCLEO_L452RE.build.series=STM32L4xx Nucleo_64.menu.pnum.NUCLEO_L452RE.build.product_line=STM32L452xx @@ -484,7 +505,8 @@ Nucleo_64.menu.pnum.NUCLEO_L452REP.node=NODE_L452RE Nucleo_64.menu.pnum.NUCLEO_L452REP.upload.maximum_size=524288 Nucleo_64.menu.pnum.NUCLEO_L452REP.upload.maximum_data_size=163840 Nucleo_64.menu.pnum.NUCLEO_L452REP.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_L452REP.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_L452REP.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_L452REP.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_L452REP.build.board=NUCLEO_L452RE_P Nucleo_64.menu.pnum.NUCLEO_L452REP.build.series=STM32L4xx Nucleo_64.menu.pnum.NUCLEO_L452REP.build.product_line=STM32L452xx @@ -497,7 +519,8 @@ Nucleo_64.menu.pnum.NUCLEO_L476RG.node=NODE_L476RG Nucleo_64.menu.pnum.NUCLEO_L476RG.upload.maximum_size=1048576 Nucleo_64.menu.pnum.NUCLEO_L476RG.upload.maximum_data_size=98304 Nucleo_64.menu.pnum.NUCLEO_L476RG.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.NUCLEO_L476RG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.NUCLEO_L476RG.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.NUCLEO_L476RG.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.NUCLEO_L476RG.build.board=NUCLEO_L476RG Nucleo_64.menu.pnum.NUCLEO_L476RG.build.series=STM32L4xx Nucleo_64.menu.pnum.NUCLEO_L476RG.build.product_line=STM32L476xx @@ -510,7 +533,8 @@ Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.node="NODE_WB55RG,NOD_WB55RG" Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.upload.maximum_size=524288 Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.upload.maximum_data_size=196608 Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.mcu=cortex-m4 -Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.float-abi=-mfloat-abi=hard Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.board=P_NUCLEO_WB55RG Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.series=STM32WBxx Nucleo_64.menu.pnum.P_NUCLEO_WB55RG.build.product_line=STM32WB55xx @@ -590,7 +614,8 @@ Nucleo_32.menu.pnum.NUCLEO_F303K8.node=NODE_F303K8 Nucleo_32.menu.pnum.NUCLEO_F303K8.upload.maximum_size=65536 Nucleo_32.menu.pnum.NUCLEO_F303K8.upload.maximum_data_size=12288 Nucleo_32.menu.pnum.NUCLEO_F303K8.build.mcu=cortex-m4 -Nucleo_32.menu.pnum.NUCLEO_F303K8.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_32.menu.pnum.NUCLEO_F303K8.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_32.menu.pnum.NUCLEO_F303K8.build.float-abi=-mfloat-abi=hard Nucleo_32.menu.pnum.NUCLEO_F303K8.build.board=NUCLEO_F303K8 Nucleo_32.menu.pnum.NUCLEO_F303K8.build.series=STM32F3xx Nucleo_32.menu.pnum.NUCLEO_F303K8.build.product_line=STM32F303x8 @@ -616,7 +641,8 @@ Nucleo_32.menu.pnum.NUCLEO_G431KB.node="NODE_G431KB,NOD_G431KB" Nucleo_32.menu.pnum.NUCLEO_G431KB.upload.maximum_size=131072 Nucleo_32.menu.pnum.NUCLEO_G431KB.upload.maximum_data_size=32768 Nucleo_32.menu.pnum.NUCLEO_G431KB.build.mcu=cortex-m4 -Nucleo_32.menu.pnum.NUCLEO_G431KB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_32.menu.pnum.NUCLEO_G431KB.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_32.menu.pnum.NUCLEO_G431KB.build.float-abi=-mfloat-abi=hard Nucleo_32.menu.pnum.NUCLEO_G431KB.build.board=NUCLEO_G431KB Nucleo_32.menu.pnum.NUCLEO_G431KB.build.series=STM32G4xx Nucleo_32.menu.pnum.NUCLEO_G431KB.build.product_line=STM32G431xx @@ -641,7 +667,8 @@ Nucleo_32.menu.pnum.NUCLEO_L412KB.node=NODE_L412KB Nucleo_32.menu.pnum.NUCLEO_L412KB.upload.maximum_size=131072 Nucleo_32.menu.pnum.NUCLEO_L412KB.upload.maximum_data_size=40960 Nucleo_32.menu.pnum.NUCLEO_L412KB.build.mcu=cortex-m4 -Nucleo_32.menu.pnum.NUCLEO_L412KB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_32.menu.pnum.NUCLEO_L412KB.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_32.menu.pnum.NUCLEO_L412KB.build.float-abi=-mfloat-abi=hard Nucleo_32.menu.pnum.NUCLEO_L412KB.build.board=NUCLEO_L412KB Nucleo_32.menu.pnum.NUCLEO_L412KB.build.series=STM32L4xx Nucleo_32.menu.pnum.NUCLEO_L412KB.build.product_line=STM32L412xx @@ -654,7 +681,8 @@ Nucleo_32.menu.pnum.NUCLEO_L432KC.node=NODE_L432KC Nucleo_32.menu.pnum.NUCLEO_L432KC.upload.maximum_size=262144 Nucleo_32.menu.pnum.NUCLEO_L432KC.upload.maximum_data_size=65536 Nucleo_32.menu.pnum.NUCLEO_L432KC.build.mcu=cortex-m4 -Nucleo_32.menu.pnum.NUCLEO_L432KC.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Nucleo_32.menu.pnum.NUCLEO_L432KC.build.fpu=-mfpu=fpv4-sp-d16 +Nucleo_32.menu.pnum.NUCLEO_L432KC.build.float-abi=-mfloat-abi=hard Nucleo_32.menu.pnum.NUCLEO_L432KC.build.board=NUCLEO_L432KC Nucleo_32.menu.pnum.NUCLEO_L432KC.build.series=STM32L4xx Nucleo_32.menu.pnum.NUCLEO_L432KC.build.product_line=STM32L432xx @@ -697,7 +725,8 @@ Disco.menu.pnum.B_G431B_ESC1.node="NODE_G431CB,NOD_G431CB,DIS_G431CB" Disco.menu.pnum.B_G431B_ESC1.upload.maximum_size=131072 Disco.menu.pnum.B_G431B_ESC1.upload.maximum_data_size=32768 Disco.menu.pnum.B_G431B_ESC1.build.mcu=cortex-m4 -Disco.menu.pnum.B_G431B_ESC1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.B_G431B_ESC1.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.B_G431B_ESC1.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.B_G431B_ESC1.build.board=B_G431B_ESC1 Disco.menu.pnum.B_G431B_ESC1.build.series=STM32G4xx Disco.menu.pnum.B_G431B_ESC1.build.product_line=STM32G431xx @@ -725,7 +754,8 @@ Disco.menu.pnum.B_L475E_IOT01A.node=DIS_L4IOT Disco.menu.pnum.B_L475E_IOT01A.upload.maximum_size=1048576 Disco.menu.pnum.B_L475E_IOT01A.upload.maximum_data_size=98304 Disco.menu.pnum.B_L475E_IOT01A.build.mcu=cortex-m4 -Disco.menu.pnum.B_L475E_IOT01A.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.B_L475E_IOT01A.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.B_L475E_IOT01A.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.B_L475E_IOT01A.build.board=B_L475E_IOT01A Disco.menu.pnum.B_L475E_IOT01A.build.series=STM32L4xx Disco.menu.pnum.B_L475E_IOT01A.build.product_line=STM32L475xx @@ -739,7 +769,8 @@ Disco.menu.pnum.B_L4S5I_IOT01A.node="DIS_L4IOT,DIS_L4S5VI" Disco.menu.pnum.B_L4S5I_IOT01A.upload.maximum_size=2097152 Disco.menu.pnum.B_L4S5I_IOT01A.upload.maximum_data_size=655360 Disco.menu.pnum.B_L4S5I_IOT01A.build.mcu=cortex-m4 -Disco.menu.pnum.B_L4S5I_IOT01A.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.B_L4S5I_IOT01A.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.B_L4S5I_IOT01A.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.B_L4S5I_IOT01A.build.board=B_L4S5I_IOT01A Disco.menu.pnum.B_L4S5I_IOT01A.build.series=STM32L4xx Disco.menu.pnum.B_L4S5I_IOT01A.build.product_line=STM32L4S5xx @@ -753,7 +784,8 @@ Disco.menu.pnum.B_U585I_IOT02A.node="NOD_U585AI" Disco.menu.pnum.B_U585I_IOT02A.upload.maximum_size=2097152 Disco.menu.pnum.B_U585I_IOT02A.upload.maximum_data_size=262144 Disco.menu.pnum.B_U585I_IOT02A.build.mcu=cortex-m33 -Disco.menu.pnum.B_U585I_IOT02A.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.B_U585I_IOT02A.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.B_U585I_IOT02A.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.B_U585I_IOT02A.build.board=B_U585I_IOT02A Disco.menu.pnum.B_U585I_IOT02A.build.series=STM32U5xx Disco.menu.pnum.B_U585I_IOT02A.build.product_line=STM32U585xx @@ -803,7 +835,8 @@ Disco.menu.pnum.DISCO_F303VC.node=DIS_F303VC Disco.menu.pnum.DISCO_F303VC.upload.maximum_size=262144 Disco.menu.pnum.DISCO_F303VC.upload.maximum_data_size=40960 Disco.menu.pnum.DISCO_F303VC.build.mcu=cortex-m4 -Disco.menu.pnum.DISCO_F303VC.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.DISCO_F303VC.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.DISCO_F303VC.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.DISCO_F303VC.build.board=DISCO_F303VC Disco.menu.pnum.DISCO_F303VC.build.series=STM32F3xx Disco.menu.pnum.DISCO_F303VC.build.product_line=STM32F303xC @@ -816,7 +849,8 @@ Disco.menu.pnum.DISCO_F407VG.node=DIS_F407VG Disco.menu.pnum.DISCO_F407VG.upload.maximum_size=1048576 Disco.menu.pnum.DISCO_F407VG.upload.maximum_data_size=131072 Disco.menu.pnum.DISCO_F407VG.build.mcu=cortex-m4 -Disco.menu.pnum.DISCO_F407VG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.DISCO_F407VG.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.DISCO_F407VG.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.DISCO_F407VG.build.board=DISCO_F407VG Disco.menu.pnum.DISCO_F407VG.build.series=STM32F4xx Disco.menu.pnum.DISCO_F407VG.build.product_line=STM32F407xx @@ -829,7 +863,8 @@ Disco.menu.pnum.DISCO_F413ZH.node=DIS_F413ZH Disco.menu.pnum.DISCO_F413ZH.upload.maximum_size=1572864 Disco.menu.pnum.DISCO_F413ZH.upload.maximum_data_size=327680 Disco.menu.pnum.DISCO_F413ZH.build.mcu=cortex-m4 -Disco.menu.pnum.DISCO_F413ZH.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.DISCO_F413ZH.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.DISCO_F413ZH.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.DISCO_F413ZH.build.board=DISCO_F413ZH Disco.menu.pnum.DISCO_F413ZH.build.series=STM32F4xx Disco.menu.pnum.DISCO_F413ZH.build.product_line=STM32F413xx @@ -843,7 +878,8 @@ Disco.menu.pnum.DISCO_F746NG.node=DIS_F746NG Disco.menu.pnum.DISCO_F746NG.upload.maximum_size=1048576 Disco.menu.pnum.DISCO_F746NG.upload.maximum_data_size=327680 Disco.menu.pnum.DISCO_F746NG.build.mcu=cortex-m7 -Disco.menu.pnum.DISCO_F746NG.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.DISCO_F746NG.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.DISCO_F746NG.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.DISCO_F746NG.build.board=DISCO_F746NG Disco.menu.pnum.DISCO_F746NG.build.series=STM32F7xx Disco.menu.pnum.DISCO_F746NG.build.product_line=STM32F746xx @@ -870,7 +906,8 @@ Disco.menu.pnum.STM32WB5MM_DK.node="DIS_WB5MMG" Disco.menu.pnum.STM32WB5MM_DK.upload.maximum_size=827392 Disco.menu.pnum.STM32WB5MM_DK.upload.maximum_data_size=196608 Disco.menu.pnum.STM32WB5MM_DK.build.mcu=cortex-m4 -Disco.menu.pnum.STM32WB5MM_DK.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Disco.menu.pnum.STM32WB5MM_DK.build.fpu=-mfpu=fpv4-sp-d16 +Disco.menu.pnum.STM32WB5MM_DK.build.float-abi=-mfloat-abi=hard Disco.menu.pnum.STM32WB5MM_DK.build.board=STM32WB5MM_DK Disco.menu.pnum.STM32WB5MM_DK.build.series=STM32WBxx Disco.menu.pnum.STM32WB5MM_DK.build.product_line=STM32WB5Mxx @@ -913,7 +950,8 @@ Eval.menu.pnum.STEVAL_MKSBOX1V1=SensorTile.box Eval.menu.pnum.STEVAL_MKSBOX1V1.upload.maximum_size=2097152 Eval.menu.pnum.STEVAL_MKSBOX1V1.upload.maximum_data_size=655360 Eval.menu.pnum.STEVAL_MKSBOX1V1.build.mcu=cortex-m4 -Eval.menu.pnum.STEVAL_MKSBOX1V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Eval.menu.pnum.STEVAL_MKSBOX1V1.build.fpu=-mfpu=fpv4-sp-d16 +Eval.menu.pnum.STEVAL_MKSBOX1V1.build.float-abi=-mfloat-abi=hard Eval.menu.pnum.STEVAL_MKSBOX1V1.build.board=STEVAL_MKSBOX1V1 Eval.menu.pnum.STEVAL_MKSBOX1V1.build.series=STM32L4xx Eval.menu.pnum.STEVAL_MKSBOX1V1.build.product_line=STM32L4R9xx @@ -940,7 +978,8 @@ STM32MP1.name=STM32MP1 series coprocessor STM32MP1.build.core=arduino STM32MP1.build.board=STM32MP1 STM32MP1.build.mcu=cortex-m4 -STM32MP1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +STM32MP1.build.fpu=-mfpu=fpv4-sp-d16 +STM32MP1.build.float-abi=-mfloat-abi=hard STM32MP1.build.series=STM32MP1xx STM32MP1.build.cmsis_lib_gcc=arm_cortexM4l_math STM32MP1.build.st_extra_flags=-DCORE_CM4 -D{build.product_line} {build.enable_virtio} {build.xSerial} @@ -1932,7 +1971,8 @@ GenF3.build.core=arduino GenF3.build.board=GenF3 GenF3.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags} GenF3.build.mcu=cortex-m4 -GenF3.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenF3.build.fpu=-mfpu=fpv4-sp-d16 +GenF3.build.float-abi=-mfloat-abi=hard GenF3.build.series=STM32F3xx GenF3.build.cmsis_lib_gcc=arm_cortexM4lf_math @@ -2103,7 +2143,8 @@ GenF4.build.core=arduino GenF4.build.board=GenF4 GenF4.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags} GenF4.build.mcu=cortex-m4 -GenF4.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenF4.build.fpu=-mfpu=fpv4-sp-d16 +GenF4.build.float-abi=-mfloat-abi=hard GenF4.build.series=STM32F4xx GenF4.build.cmsis_lib_gcc=arm_cortexM4lf_math @@ -2902,7 +2943,8 @@ GenF7.build.core=arduino GenF7.build.board=GenF7 GenF7.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} {build.bootloader_flags} GenF7.build.mcu=cortex-m7 -GenF7.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenF7.build.fpu=-mfpu=fpv4-sp-d16 +GenF7.build.float-abi=-mfloat-abi=hard GenF7.build.series=STM32F7xx GenF7.build.cmsis_lib_gcc=arm_cortexM7lfsp_math @@ -3735,7 +3777,8 @@ GenG4.build.core=arduino GenG4.build.board=GenG4 GenG4.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} GenG4.build.mcu=cortex-m4 -GenG4.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenG4.build.fpu=-mfpu=fpv4-sp-d16 +GenG4.build.float-abi=-mfloat-abi=hard GenG4.build.series=STM32G4xx GenG4.build.cmsis_lib_gcc=arm_cortexM4lf_math @@ -3987,7 +4030,8 @@ GenH7.build.core=arduino GenH7.build.board=GenH7 GenH7.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} GenH7.build.cmsis_lib_gcc=arm_cortexM7lfsp_math -GenH7.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenH7.build.fpu=-mfpu=fpv4-sp-d16 +GenH7.build.float-abi=-mfloat-abi=hard GenH7.build.series=STM32H7xx GenH7.build.mcu=cortex-m7 @@ -4902,7 +4946,8 @@ GenL4.build.core=arduino GenL4.build.board=GenL4 GenL4.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} GenL4.build.mcu=cortex-m4 -GenL4.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenL4.build.fpu=-mfpu=fpv4-sp-d16 +GenL4.build.float-abi=-mfloat-abi=hard GenL4.build.series=STM32L4xx GenL4.build.cmsis_lib_gcc=arm_cortexM4lf_math @@ -5450,7 +5495,8 @@ GenL5.build.core=arduino GenL5.build.board=GenL5 GenL5.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} GenL5.build.mcu=cortex-m33 -GenL5.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenL5.build.fpu=-mfpu=fpv4-sp-d16 +GenL5.build.float-abi=-mfloat-abi=hard GenL5.build.series=STM32L5xx GenL5.build.cmsis_lib_gcc=arm_ARMv8MMLlfsp_math @@ -5502,7 +5548,8 @@ GenU5.build.core=arduino GenU5.build.board=GenU5 GenU5.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} GenU5.build.mcu=cortex-m33 -GenU5.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenU5.build.fpu=-mfpu=fpv4-sp-d16 +GenU5.build.float-abi=-mfloat-abi=hard GenU5.build.series=STM32U5xx GenU5.build.cmsis_lib_gcc=arm_ARMv8MMLlfsp_math @@ -5578,7 +5625,8 @@ GenWB.build.core=arduino GenWB.build.board=GenWB GenWB.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} GenWB.build.mcu=cortex-m4 -GenWB.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenWB.build.fpu=-mfpu=fpv4-sp-d16 +GenWB.build.float-abi=-mfloat-abi=hard GenWB.build.series=STM32WBxx GenWB.build.cmsis_lib_gcc=arm_cortexM4lf_math @@ -5662,7 +5710,8 @@ GenWL.build.core=arduino GenWL.build.board=GenWL GenWL.build.st_extra_flags=-D{build.product_line} -DUSE_CM4_STARTUP_FILE {build.xSerial} GenWL.build.mcu=cortex-m4 -#GenWL.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +#GenWL.build.fpu=-mfpu=fpv4-sp-d16 +#GenWL.build.float-abi=-mfloat-abi=hard GenWL.build.series=STM32WLxx GenWL.build.cmsis_lib_gcc=arm_cortexM4l_math @@ -5834,7 +5883,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.ARMED_V1.upload.maximum_size=524288 3dprinter.menu.pnum.ARMED_V1.upload.maximum_data_size=131072 3dprinter.menu.pnum.ARMED_V1.build.mcu=cortex-m4 -3dprinter.menu.pnum.ARMED_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.ARMED_V1.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.ARMED_V1.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.ARMED_V1.build.board=ARMED_V1 3dprinter.menu.pnum.ARMED_V1.build.series=STM32F4xx 3dprinter.menu.pnum.ARMED_V1.build.product_line=STM32F407xx @@ -5847,7 +5897,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.REMRAM_V1.upload.maximum_size=2097152 3dprinter.menu.pnum.REMRAM_V1.upload.maximum_data_size=524288 3dprinter.menu.pnum.REMRAM_V1.build.mcu=cortex-m7 -3dprinter.menu.pnum.REMRAM_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.REMRAM_V1.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.REMRAM_V1.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.REMRAM_V1.build.board=REMRAM_V1 3dprinter.menu.pnum.REMRAM_V1.build.series=STM32F7xx 3dprinter.menu.pnum.REMRAM_V1.build.product_line=STM32F765xx @@ -5860,7 +5911,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.RUMBA32.upload.maximum_size=524288 3dprinter.menu.pnum.RUMBA32.upload.maximum_data_size=131072 3dprinter.menu.pnum.RUMBA32.build.mcu=cortex-m4 -3dprinter.menu.pnum.RUMBA32.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.RUMBA32.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.RUMBA32.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.RUMBA32.build.board=RUMBA32 3dprinter.menu.pnum.RUMBA32.build.series=STM32F4xx 3dprinter.menu.pnum.RUMBA32.build.product_line=STM32F446xx @@ -5873,7 +5925,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.ST3DP001_EVAL.upload.maximum_size=524288 3dprinter.menu.pnum.ST3DP001_EVAL.upload.maximum_data_size=98304 3dprinter.menu.pnum.ST3DP001_EVAL.build.mcu=cortex-m4 -3dprinter.menu.pnum.ST3DP001_EVAL.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.ST3DP001_EVAL.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.ST3DP001_EVAL.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.ST3DP001_EVAL.build.board=ST3DP001_EVAL 3dprinter.menu.pnum.ST3DP001_EVAL.build.series=STM32F4xx 3dprinter.menu.pnum.ST3DP001_EVAL.build.product_line=STM32F401xE @@ -5886,7 +5939,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.PRNTR_V1.upload.maximum_size=524288 3dprinter.menu.pnum.PRNTR_V1.upload.maximum_data_size=131072 3dprinter.menu.pnum.PRNTR_V1.build.mcu=cortex-m4 -3dprinter.menu.pnum.PRNTR_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.PRNTR_V1.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.PRNTR_V1.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.PRNTR_V1.build.board=PRNTR_V1 3dprinter.menu.pnum.PRNTR_V1.build.series=STM32F4xx 3dprinter.menu.pnum.PRNTR_V1.build.product_line=STM32F407xx @@ -5899,7 +5953,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.PRNTR_V2.upload.maximum_size=524288 3dprinter.menu.pnum.PRNTR_V2.upload.maximum_data_size=131072 3dprinter.menu.pnum.PRNTR_V2.build.mcu=cortex-m4 -3dprinter.menu.pnum.PRNTR_V2.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.PRNTR_V2.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.PRNTR_V2.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.PRNTR_V2.build.board=PRNTR_V2 3dprinter.menu.pnum.PRNTR_V2.build.series=STM32F4xx 3dprinter.menu.pnum.PRNTR_V2.build.product_line=STM32F407xx @@ -5973,7 +6028,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.VAKE_V1.upload.maximum_size=524288 3dprinter.menu.pnum.VAKE_V1.upload.maximum_data_size=131072 3dprinter.menu.pnum.VAKE_V1.build.mcu=cortex-m4 -3dprinter.menu.pnum.VAKE_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.VAKE_V1.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.VAKE_V1.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.VAKE_V1.build.board=VAKE_V1 3dprinter.menu.pnum.VAKE_V1.build.series=STM32F4xx 3dprinter.menu.pnum.VAKE_V1.build.product_line=STM32F446xx @@ -5986,7 +6042,8 @@ GenWL.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg 3dprinter.menu.pnum.FYSETC_S6.upload.maximum_size=458752 3dprinter.menu.pnum.FYSETC_S6.upload.maximum_data_size=131072 3dprinter.menu.pnum.FYSETC_S6.build.mcu=cortex-m4 -3dprinter.menu.pnum.FYSETC_S6.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +3dprinter.menu.pnum.FYSETC_S6.build.fpu=-mfpu=fpv4-sp-d16 +3dprinter.menu.pnum.FYSETC_S6.build.float-abi=-mfloat-abi=hard 3dprinter.menu.pnum.FYSETC_S6.build.board=FYSETC_S6 3dprinter.menu.pnum.FYSETC_S6.build.series=STM32F4xx 3dprinter.menu.pnum.FYSETC_S6.build.product_line=STM32F446xx @@ -6028,7 +6085,8 @@ BluesW.menu.pnum.SWAN_R5.upload.maximum_size=2097152 BluesW.menu.pnum.SWAN_R5.upload.maximum_data_size=655360 BluesW.menu.pnum.SWAN_R5.build.mcu=cortex-m4 BluesW.menu.pnum.SWAN_R5.build.cmsis_lib_gcc=arm_cortexM4lf_math -BluesW.menu.pnum.SWAN_R5.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +BluesW.menu.pnum.SWAN_R5.build.fpu=-mfpu=fpv4-sp-d16 +BluesW.menu.pnum.SWAN_R5.build.float-abi=-mfloat-abi=hard BluesW.menu.pnum.SWAN_R5.build.board=SWAN_R5 BluesW.menu.pnum.SWAN_R5.build.series=STM32L4xx BluesW.menu.pnum.SWAN_R5.build.product_line=STM32L4R5xx @@ -6066,7 +6124,8 @@ Elecgator.menu.pnum.ETHERCAT_DUINO=EtherCATduino Elecgator.menu.pnum.ETHERCAT_DUINO.upload.maximum_size=524288 Elecgator.menu.pnum.ETHERCAT_DUINO.upload.maximum_data_size=327680 Elecgator.menu.pnum.ETHERCAT_DUINO.build.mcu=cortex-m7 -Elecgator.menu.pnum.ETHERCAT_DUINO.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Elecgator.menu.pnum.ETHERCAT_DUINO.build.fpu=-mfpu=fpv4-sp-d16 +Elecgator.menu.pnum.ETHERCAT_DUINO.build.float-abi=-mfloat-abi=hard Elecgator.menu.pnum.ETHERCAT_DUINO.build.board=ETHERCAT_DUINO Elecgator.menu.pnum.ETHERCAT_DUINO.build.series=STM32F7xx Elecgator.menu.pnum.ETHERCAT_DUINO.build.product_line=STM32F746xx @@ -6168,7 +6227,8 @@ Garatronic.menu.pnum.PYBSTICK26_LITE.build.product_line=STM32F401xE Garatronic.menu.pnum.PYBSTICK26_LITE.build.variant=STM32F4xx/F401CC(F-U-Y)_F401C(B-D-E)(U-Y) Garatronic.menu.pnum.PYBSTICK26_LITE.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS Garatronic.menu.pnum.PYBSTICK26_LITE.build.cmsis_lib_gcc=arm_cortexM4lf_math -Garatronic.menu.pnum.PYBSTICK26_LITE.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Garatronic.menu.pnum.PYBSTICK26_LITE.build.fpu=-mfpu=fpv4-sp-d16 +Garatronic.menu.pnum.PYBSTICK26_LITE.build.float-abi=-mfloat-abi=hard # PYBSTICK26(STD/Programmez!) board with F411RE Garatronic.menu.pnum.PYBSTICK26_STD=PYBSTICK26 STD-Programmez @@ -6181,7 +6241,8 @@ Garatronic.menu.pnum.PYBSTICK26_STD.build.product_line=STM32F411xE Garatronic.menu.pnum.PYBSTICK26_STD.build.variant=STM32F4xx/F411R(C-E)T Garatronic.menu.pnum.PYBSTICK26_STD.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS Garatronic.menu.pnum.PYBSTICK26_STD.build.cmsis_lib_gcc=arm_cortexM4lf_math -Garatronic.menu.pnum.PYBSTICK26_STD.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Garatronic.menu.pnum.PYBSTICK26_STD.build.fpu=-mfpu=fpv4-sp-d16 +Garatronic.menu.pnum.PYBSTICK26_STD.build.float-abi=-mfloat-abi=hard # PYBSTICK26(PRO) board with F412RE Garatronic.menu.pnum.PYBSTICK26_PRO=PYBSTICK26 Pro @@ -6194,7 +6255,8 @@ Garatronic.menu.pnum.PYBSTICK26_PRO.build.product_line=STM32F412Rx Garatronic.menu.pnum.PYBSTICK26_PRO.build.variant=STM32F4xx/F412R(E-G)(T-Y)x(P) Garatronic.menu.pnum.PYBSTICK26_PRO.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS Garatronic.menu.pnum.PYBSTICK26_PRO.build.cmsis_lib_gcc=arm_cortexM4lf_math -Garatronic.menu.pnum.PYBSTICK26_PRO.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Garatronic.menu.pnum.PYBSTICK26_PRO.build.fpu=-mfpu=fpv4-sp-d16 +Garatronic.menu.pnum.PYBSTICK26_PRO.build.float-abi=-mfloat-abi=hard # PYBSTICK26 boards upload method Garatronic.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU) @@ -6244,7 +6306,8 @@ GenFlight.menu.pnum.Sparky_V1.build.series=STM32F3xx GenFlight.menu.pnum.Sparky_V1.build.cmsis_lib_gcc=arm_cortexM4lf_math GenFlight.menu.pnum.Sparky_V1.build.board=SPARKY_F303CC GenFlight.menu.pnum.Sparky_V1.build.product_line=STM32F303xC -GenFlight.menu.pnum.Sparky_V1.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +GenFlight.menu.pnum.Sparky_V1.build.fpu=-mfpu=fpv4-sp-d16 +GenFlight.menu.pnum.Sparky_V1.build.float-abi=-mfloat-abi=hard GenFlight.menu.pnum.Sparky_V1.build.variant=STM32F3xx/F303C(B-C)T GenFlight.menu.pnum.Sparky_V1.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS @@ -6409,7 +6472,8 @@ Midatronics.menu.pnum.MKR_SHARKY.node=NODE_WB55CE Midatronics.menu.pnum.MKR_SHARKY.upload.maximum_size=262144 Midatronics.menu.pnum.MKR_SHARKY.upload.maximum_data_size=196608 Midatronics.menu.pnum.MKR_SHARKY.build.mcu=cortex-m4 -Midatronics.menu.pnum.MKR_SHARKY.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard +Midatronics.menu.pnum.MKR_SHARKY.build.fpu=-mfpu=fpv4-sp-d16 +Midatronics.menu.pnum.MKR_SHARKY.build.float-abi=-mfloat-abi=hard Midatronics.menu.pnum.MKR_SHARKY.build.board=MKR_SHARKY Midatronics.menu.pnum.MKR_SHARKY.build.series=STM32WBxx Midatronics.menu.pnum.MKR_SHARKY.build.product_line=STM32WB55xx diff --git a/platform.txt b/platform.txt index 2a2fa4e1dd..5802d54fd5 100644 --- a/platform.txt +++ b/platform.txt @@ -28,7 +28,7 @@ compiler.objcopy.cmd=arm-none-eabi-objcopy compiler.elf2hex.cmd=arm-none-eabi-objcopy compiler.libraries.ldflags= -compiler.extra_flags=-mcpu={build.mcu} {build.flags.fp} -DUSE_FULL_LL_DRIVER -mthumb "@{build.opt.path}" +compiler.extra_flags=-mcpu={build.mcu} {build.fpu} {build.float-abi} -DUSE_FULL_LL_DRIVER -mthumb "@{build.opt.path}" compiler.S.flags={compiler.extra_flags} -c -x assembler-with-cpp {compiler.stm.extra_include} @@ -38,7 +38,7 @@ compiler.cpp.flags={compiler.extra_flags} -c {build.flags.optimize} {build.flags compiler.ar.flags=rcs -compiler.c.elf.flags=-mcpu={build.mcu} {build.flags.fp} -mthumb {build.flags.optimize} {build.flags.debug} {build.flags.ldspecs} -Wl,--defsym=LD_FLASH_OFFSET={build.flash_offset} -Wl,--defsym=LD_MAX_SIZE={upload.maximum_size} -Wl,--defsym=LD_MAX_DATA_SIZE={upload.maximum_data_size} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common +compiler.c.elf.flags=-mcpu={build.mcu} {build.fpu} {build.float-abi} -mthumb {build.flags.optimize} {build.flags.debug} {build.flags.ldspecs} -Wl,--defsym=LD_FLASH_OFFSET={build.flash_offset} -Wl,--defsym=LD_MAX_SIZE={upload.maximum_size} -Wl,--defsym=LD_MAX_DATA_SIZE={upload.maximum_data_size} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 @@ -102,7 +102,8 @@ build.usb_speed= build.enable_virtio= build.peripheral_pins= build.startup_file= -build.flags.fp= +build.fpu= +build.float-abi= build.flags.optimize=-Os build.flags.debug=-DNDEBUG build.flags.ldspecs=--specs=nano.specs