#
# Marlin Firmware
# PlatformIO Configuration File
#

####################################
#
# HAL/STM32 Common Environments
#
####################################

[common_stm32]
platform         = ststm32@~12.1
board_build.core = stm32
build_flags      = ${common.build_flags}
                   -std=gnu++14 -DHAL_STM32
                   -DUSBCON -DUSBD_USE_CDC
                   -DTIM_IRQ_PRIO=13
                   -DADC_RESOLUTION=12
build_unflags    = -std=gnu++11
build_src_filter = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/shared/backtrace>
extra_scripts    = ${common.extra_scripts}
                   pre:buildroot/share/PlatformIO/scripts/stm32_serialbuffer.py

#
# STM32 board based on a variant.
#
[stm32_variant]
extends       = common_stm32
extra_scripts = ${common_stm32.extra_scripts}
                pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
                    buildroot/share/PlatformIO/scripts/offset_and_rename.py

#
# USB Flash Drive mix-ins for STM32
#
[stm_flash_drive]
platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/usb-host-msc-cdc-msc-3.zip
build_flags       = ${common_stm32.build_flags}
                    -DHAL_PCD_MODULE_ENABLED -DHAL_HCD_MODULE_ENABLED
                    -DUSBHOST -DUSBH_IRQ_PRIO=3 -DUSBH_IRQ_SUBPRIO=4