From 1abb3f8aacb6a97f5382ebaeba1405571f227f0b Mon Sep 17 00:00:00 2001 From: Michael Sharman Date: Tue, 1 Sep 2020 15:49:50 +1000 Subject: [PATCH 1/2] fix IS_ADC_CHANNEL() bug on STM32F411xE variants --- .../STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h b/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h index 6587acc802..7b221d9582 100644 --- a/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h +++ b/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h @@ -304,17 +304,17 @@ HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef* hadc, ADC_ */ #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \ defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) || \ - defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F412Zx) || defined(STM32F412Vx) || \ + defined(STM32F410Rx) || defined(STM32F412Zx) || defined(STM32F412Vx) || \ defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) #define IS_ADC_CHANNEL(CHANNEL) ((CHANNEL) <= ADC_CHANNEL_18) -#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE || +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F401xC || STM32F401xE || STM32F410xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */ -#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \ +#if defined(STM32F411xE) || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \ defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) <= ADC_CHANNEL_18) || \ ((CHANNEL) == ADC_CHANNEL_TEMPSENSOR)) -#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ +#endif /* STM32F411xE || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ #define IS_ADC_MODE(MODE) (((MODE) == ADC_MODE_INDEPENDENT) || \ ((MODE) == ADC_DUALMODE_REGSIMULT_INJECSIMULT) || \ From f05838ee99c2d6e85a8239316a7fcfe2d57f27cc Mon Sep 17 00:00:00 2001 From: Michael Sharman Date: Tue, 1 Sep 2020 21:31:34 +1000 Subject: [PATCH 2/2] use build script from official platformio framwork package --- tools/platformio-build.py | 53 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/tools/platformio-build.py b/tools/platformio-build.py index 68b0dfc01c..72ee0abcf5 100644 --- a/tools/platformio-build.py +++ b/tools/platformio-build.py @@ -32,7 +32,7 @@ board = env.BoardConfig() FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoststm32") -CMSIS_DIR = join(platform.get_package_dir("framework-arduinoststm32"), "CMSIS", "CMSIS") +CMSIS_DIR = join(platform.get_package_dir("framework-cmsis"), "CMSIS") assert isdir(FRAMEWORK_DIR) assert isdir(CMSIS_DIR) @@ -168,6 +168,7 @@ def configure_application_offset(mcu, upload_protocol): join(FRAMEWORK_DIR, "cores", "arduino", "stm32"), join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "LL"), join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "usb"), + join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "OpenAMP"), join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "usb", "hid"), join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "usb", "cdc"), join(FRAMEWORK_DIR, "system", "Drivers", series + "_HAL_Driver", "Inc"), @@ -191,6 +192,37 @@ def configure_application_offset(mcu, upload_protocol): "Core", "Src", ), + join( + FRAMEWORK_DIR, + "system", + "Middlewares", + "OpenAMP" + ), + join( + FRAMEWORK_DIR, + "system", + "Middlewares", + "OpenAMP", + "open-amp", + "lib", + "include", + ), + join( + FRAMEWORK_DIR, + "system", + "Middlewares", + "OpenAMP", + "libmetal", + "lib", + "include", + ), + join( + FRAMEWORK_DIR, + "system", + "Middlewares", + "OpenAMP", + "virtual_driver" + ), join(CMSIS_DIR, "Core", "Include"), join( FRAMEWORK_DIR, @@ -202,7 +234,6 @@ def configure_application_offset(mcu, upload_protocol): series, "Include", ), - join(CMSIS_DIR, "DSP", "Include"), join( FRAMEWORK_DIR, "system", @@ -215,6 +246,7 @@ def configure_application_offset(mcu, upload_protocol): "Templates", "gcc", ), + join(CMSIS_DIR, "DSP", "Include"), join(FRAMEWORK_DIR, "cores", "arduino"), variant_dir, ], @@ -241,6 +273,18 @@ def configure_application_offset(mcu, upload_protocol): LIBPATH=[variant_dir, join(CMSIS_DIR, "DSP", "Lib", "GCC")], ) +if "build.usb_product" in board: + env.Append( + CPPDEFINES=[ + ("USB_VID", board.get("build.hwids")[0][0]), + ("USB_PID", board.get("build.hwids")[0][1]), + ("USB_PRODUCT", '\\"%s\\"' % + board.get("build.usb_product", "").replace('"', "")), + ("USB_MANUFACTURER", '\\"%s\\"' % + board.get("vendor", "").replace('"', "")) + ] + ) + env.ProcessFlags(board.get("build.framework_extra_flags.arduino", "")) configure_application_offset(mcu, upload_protocol) @@ -250,9 +294,10 @@ def configure_application_offset(mcu, upload_protocol): # if not board.get("build.ldscript", ""): + env.Replace(LDSCRIPT_PATH=join(FRAMEWORK_DIR, "system", "ldscript.ld")) if not isfile(join(env.subst(variant_dir), "ldscript.ld")): print("Warning! Cannot find linker script for the current target!\n") - env.Replace(LDSCRIPT_PATH=join(variant_dir, "ldscript.ld")) + env.Append(LINKFLAGS=[("-Wl,--default-script", join(variant_dir, "ldscript.ld"))]) # # Process configuration flags @@ -293,4 +338,4 @@ def configure_application_offset(mcu, upload_protocol): join("$BUILD_DIR", "SrcWrapper"), join(FRAMEWORK_DIR, "libraries", "SrcWrapper") ) -env.Prepend(LIBS=libs) +env.Prepend(LIBS=libs) \ No newline at end of file