🔨 Fix some build_flags inheritance

This commit is contained in:
Scott Lahteine 2025-05-05 21:07:47 -05:00
parent 3a3c3b8a22
commit b7a1681d38
3 changed files with 40 additions and 18 deletions

View file

@ -0,0 +1,23 @@
# Marlin Custom Variants
This `buildroot/share/PlatformIO/variants` folder contains Marlin custom variants for both generic and custom boards.
Marlin specifies board variants in PlatformIO INI files in one of two ways:
- The `board_build.variant = VARIANT_MAME` field specifies the variant subfolder name directly.
- The `board = board_name` field names a custom board JSON file that contains a `build.variant` field.
## Variant File Naming
With the latest STM32 platform (17.x) the `variant.h` and `variant.cpp` files are required to have more unique names. If the variant is based on a generic board definition the name `variant_generic.h`/`.cpp` should be used. Otherwise, the capitalized name of the `board` should be used.
### Examples
| board | board file | variant | Variant Files |
|-------|------------|---------|---------------|
|`marlin_STM32F407VGT6_CCM`|`marlin_STM32F407VGT6_CCM.json`|`MARLIN_BTT_E3_RRF`|`variants/MARLIN_BTT_E3_RRF/variant.*`|
|`genericSTM32F103VE`|n/a|`MARLIN_F103Vx`|`variants/MARLIN_F103Vx/variant_generic.*`|
|`marlin_STM32F407ZE`|`marlin_STM32F407ZE.json`|`MARLIN_F407ZE`|`variants/MARLIN_F407ZE/variant_MARLIN_F407ZE.*`|
# Marlin Custom Boards
The `buildroot/share/PlatformIO/boards` folder contains Marlin's custom board definition JSON files. These files provide hardware IDs, board statistics, additional build flags, custom variant name, linker definition filename, remote debug options, upload devices, etc.

View file

@ -41,6 +41,5 @@ extra_scripts = ${common_stm32.extra_scripts}
[stm_flash_drive]
# Arduino_Core_STM32 uses usb-host-msc-cdc-msc-3 branch
platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/39f37d6d6a.zip
build_flags = ${common_stm32.build_flags}
-DHAL_PCD_MODULE_ENABLED -DHAL_HCD_MODULE_ENABLED
build_flags = -DHAL_PCD_MODULE_ENABLED -DHAL_HCD_MODULE_ENABLED
-DUSBHOST -DUSBH_IRQ_PRIO=3 -DUSBH_IRQ_SUBPRIO=4

View file

@ -219,7 +219,7 @@ upload_protocol = stlink
[env:BTT_SKR_PRO_usb_flash_drive]
extends = env:BTT_SKR_PRO
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} -DSTM32F407_5ZX
build_flags = ${env:BTT_SKR_PRO.build_flags} ${stm_flash_drive.build_flags} -DSTM32F407_5ZX
build_unflags = ${env:BTT_SKR_PRO.build_unflags} -DUSBCON -DUSBD_USE_CDC
#
@ -266,7 +266,7 @@ build_flags = ${stm32_variant.build_flags} -DSTM32F407IX
[env:BTT_GTR_V1_0_usb_flash_drive]
extends = env:BTT_GTR_V1_0
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} -DSTM32F407IX
build_flags = ${env:BTT_GTR_V1_0.build_flags} ${stm_flash_drive.build_flags} -DSTM32F407IX
build_unflags = ${env:BTT_GTR_V1_0.build_unflags} -DUSBCON -DUSBD_USE_CDC
#
@ -304,7 +304,7 @@ board = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_F4x7Vx
board_build.offset = 0x8000
board_upload.offset_address = 0x08008000
build_flags = ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
build_flags = ${stm32_variant.build_flags} ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
-DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED
-DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
upload_protocol = stlink
@ -362,7 +362,7 @@ build_flags = ${stm32_variant.build_flags}
extends = env:STM32F446ZE_btt
platform_packages = ${stm_flash_drive.platform_packages}
build_unflags = -DUSBD_USE_CDC
build_flags = ${stm_flash_drive.build_flags} -DSTM32F446_5VX
build_flags = ${env:STM32F446ZE_btt.build_flags} ${stm_flash_drive.build_flags} -DSTM32F446_5VX
${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
#
@ -385,7 +385,7 @@ build_flags = ${stm32_variant.build_flags}
extends = env:STM32F429ZG_btt
platform_packages = ${stm_flash_drive.platform_packages}
build_unflags = -DUSBD_USE_CDC
build_flags = ${stm_flash_drive.build_flags}
build_flags = ${env:STM32F429ZG_btt.build_flags} ${stm_flash_drive.build_flags}
${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
#
@ -406,7 +406,7 @@ build_flags = ${stm32_variant.build_flags}
extends = env:STM32F407ZE_btt
platform_packages = ${stm_flash_drive.platform_packages}
build_unflags = -DUSBD_USE_CDC
build_flags = ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
build_flags = ${env:STM32F407ZE_btt.build_flags} ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
#
# Lerdge base
@ -438,7 +438,7 @@ board_build.crypt_lerdge = Lerdge_X_firmware_force.bin
[env:LERDGEX_usb_flash_drive]
extends = env:LERDGEX
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
build_flags = ${env:LERDGEX.build_flags} ${stm_flash_drive.build_flags}
#
# Lerdge S (STM32F407ZG)
@ -453,7 +453,7 @@ board_build.crypt_lerdge = Lerdge_firmware_force.bin
[env:LERDGES_usb_flash_drive]
extends = env:LERDGES
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
build_flags = ${env:LERDGES.build_flags} ${stm_flash_drive.build_flags}
#
# Lerdge K (STM32F407ZG)
@ -469,7 +469,7 @@ build_flags = ${lerdge_common.build_flags} -DLERDGEK
[env:LERDGEK_usb_flash_drive]
extends = env:LERDGEK
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
build_flags = ${env:LERDGEK.build_flags} ${stm_flash_drive.build_flags}
#
# RUMBA32
@ -512,7 +512,7 @@ board = genericSTM32F407VET6
board_build.variant = MARLIN_F4x7Vx
board_build.offset = 0x0000
board_upload.offset_address = 0x08000000
build_flags = ${stm_flash_drive.build_flags}
build_flags = ${stm32_variant.build_flags} ${stm_flash_drive.build_flags}
build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
debug_tool = jlink
upload_protocol = jlink
@ -544,7 +544,7 @@ upload_protocol = jlink
[env:mks_robin_nano_v3_usb_flash_drive]
extends = env:mks_robin_nano_v3
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
build_flags = ${env:mks_robin_nano_v3.build_flags} ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
#
# MKS Robin Nano V3 with USB Flash Drive Support and Shared Media
@ -600,7 +600,7 @@ upload_protocol = jlink
[env:mks_eagle_usb_flash_drive]
extends = env:mks_eagle
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
build_flags = ${env:mks_eagle.build_flags} ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
#
# MKS Eagle with USB Flash Drive Support and Shared Media
@ -699,9 +699,9 @@ board_build.offset = 0xC000
board_upload.offset_address = 0x0800C000
board_build.rename = elegoo.bin
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags}
${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
-DHAL_PCD_MODULE_ENABLED -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
build_flags = ${stm32_variant.build_flags} ${stm_flash_drive.build_flags}
${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
-DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
-DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
-DSTM32_FLASH_SIZE=512
-DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2
@ -997,6 +997,6 @@ board = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_F4x7Vx
board_build.offset = 0x8000
board_upload.offset_address = 0x08008000
build_flags = ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
build_flags = ${stm32_variant.build_flags} ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
-DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED
-DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8