# Configuration file for the STM32 for VSCode extension
# Arrays can be inputted in two ways. One is: [entry_1, entry_2, ..., entry_final]
# or by adding an indented list below the variable name e.g.:
# VARIABLE:
# - entry_1
# - entry_2

# The project name
target: steering-wheel
# Can be C or C++
language: C++

optimization: Og

# MCU settings
targetMCU: stm32h7x
cpu: cortex-m7 # type of cpu e.g. cortex-m4
fpu: fpv5-d16 # Defines how floating points are defined. Can be left empty.
floatAbi: -mfloat-abi=hard
ldscript: STM32H7A3ZITx_FLASH_nocube.ld # linker script

# Compiler definitions. The -D prefix for the compiler will be automatically added.
cDefinitions:
  - USE_HAL_DRIVER
  - STM32H7A3xx
  - STM32H7
  - FTCAN_NUM_FILTERS=32

cxxDefinitions:
  - USE_HAL_DRIVER
  - STM32H7A3xx
  - COMPILER_GIT_BUILD_HASH="a07d51f"

asDefinitions: []

# Compiler definition files. you can add a single files or an array of files for different definitions.
# The file is expected to have a definition each new line.
# This allows to include for example a .definition file which can be ignored in git and can contain
# This can be convenient for passing along secrets at compile time, or generating a file for per device setup.
cDefinitionsFile:
cxxDefinitionsFile:
asDefinitionsFile:

# Compiler flags
cFlags:
  - -Wall
  - -Wextra
  - -Werror
  - -Wno-unused-parameter
  - -Wno-missing-field-initializers
cxxFlags:
  - -fno-rtti
  - -Wall
  - -Wextra
  - -Werror
  - -Wno-unused-parameter
  - -Wno-missing-field-initializers
assemblyFlags: []
linkerFlags:
  - -specs=nosys.specs

# libraries to be included. The -l prefix to the library will be automatically added.
libraries:
  - c
  - m
  - nosys
  - touchgfx-float-abi-hard

# Library directories. Folders can be added here that contain custom libraries.
libraryDirectories:
  - Middlewares/ST/touchgfx/lib/core/cortex_m7/gcc

# Files or folders that will be excluded from compilation.
# Glob patterns (https://www.wikiwand.com/en/Glob_(programming)) can be used.
# Do mind that double stars are reserved in yaml
# these should be escaped with a: \ or the name should be in double quotes e.g. "**.test.**"
excludes:
  - "**/Examples/**"
  - "**/examples/**"
  - "**/Example/**"
  - "**/example/**"
  - "**_template.*"
  - "TouchGFX/Middlewares/ST/touchgfx/framework/source/platform/**"
  - "TouchGFX/Middlewares/ST/touchgfx/{lib,os}/**"
  - "Middlewares/ST/touchgfx/framework/source/platform"
  - "**/simulator/**"
  - TouchGFX/vehicle_state.c

# Include directories (directories containing .h or .hpp files)
# If a CubeMX makefile is present it will automatically include the include directories from that makefile.
includeDirectories:
  - Core/Inc
  - Drivers/STM32H7xx_HAL_Driver/Inc
  - Drivers/STM32H7xx_HAL_Driver/Inc/Legacy
  - Utilities/JPEG
  - Drivers/CMSIS/Device/ST/STM32H7xx/Include
  - Drivers/CMSIS/Include
  - Inc/**
  - Core/Inc/**
  - Core/Lib/**
  - Src/**
  - Core/Src/**
  - Core/Lib/**
  # - TouchGFX/**
  - Middlewares/ST/touchgfx/framework/include
  - TouchGFX/gui/include
  - TouchGFX/generated/fonts/include
  - TouchGFX/generated/gui_generated/include
  - TouchGFX/generated/images/include
  - TouchGFX/generated/texts/include
  - TouchGFX/generated/videos/include

# Files that should be included in the compilation.
# If a CubeMX makefile is present it will automatically include the  c and cpp/cxx files from that makefile.
# Glob patterns (https://www.wikiwand.com/en/Glob_(programming)) can be used.
# Do mind that double stars are reserved in yaml
# these should be escaped with a: \ or the name should be in double quotes e.g. "HARDWARE_DRIVER*.c"
sourceFiles:
  - startup_stm32h7a3xx.s
  - Middlewares/ST/threadx/ports/cortex_m7/gnu/src/*.S
  - Core/Src/main.c
  - Core/Src/stm32h7xx_it.c
  - Core/Src/stm32h7xx_hal_msp.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma2d.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_jpeg.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ltdc.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ltdc_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ospi.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi_ex.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c
  - Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c
  - Core/Src/system_stm32h7xx.c
  - Utilities/JPEG/jpeg_utils.c
  - Middlewares/ST/touchgfx/framework/source/touchgfx/PaintImpl.cpp
  - Src/**
  - Core/Src/**
  - Core/Lib/**
  - TouchGFX/**/*.c
  - TouchGFX/**/*.cpp

# When no makefile is present it will show a warning pop-up.
# However when compilation without the CubeMX Makefile is desired, this can be turned of.
suppressMakefileWarning: false

# Custom makefile rules
# Here custom makefile rules can be added to the STM32Make.make file
# an example of how this can be used is commented out below.
customMakefileRules:
# - command: sayhello
#   rule: echo "hello"
#   dependsOn: $(BUILD_DIR)/$(TARGET).elf # can be left out

# Additional flags which will be used when invoking the make command
makeFlags:
# - -O  # use this option when the output of make is mixed up only works for make version 4.0 and upwards
# - --silent # use this option to silence the output of the build
# - -j1