# See: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification
# Modified for tArmDuino
# Modified for WeActDuino only 8/27/23   --jkl
# Modified to work with stm 2.8.1  3/12/25   --jkl
# Added ocd target 4/14/25 --jkl
# generic 'Serial' is enabled by default  8/24/25   --jkl
# debug using DAPLink or STLink now tracks upload method selection  9/2/25  --jkl

#menu.pnum=Board part number
#menu.flash=Flash Memory Size

menu.xserial=U(S)ART support
#menu.usb=USB support (if available)
#menu.xusb=USB speed (if available)

menu.opt=Optimize
menu.rtlib=C Runtime Library
menu.upload_method=Upload method

################################################################################
# weActDuino STM32G431

weActDuinoG431.name=weActDuinoG431

#weActDuinoG431.build.core=STM32:arduino
weActDuinoG431.build.core=STMicroelectronics:arduino
weActDuinoG431.build.extra_flags=-D{build.product_line} {build.xSerial}

# weActG431 board
weActDuinoG431.upload.maximum_size=131072
weActDuinoG431.upload.maximum_data_size=32768
weActDuinoG431.build.flash_offset=0x0
weActDuinoG431.build.mcu=cortex-m4
#weActDuinoG431.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
weActDuinoG431.build.fpu=-mfpu=fpv4-sp-d16
weActDuinoG431.build.float-abi=-mfloat-abi=hard
weActDuinoG431.build.board=WEACT_G431CB
weActDuinoG431.build.series=STM32G4xx
weActDuinoG431.build.product_line=STM32G431xx
weActDuinoG431.build.variant=STM32G4xx/G431CBU
weActDuinoG431.build.variant_h=variant_WEACT_G431CB.h
weActDuinoG431.build.cmsis_lib_gcc=arm_cortexM4lf_math
weActDuinoG431.openocd.target=stm32g4x
weActDuinoG431.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32G4xx/STM32G431.svd

# Serialx activation

weActDuinoG431.menu.xserial.generic=Enabled (generic 'Serial')
weActDuinoG431.menu.xserial.none=Enabled (no generic 'Serial')
weActDuinoG431.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
weActDuinoG431.menu.xserial.disabled=Disabled (No Serial support)
weActDuinoG431.menu.xserial.disabled.build.xSerial=

# Optimization

weActDuinoG431.menu.opt.osstd=Smallest (-Os default)
weActDuinoG431.menu.opt.oslto=Smallest (-Os) with LTO
weActDuinoG431.menu.opt.oslto.build.flags.optimize=-Os -flto
weActDuinoG431.menu.opt.o1std=Fast (-O1)
weActDuinoG431.menu.opt.o1std.build.flags.optimize=-O1
weActDuinoG431.menu.opt.o1lto=Fast (-O1) with LTO
weActDuinoG431.menu.opt.o1lto.build.flags.optimize=-O1 -flto
weActDuinoG431.menu.opt.o2std=Faster (-O2)
weActDuinoG431.menu.opt.o2std.build.flags.optimize=-O2
weActDuinoG431.menu.opt.o2lto=Faster (-O2) with LTO
weActDuinoG431.menu.opt.o2lto.build.flags.optimize=-O2 -flto
weActDuinoG431.menu.opt.o3std=Fastest (-O3)
weActDuinoG431.menu.opt.o3std.build.flags.optimize=-O3
weActDuinoG431.menu.opt.o3lto=Fastest (-O3) with LTO
weActDuinoG431.menu.opt.o3lto.build.flags.optimize=-O3 -flto
weActDuinoG431.menu.opt.ogstd=Debug (-g)
weActDuinoG431.menu.opt.ogstd.build.flags.optimize=-g -Og

# C Runtime Library

weActDuinoG431.menu.rtlib.nano=Newlib Nano (default)
weActDuinoG431.menu.rtlib.nanofp=Newlib Nano + Float Printf
weActDuinoG431.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
weActDuinoG431.menu.rtlib.nanofs=Newlib Nano + Float Scanf
weActDuinoG431.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
weActDuinoG431.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
weActDuinoG431.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
weActDuinoG431.menu.rtlib.full=Newlib Standard
weActDuinoG431.menu.rtlib.full.build.flags.ldspecs=

# Upload menu
weActDuinoG431.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
weActDuinoG431.menu.upload_method.swdMethod.upload.protocol=swd
weActDuinoG431.menu.upload_method.swdMethod.upload.options=
weActDuinoG431.menu.upload_method.swdMethod.upload.tool=stm32CubeProg

weActDuinoG431.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
weActDuinoG431.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
weActDuinoG431.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
weActDuinoG431.menu.upload_method.OpenOCDSTLink.debug.server.openocd.scripts.0=interface/stlink.cfg
weActDuinoG431.menu.upload_method.OpenOCDSTLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_dapdirect.cfg
#weActDuinoG431.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
#weActDuinoG431.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg

weActDuinoG431.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
weActDuinoG431.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
weActDuinoG431.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
weActDuinoG431.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
weActDuinoG431.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg


