##############################################################

edge_control.name=Arduino Edge Control
edge_control.build.core=arduino
edge_control.build.crossprefix=arm-none-eabi-
edge_control.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

edge_control.build.variant=EDGE_CONTROL
edge_control.build.mcu=cortex-m4
edge_control.build.extra_flags=
edge_control.build.architecture=cortex-m4
edge_control.build.fpu=-mfpu=fpv4-sp-d16
edge_control.build.float-abi=-mfloat-abi=softfp
edge_control.build.board=EDGE_CONTROL
edge_control.build.ldscript=linker_script.ld
edge_control.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840
edge_control.compiler.mbed.defines={build.variant.path}/defines.txt
edge_control.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
edge_control.compiler.mbed.cflags={build.variant.path}/cflags.txt
edge_control.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
edge_control.compiler.mbed.includes={build.variant.path}/includes.txt
edge_control.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
edge_control.compiler.mbed="{build.variant.path}/libs/libmbed.a" "{build.variant.path}/libs/libcc_310_core.a" "{build.variant.path}/libs/libcc_310_ext.a" "{build.variant.path}/libs/libcc_310_trng.a"
edge_control.vid.0=0x2341
edge_control.pid.0=0x005d
edge_control.vid.1=0x2341
edge_control.pid.1=0x805d
edge_control.upload_port.0.vid=0x2341
edge_control.upload_port.0.pid=0x005d
edge_control.upload_port.1.vid=0x2341
edge_control.upload_port.1.pid=0x805d

edge_control.upload.tool=bossac
edge_control.upload.tool.default=bossac
edge_control.upload.protocol=
edge_control.upload.transport=
edge_control.upload.use_1200bps_touch=true
edge_control.upload.wait_for_upload_port=true
edge_control.upload.native_usb=true
edge_control.upload.maximum_size=983040
edge_control.upload.maximum_data_size=262144

edge_control.bootloader.tool=openocd
edge_control.bootloader.tool.default=openocd
edge_control.bootloader.extra_action.preflash=echo INFO:removed_mass-erase
edge_control.bootloader.config=-f target/nrf52.cfg
edge_control.bootloader.programmer=-f interface/cmsis-dap.cfg
edge_control.bootloader.file=EDGE_CONTROL/bootloader.hex

edge_control.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
edge_control.debug.server.openocd.scripts.1={programmer.transport_script}
edge_control.debug.server.openocd.scripts.2=target/nrf52.cfg
edge_control.debug.svd_file={runtime.platform.path}/svd/nrf52840.svd

##############################################################

menu.split=Flash split
menu.target_core=Target core
menu.security=Security setting

envie_m7.name=Arduino Portenta H7
envie_m7.build.core=arduino
envie_m7.build.crossprefix=arm-none-eabi-
envie_m7.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

envie_m7.menu.target_core.cm7=Main Core
envie_m7.menu.target_core.cm4=M4 Co-processor

envie_m7.menu.split.50_50=1MB M7 + 1MB M4
envie_m7.menu.split.75_25=1.5MB M7 + 0.5MB M4
envie_m7.menu.split.100_0=2MB M7 + M4 in SDRAM

envie_m7.menu.security.none=None
envie_m7.menu.security.sien=Signature + Encryption

envie_m7.menu.target_core.cm7.build.variant=PORTENTA_H7_M7
envie_m7.menu.target_core.cm7.build.mcu=cortex-m7
envie_m7.menu.target_core.cm7.build.fpu=-mfpu=fpv5-d16
envie_m7.menu.target_core.cm7.build.architecture=cortex-m7
envie_m7.menu.target_core.cm7.compiler.mbed.arch.define=

envie_m7.menu.target_core.cm4.build.variant=GENERIC_STM32H747_M4
envie_m7.menu.target_core.cm4.build.mcu=cortex-m4
envie_m7.menu.target_core.cm4.build.fpu=-mfpu=fpv4-sp-d16
envie_m7.menu.target_core.cm4.build.architecture=cortex-m4
envie_m7.menu.target_core.cm4.compiler.mbed.arch.define=-DPORTENTA_H7_PINS

envie_m7.build.float-abi=-mfloat-abi=softfp
envie_m7.build.extra_flags=
envie_m7.menu.split.50_50.build.extra_ldflags=-DCM4_BINARY_START=0x08100000 -DCM4_BINARY_END=0x08200000
envie_m7.menu.split.75_25.build.extra_ldflags=-DCM4_BINARY_START=0x08180000 -DCM4_BINARY_END=0x08200000
envie_m7.menu.split.100_0.build.extra_ldflags=-DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000
envie_m7.build.board={build.variant}
envie_m7.build.ldscript=linker_script.ld
envie_m7.build.slot_size=0x1E0000
envie_m7.build.header_size=0x20000
envie_m7.build.alignment=32
envie_m7.build.version=1.2.3+4
envie_m7.menu.security.sien.recipe.hooks.objcopy.postobjcopy.1.pattern="{tools.imgtool.path}/{tools.imgtool.cmd}" {tools.imgtool.flags}
envie_m7.menu.security.sien.build.keys.keychain={runtime.platform.path}/libraries/MCUboot/default_keys
envie_m7.menu.security.sien.build.keys.sign_key=ecdsa-p256-signing-priv-key.pem
envie_m7.menu.security.sien.build.keys.encrypt_key=ecdsa-p256-encrypt-pub-key.pem
envie_m7.compiler.mbed.defines={build.variant.path}/defines.txt
envie_m7.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
envie_m7.compiler.mbed.cflags={build.variant.path}/cflags.txt
envie_m7.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
envie_m7.compiler.mbed.includes={build.variant.path}/../PORTENTA_H7_M7/includes.txt
envie_m7.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
envie_m7.compiler.mbed="{build.variant.path}/libs/libmbed.a"
envie_m7.vid.0=0x2341
envie_m7.pid.0=0x025b
envie_m7.vid.1=0x2341
envie_m7.pid.1=0x035b
envie_m7.vid.2=0x2341
envie_m7.pid.2=0x045b
envie_m7.vid.3=0x2341
envie_m7.pid.3=0x055b
envie_m7.upload_port.0.vid=0x2341
envie_m7.upload_port.0.pid=0x025b
envie_m7.upload_port.1.vid=0x2341
envie_m7.upload_port.1.pid=0x035b
envie_m7.upload_port.2.vid=0x2341
envie_m7.upload_port.2.pid=0x045b
envie_m7.upload_port.3.vid=0x2341
envie_m7.upload_port.3.pid=0x055b

envie_m7.upload.tool=dfu-util
envie_m7.upload.tool.default=dfu-util
envie_m7.upload.protocol=
envie_m7.upload.transport=
envie_m7.upload.vid=0x2341
envie_m7.upload.pid=0x035b

envie_m7.upload.use_1200bps_touch=true
envie_m7.upload.wait_for_upload_port=true
envie_m7.upload.native_usb=true

envie_m7.menu.security.none.upload.interface=0
envie_m7.menu.security.sien.upload.interface=2

envie_m7.menu.security.none.upload.address_m7=0x08040000
envie_m7.menu.security.sien.upload.address_m7=0xA0000000
envie_m7.menu.target_core.cm7.upload.address={upload.address_m7}

envie_m7.menu.target_core.cm7.menu.split.50_50.upload.maximum_size=786432
envie_m7.menu.target_core.cm7.menu.split.75_25.upload.maximum_size=1441792
envie_m7.menu.target_core.cm7.menu.split.100_0.upload.maximum_size=1966080
envie_m7.menu.target_core.cm7.upload.maximum_data_size=523624

envie_m7.menu.split.50_50.upload.address_m4=0x08100000
envie_m7.menu.split.75_25.upload.address_m4=0x08180000
#make loading the M4 in this way fail - the user needs to provide a file via mass storage or similar interfaces
envie_m7.menu.split.100_0.upload.address_m4=
envie_m7.menu.target_core.cm4.upload.address={upload.address_m4}
envie_m7.menu.target_core.cm4.menu.split.50_50.upload.maximum_size=1048576
envie_m7.menu.target_core.cm4.menu.split.75_25.upload.maximum_size=524288
envie_m7.menu.target_core.cm4.menu.split.100_0.upload.maximum_size=524288
envie_m7.menu.target_core.cm4.upload.maximum_data_size=294248

envie_m7.debug.tool=gdb
envie_m7.bootloader.tool=openocd
envie_m7.bootloader.tool.default=openocd
envie_m7.bootloader.config=-f target/stm32h7x_dual_bank.cfg
envie_m7.bootloader.programmer=-f interface/stlink.cfg
envie_m7.bootloader.extra_action.preflash=stm32h7x option_write 0 0x01c 0xb86aaf0
envie_m7.bootloader.file=PORTENTA_H7/portentah7_bootloader_mbed_hs_v2.hex

envie_m7.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
envie_m7.debug.server.openocd.scripts.1={programmer.transport_script}
envie_m7.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg
envie_m7.debug.cortex-debug.custom.request=attach
envie_m7.menu.target_core.cm7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd
envie_m7.menu.target_core.cm4.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM4.svd

envie_m7_thread_debug.name=Arduino Portenta H7 (ThreadDebug)
envie_m7_thread_debug.vid.0=0x2341
envie_m7_thread_debug.pid.0=0x025B
envie_m7_thread_debug.upload_port.0.vid=0x2341
envie_m7_thread_debug.upload_port.0.pid=0x025B
envie_m7_thread_debug.descriptor.0=DebugPort
envie_m7_thread_debug.hide=true
envie_m7_thread_debug.build.board=PORTENTA_H7_M7

##############################################################

portenta_x8.name=Arduino Portenta X8
portenta_x8.build.core=arduino
portenta_x8.build.crossprefix=arm-none-eabi-
portenta_x8.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

portenta_x8.build.variant=PORTENTA_X8
portenta_x8.build.mcu=cortex-m4
portenta_x8.build.fpu=-mfpu=fpv4-sp-d16
portenta_x8.build.float-abi=-mfloat-abi=softfp
portenta_x8.build.extra_flags=
portenta_x8.build.extra_ldflags=-DCM4_BINARY_START=0x08100000 -DCM4_BINARY_END=0x08200000
portenta_x8.build.architecture=cortex-m4
portenta_x8.build.board=PORTENTA_X8
portenta_x8.build.ldscript=linker_script.ld
portenta_x8.compiler.mbed.arch.define=
portenta_x8.compiler.mbed.defines={build.variant.path}/defines.txt
portenta_x8.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
portenta_x8.compiler.mbed.cflags={build.variant.path}/cflags.txt
portenta_x8.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
portenta_x8.compiler.mbed.includes={build.variant.path}/includes.txt
portenta_x8.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
portenta_x8.compiler.mbed="{build.variant.path}/libs/libmbed.a"
portenta_x8.vid.0=0x2341
portenta_x8.pid.0=0x0061
portenta_x8.build.vid=0x2341
portenta_x8.build.pid=0x0061
portenta_x8.upload_port.0.vid=0x2341
portenta_x8.upload_port.0.pid=0x0061

portenta_x8.upload.tool=adb
portenta_x8.upload.tool.default=adb
portenta_x8.upload.vid=0x2341
portenta_x8.upload.pid=0x0061
portenta_x8.upload.protocol=
portenta_x8.upload.transport=
portenta_x8.upload.interface=0
portenta_x8.upload.use_1200bps_touch=false
portenta_x8.upload.wait_for_upload_port=false
portenta_x8.upload.native_usb=true
portenta_x8.upload.maximum_data_size=294248

portenta_x8.debug.tool=gdb
portenta_x8.bootloader.tool=openocd
portenta_x8.bootloader.tool.default=openocd
portenta_x8.bootloader.config=-f target/stm32h7x_dual_bank.cfg
portenta_x8.bootloader.programmer=-f interface/stlink.cfg
portenta_x8.bootloader.extra_action.preflash=stm32h7x option_write 0 0x01c 0xb86aaf0
portenta_x8.bootloader.file=PORTENTA_X7/STM32H747AII6_CM7.elf

##############################################################

nano33ble.name=Arduino Nano 33 BLE
nano33ble.build.core=arduino
nano33ble.build.crossprefix=arm-none-eabi-
nano33ble.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

nano33ble.build.variant=ARDUINO_NANO33BLE
nano33ble.build.mcu=cortex-m4
nano33ble.build.extra_flags=
nano33ble.build.architecture=cortex-m4
nano33ble.build.fpu=-mfpu=fpv4-sp-d16
nano33ble.build.float-abi=-mfloat-abi=softfp
nano33ble.build.board=ARDUINO_NANO33BLE
nano33ble.build.ldscript=linker_script.ld
nano33ble.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840
nano33ble.compiler.mbed.defines={build.variant.path}/defines.txt
nano33ble.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
nano33ble.compiler.mbed.cflags={build.variant.path}/cflags.txt
nano33ble.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
nano33ble.compiler.mbed.includes={build.variant.path}/includes.txt
nano33ble.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
nano33ble.compiler.mbed="{build.variant.path}/libs/libmbed.a" "{build.variant.path}/libs/libcc_310_core.a" "{build.variant.path}/libs/libcc_310_ext.a" "{build.variant.path}/libs/libcc_310_trng.a"
nano33ble.vid.0=0x2341
nano33ble.pid.0=0x005a
nano33ble.vid.1=0x2341
nano33ble.pid.1=0x805a
nano33ble.vid.2=0x2341
nano33ble.pid.2=0x015a
nano33ble.vid.3=0x2341
nano33ble.pid.3=0x025a
nano33ble.upload_port.0.vid=0x2341
nano33ble.upload_port.0.pid=0x005a
nano33ble.upload_port.1.vid=0x2341
nano33ble.upload_port.1.pid=0x805a
nano33ble.upload_port.2.vid=0x2341
nano33ble.upload_port.2.pid=0x015a
nano33ble.upload_port.3.vid=0x2341
nano33ble.upload_port.3.pid=0x025a

nano33ble.upload.tool=bossac
nano33ble.upload.tool.default=bossac
nano33ble.upload.protocol=
nano33ble.upload.transport=
nano33ble.upload.use_1200bps_touch=true
nano33ble.upload.wait_for_upload_port=true
nano33ble.upload.native_usb=true
nano33ble.upload.maximum_size=983040
nano33ble.upload.maximum_data_size=262144

nano33ble.bootloader.tool=openocd
nano33ble.bootloader.tool.default=openocd
nano33ble.bootloader.extra_action.preflash=echo INFO:removed_mass-erase
nano33ble.bootloader.config=-f target/nrf52.cfg
nano33ble.bootloader.programmer=-f interface/cmsis-dap.cfg
nano33ble.bootloader.file=nano33ble/bootloader.hex

nano33ble.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
nano33ble.debug.server.openocd.scripts.1={programmer.transport_script}
nano33ble.debug.server.openocd.scripts.2=target/nrf52.cfg
nano33ble.debug.svd_file={runtime.platform.path}/svd/nrf52840.svd

##############################################################

nanorp2040connect.name=Arduino Nano RP2040 Connect
nanorp2040connect.build.core=arduino
nanorp2040connect.build.crossprefix=arm-none-eabi-
nanorp2040connect.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

nanorp2040connect.build.variant=NANO_RP2040_CONNECT
nanorp2040connect.build.mcu=cortex-m0plus
nanorp2040connect.build.extra_flags=
nanorp2040connect.build.fpu=
nanorp2040connect.build.float-abi=
nanorp2040connect.build.architecture=cortex-m0plus
nanorp2040connect.build.board=NANO_RP2040_CONNECT
nanorp2040connect.build.ldscript=linker_script.ld
nanorp2040connect.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
nanorp2040connect.compiler.mbed.defines={build.variant.path}/defines.txt
nanorp2040connect.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
nanorp2040connect.compiler.mbed.cflags={build.variant.path}/cflags.txt
nanorp2040connect.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
nanorp2040connect.compiler.mbed.includes={build.variant.path}/includes.txt
nanorp2040connect.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
nanorp2040connect.compiler.mbed="{build.variant.path}/libs/libmbed.a"
nanorp2040connect.recipe.hooks.objcopy.postobjcopy.1.pattern="{runtime.tools.rp2040tools.path}/elf2uf2" "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.uf2"
nanorp2040connect.vid.0=0x2341
nanorp2040connect.pid.0=0x005e
nanorp2040connect.vid.1=0x2341
nanorp2040connect.pid.1=0x805e
nanorp2040connect.vid.2=0x2341
nanorp2040connect.pid.2=0x015e
nanorp2040connect.vid.3=0x2341
nanorp2040connect.pid.3=0x025e
nanorp2040connect.upload_port.0.vid=0x2341
nanorp2040connect.upload_port.0.pid=0x005e
nanorp2040connect.upload_port.1.vid=0x2341
nanorp2040connect.upload_port.1.pid=0x805e
nanorp2040connect.upload_port.2.vid=0x2341
nanorp2040connect.upload_port.2.pid=0x015e
nanorp2040connect.upload_port.3.vid=0x2341
nanorp2040connect.upload_port.3.pid=0x025e

nanorp2040connect.upload.tool=picotool
nanorp2040connect.upload.tool.default=picotool
nanorp2040connect.upload.protocol=
nanorp2040connect.upload.transport=
nanorp2040connect.upload.use_1200bps_touch=true
nanorp2040connect.upload.wait_for_upload_port=false
nanorp2040connect.upload.native_usb=true
nanorp2040connect.upload.maximum_size=16777216
nanorp2040connect.upload.maximum_data_size=270336

nanorp2040connect.bootloader.tool=openocd
nanorp2040connect.bootloader.tool.default=openocd
nanorp2040connect.bootloader.config=-f target/rp2040.cfg
nanorp2040connect.bootloader.programmer=-f interface/cmsis-dap.cfg

nanorp2040connect.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
nanorp2040connect.debug.server.openocd.scripts.1={programmer.transport_script}
nanorp2040connect.debug.server.openocd.scripts.2=target/rp2040-core0.cfg
nanorp2040connect.debug.svd_file={runtime.platform.path}/svd/rp2040.svd

##############################################################

pico.name=Raspberry Pi Pico
pico.build.core=arduino
pico.build.crossprefix=arm-none-eabi-
pico.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

pico.build.variant=RASPBERRY_PI_PICO
pico.build.mcu=cortex-m0plus
pico.build.extra_flags=
pico.build.fpu=
pico.build.float-abi=
pico.build.architecture=cortex-m0plus
pico.build.board=RASPBERRY_PI_PICO
pico.build.ldscript=linker_script.ld
pico.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
pico.compiler.mbed.defines={build.variant.path}/defines.txt
pico.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
pico.compiler.mbed.cflags={build.variant.path}/cflags.txt
pico.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
pico.compiler.mbed.includes={build.variant.path}/includes.txt
pico.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
pico.compiler.mbed="{build.variant.path}/libs/libmbed.a"
pico.recipe.hooks.objcopy.postobjcopy.1.pattern="{runtime.tools.rp2040tools.path}/elf2uf2" "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.uf2"
pico.vid.0=0x2e8a
pico.pid.0=0x00C0
pico.upload_port.0.vid=0x2e8a
pico.upload_port.0.pid=0x00C0

pico.upload.tool=picotool
pico.upload.tool.default=picotool
pico.upload.protocol=
pico.upload.transport=
pico.upload.use_1200bps_touch=true
pico.upload.wait_for_upload_port=false
pico.upload.native_usb=true
pico.upload.maximum_size=2097152
pico.upload.maximum_data_size=270336

pico.bootloader.tool=openocd
pico.bootloader.tool.default=openocd
pico.bootloader.config=-f target/rp2040.cfg
pico.bootloader.programmer=-f interface/cmsis-dap.cfg

pico.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
pico.debug.server.openocd.scripts.1={programmer.transport_script}
pico.debug.server.openocd.scripts.2=target/rp2040-core0.cfg
pico.debug.svd_file={runtime.platform.path}/svd/rp2040.svd

##############################################################

nicla_sense.name=Arduino Nicla Sense ME
nicla_sense.build.core=arduino
nicla_sense.build.crossprefix=arm-none-eabi-
nicla_sense.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

nicla_sense.build.variant=NICLA
nicla_sense.build.mcu=cortex-m4
nicla_sense.build.extra_flags=
nicla_sense.build.architecture=cortex-m4
nicla_sense.build.fpu=-mfpu=fpv4-sp-d16
nicla_sense.build.float-abi=-mfloat-abi=softfp
nicla_sense.build.board=NICLA
nicla_sense.build.ldscript=linker_script.ld
nicla_sense.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52832
nicla_sense.compiler.mbed.defines={build.variant.path}/defines.txt
nicla_sense.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
nicla_sense.compiler.mbed.cflags={build.variant.path}/cflags.txt
nicla_sense.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
nicla_sense.compiler.mbed.includes={build.variant.path}/includes.txt
nicla_sense.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
nicla_sense.compiler.mbed="{build.variant.path}/libs/libmbed.a"
nicla_sense.vid.0=0x2341
nicla_sense.pid.0=0x0060
nicla_sense.upload_port.0.vid=0x2341
nicla_sense.upload_port.0.pid=0x0060

nicla_sense.upload.tool=openocd
nicla_sense.upload.tool.default=openocd
nicla_sense.upload.protocol=
nicla_sense.upload.config=-f target/nrf52.cfg
nicla_sense.upload.programmer=-f interface/cmsis-dap.cfg
nicla_sense.upload.transport=-c "transport select swd; adapter speed 1000"
nicla_sense.upload.use_1200bps_touch=false
nicla_sense.upload.wait_for_upload_port=true
nicla_sense.upload.native_usb=true
nicla_sense.upload.maximum_size=527616
nicla_sense.upload.maximum_data_size=64288

nicla_sense.bootloader.tool=openocd
nicla_sense.bootloader.tool.default=openocd
nicla_sense.bootloader.extra_action.preflash=echo INFO:removed_mass-erase
nicla_sense.bootloader.config=-f target/nrf52.cfg
nicla_sense.bootloader.programmer=-f interface/cmsis-dap.cfg
nicla_sense.bootloader.file=NICLA/bootloader.hex

nicla_sense.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
nicla_sense.debug.server.openocd.scripts.1={programmer.transport_script}
nicla_sense.debug.server.openocd.scripts.2=target/nrf52.cfg
nicla_sense.debug.svd_file={runtime.platform.path}/svd/nrf52833.svd

##############################################################

nicla_voice.name=Arduino Nicla Voice
nicla_voice.build.core=arduino
nicla_voice.build.crossprefix=arm-none-eabi-
nicla_voice.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

nicla_voice.build.variant=NICLA
nicla_voice.build.mcu=cortex-m4
nicla_voice.build.extra_flags=
nicla_voice.build.architecture=cortex-m4
nicla_voice.build.fpu=-mfpu=fpv4-sp-d16
nicla_voice.build.float-abi=-mfloat-abi=softfp
nicla_voice.build.board=NICLA
nicla_voice.build.ldscript=linker_script.ld
nicla_voice.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
nicla_voice.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52832
nicla_voice.compiler.mbed.defines={build.variant.path}/defines.txt
nicla_voice.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
nicla_voice.compiler.mbed.cflags={build.variant.path}/cflags.txt
nicla_voice.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
nicla_voice.compiler.mbed.includes={build.variant.path}/includes.txt
nicla_voice.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
nicla_voice.compiler.mbed="{build.variant.path}/libs/libmbed.a"
nicla_voice.vid.0=0x2341
nicla_voice.pid.0=0x0065
nicla_voice.upload_port.0.vid=0x2341
nicla_voice.upload_port.0.pid=0x0065

nicla_voice.upload.tool=openocd
nicla_voice.upload.tool.default=openocd
nicla_voice.upload.protocol=
nicla_voice.upload.config=-f target/nrf52.cfg
nicla_voice.upload.programmer=-f interface/cmsis-dap.cfg
nicla_voice.upload.transport=-c "transport select swd; adapter speed 1000"
nicla_voice.upload.use_1200bps_touch=false
nicla_voice.upload.wait_for_upload_port=true
nicla_voice.upload.native_usb=true
nicla_voice.upload.maximum_size=527616
nicla_voice.upload.maximum_data_size=64288

nicla_voice.bootloader.tool=openocd
nicla_voice.bootloader.tool.default=openocd
nicla_voice.bootloader.extra_action.preflash=echo INFO:removed_mass-erase
nicla_voice.bootloader.config=-f target/nrf52.cfg
nicla_voice.bootloader.programmer=-f interface/cmsis-dap.cfg
nicla_voice.bootloader.file=NICLA_VOICE/bootloader_application.hex

nicla_voice.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
nicla_voice.debug.server.openocd.scripts.1={programmer.transport_script}
nicla_voice.debug.server.openocd.scripts.2=target/nrf52.cfg
nicla_voice.debug.svd_file={runtime.platform.path}/svd/nrf52833.svd

##############################################################

nicla_vision.name=Arduino Nicla Vision
nicla_vision.build.core=arduino
nicla_vision.build.crossprefix=arm-none-eabi-
nicla_vision.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

nicla_vision.menu.target_core.cm7=Main Core
nicla_vision.menu.target_core.cm4=M4 Co-processor

nicla_vision.menu.split.100_0=2MB M7
nicla_vision.menu.split.75_25=1.5MB M7 + 0.5MB M4
nicla_vision.menu.split.50_50=1MB M7 + 1MB M4

nicla_vision.menu.target_core.cm7.build.variant=NICLA_VISION
nicla_vision.menu.target_core.cm7.build.mcu=cortex-m7
nicla_vision.menu.target_core.cm7.build.fpu=-mfpu=fpv5-d16
nicla_vision.menu.target_core.cm7.build.architecture=cortex-m7
nicla_vision.menu.target_core.cm7.compiler.mbed.arch.define=

nicla_vision.menu.target_core.cm4.build.variant=GENERIC_STM32H747_M4
nicla_vision.menu.target_core.cm4.build.mcu=cortex-m4
nicla_vision.menu.target_core.cm4.build.fpu=-mfpu=fpv4-sp-d16
nicla_vision.menu.target_core.cm4.build.architecture=cortex-m4
nicla_vision.menu.target_core.cm4.compiler.mbed.arch.define=-DNVISION_PINS

nicla_vision.menu.split.50_50.build.extra_ldflags=-DCM4_BINARY_START=0x08100000 -DCM4_BINARY_END=0x08200000
nicla_vision.menu.split.75_25.build.extra_ldflags=-DCM4_BINARY_START=0x08180000 -DCM4_BINARY_END=0x08200000
nicla_vision.menu.split.100_0.build.extra_ldflags=-DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000
nicla_vision.build.board={build.variant}

nicla_vision.build.float-abi=-mfloat-abi=softfp
nicla_vision.build.extra_flags=
nicla_vision.build.ldscript=linker_script.ld
nicla_vision.compiler.mbed.defines={build.variant.path}/defines.txt
nicla_vision.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
nicla_vision.compiler.mbed.cflags={build.variant.path}/cflags.txt
nicla_vision.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
nicla_vision.compiler.mbed.includes={build.variant.path}/../NICLA_VISION/includes.txt
nicla_vision.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
nicla_vision.compiler.mbed="{build.variant.path}/libs/libmbed.a"
nicla_vision.vid.0=0x2341
nicla_vision.pid.0=0x025f
nicla_vision.vid.1=0x2341
nicla_vision.pid.1=0x035f
nicla_vision.vid.2=0x2341
nicla_vision.pid.2=0x045f
nicla_vision.vid.3=0x2341
nicla_vision.pid.3=0x055f
nicla_vision.upload_port.0.vid=0x2341
nicla_vision.upload_port.0.pid=0x025f
nicla_vision.upload_port.1.vid=0x2341
nicla_vision.upload_port.1.pid=0x035f
nicla_vision.upload_port.2.vid=0x2341
nicla_vision.upload_port.2.pid=0x045f
nicla_vision.upload_port.3.vid=0x2341
nicla_vision.upload_port.3.pid=0x055f

nicla_vision.upload.tool=dfu-util
nicla_vision.upload.tool.default=dfu-util
nicla_vision.upload.protocol=
nicla_vision.upload.transport=
nicla_vision.upload.vid=0x2341
nicla_vision.upload.pid=0x035f
nicla_vision.upload.interface=0
nicla_vision.upload.use_1200bps_touch=true
nicla_vision.upload.wait_for_upload_port=true
nicla_vision.upload.native_usb=true
nicla_vision.upload.maximum_size=1966080
nicla_vision.upload.maximum_data_size=523624

nicla_vision.menu.target_core.cm7.upload.address=0x08040000

nicla_vision.menu.target_core.cm7.menu.split.50_50.upload.maximum_size=786432
nicla_vision.menu.target_core.cm7.menu.split.75_25.upload.maximum_size=1441792
nicla_vision.menu.target_core.cm7.menu.split.100_0.upload.maximum_size=1966080
nicla_vision.menu.target_core.cm7.upload.maximum_data_size=523624

nicla_vision.menu.split.50_50.upload.address_m4=0x08100000
nicla_vision.menu.split.75_25.upload.address_m4=0x08180000
#make loading the M4 in this way fail - the user needs to provide a file via mass storage or similar interfaces
nicla_vision.menu.split.100_0.upload.address_m4=
nicla_vision.menu.target_core.cm4.upload.address={upload.address_m4}
nicla_vision.menu.target_core.cm4.menu.split.50_50.upload.maximum_size=1048576
nicla_vision.menu.target_core.cm4.menu.split.75_25.upload.maximum_size=524288
nicla_vision.menu.target_core.cm4.menu.split.100_0.upload.maximum_size=524288
nicla_vision.menu.target_core.cm4.upload.maximum_data_size=294248

nicla_vision.debug.tool=gdb
nicla_vision.bootloader.tool=openocd
nicla_vision.bootloader.tool.default=openocd
nicla_vision.bootloader.config=-f target/stm32h7x_dual_bank.cfg
nicla_vision.bootloader.programmer=-f interface/stlink.cfg
nicla_vision.bootloader.extra_action.preflash=stm32h7x option_write 0 0x01c 0xb86aaf0
nicla_vision.bootloader.file=NICLA_VISION/bootloader.hex

nicla_vision.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
nicla_vision.debug.server.openocd.scripts.1={programmer.transport_script}
nicla_vision.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg
nicla_vision.debug.cortex-debug.custom.request=attach
nicla_vision.menu.target_core.cm7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd
nicla_vision.menu.target_core.cm4.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM4.svd

##############################################################

opta.name=Opta
opta.build.core=arduino
opta.build.crossprefix=arm-none-eabi-
opta.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

opta.menu.target_core.cm7=Main Core
opta.menu.target_core.cm4=M4 Co-processor

opta.menu.split.100_0=2MB M7
opta.menu.split.75_25=1.5MB M7 + 0.5MB M4
opta.menu.split.50_50=1MB M7 + 1MB M4

opta.menu.security.none=None
opta.menu.security.sien=Signature + Encryption

opta.menu.target_core.cm7.build.variant=OPTA
opta.menu.target_core.cm7.build.mcu=cortex-m7
opta.menu.target_core.cm7.build.fpu=-mfpu=fpv5-d16
opta.menu.target_core.cm7.build.architecture=cortex-m7
opta.menu.target_core.cm7.compiler.mbed.arch.define=

opta.menu.target_core.cm4.build.variant=GENERIC_STM32H747_M4
opta.menu.target_core.cm4.build.mcu=cortex-m4
opta.menu.target_core.cm4.build.fpu=-mfpu=fpv4-sp-d16
opta.menu.target_core.cm4.build.architecture=cortex-m4
opta.menu.target_core.cm4.compiler.mbed.arch.define=-DOPTA_PINS

opta.build.float-abi=-mfloat-abi=softfp
opta.build.extra_flags=
opta.menu.split.50_50.build.extra_ldflags=-DCM4_BINARY_START=0x08100000 -DCM4_BINARY_END=0x08200000
opta.menu.split.75_25.build.extra_ldflags=-DCM4_BINARY_START=0x08180000 -DCM4_BINARY_END=0x08200000
opta.menu.split.100_0.build.extra_ldflags=-DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000

opta.build.board={build.variant}
opta.build.ldscript=linker_script.ld
opta.compiler.mbed.arch.define=
opta.build.slot_size=0x1E0000
opta.build.header_size=0x20000
opta.build.alignment=32
opta.build.version=1.2.3+4
opta.menu.security.sien.recipe.hooks.objcopy.postobjcopy.1.pattern="{tools.imgtool.path}/{tools.imgtool.cmd}" {tools.imgtool.flags}
opta.menu.security.sien.build.keys.keychain={runtime.platform.path}/libraries/MCUboot/default_keys
opta.menu.security.sien.build.keys.sign_key=ecdsa-p256-signing-priv-key.pem
opta.menu.security.sien.build.keys.encrypt_key=ecdsa-p256-encrypt-pub-key.pem
opta.compiler.mbed.defines={build.variant.path}/defines.txt
opta.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
opta.compiler.mbed.cflags={build.variant.path}/cflags.txt
opta.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
opta.compiler.mbed.includes={build.variant.path}/../OPTA/includes.txt
opta.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
opta.compiler.mbed="{build.variant.path}/libs/libmbed.a"
opta.vid.0=0x2341
opta.pid.0=0x0064
opta.vid.1=0x2341
opta.pid.1=0x0164
opta.vid.2=0x2341
opta.pid.2=0x0264
opta.vid.3=0x2341
opta.pid.3=0x0364
opta.vid.4=0x35d1
opta.pid.4=0x0064
opta.vid.5=0x35d1
opta.pid.5=0x0164
opta.vid.6=0x35d1
opta.pid.6=0x0264
opta.vid.7=0x35d1
opta.pid.7=0x0364
opta.upload_port.0.vid=0x2341
opta.upload_port.0.pid=0x0064
opta.upload_port.1.vid=0x2341
opta.upload_port.1.pid=0x0164
opta.upload_port.2.vid=0x2341
opta.upload_port.2.pid=0x0264
opta.upload_port.3.vid=0x2341
opta.upload_port.3.pid=0x0364
opta.upload_port.4.vid=0x35d1
opta.upload_port.4.pid=0x0064
opta.upload_port.5.vid=0x35d1
opta.upload_port.5.pid=0x0164
opta.upload_port.6.vid=0x35d1
opta.upload_port.6.pid=0x0264
opta.upload_port.7.vid=0x35d1
opta.upload_port.7.pid=0x0364

opta.upload.tool=dfu-util
opta.upload.tool.default=dfu-util
opta.upload.protocol=
opta.upload.transport=
opta.upload.vid=0x2341
opta.upload.pid=0x0364
opta.upload.address=0x08040000
opta.upload.interface=0
opta.upload.use_1200bps_touch=true
opta.upload.wait_for_upload_port=true
opta.upload.native_usb=true
opta.upload.maximum_size=1966080
opta.upload.maximum_data_size=523624

opta.menu.security.none.upload.interface=0
opta.menu.security.sien.upload.interface=2

opta.menu.security.none.upload.address_m7=0x08040000
opta.menu.security.sien.upload.address_m7=0xA0000000
opta.menu.target_core.cm7.upload.address={upload.address_m7}

opta.menu.target_core.cm7.menu.split.50_50.upload.maximum_size=786432
opta.menu.target_core.cm7.menu.split.75_25.upload.maximum_size=1441792
opta.menu.target_core.cm7.menu.split.100_0.upload.maximum_size=1966080
opta.menu.target_core.cm7.upload.maximum_data_size=523624

opta.menu.split.50_50.upload.address_m4=0x08100000
opta.menu.split.75_25.upload.address_m4=0x08180000
#make loading the M4 in this way fail - the user needs to provide a file via mass storage or similar interfaces
opta.menu.split.100_0.upload.address_m4=
opta.menu.target_core.cm4.upload.address={upload.address_m4}
opta.menu.target_core.cm4.menu.split.50_50.upload.maximum_size=1048576
opta.menu.target_core.cm4.menu.split.75_25.upload.maximum_size=524288
opta.menu.target_core.cm4.menu.split.100_0.upload.maximum_size=524288
opta.menu.target_core.cm4.upload.maximum_data_size=294248

opta.debug.tool=gdb
opta.bootloader.tool=openocd
opta.bootloader.tool.default=openocd
opta.bootloader.config=-f target/stm32h7x_dual_bank.cfg
opta.bootloader.programmer=-f interface/stlink.cfg
opta.bootloader.extra_action.preflash=stm32h7x option_write 0 0x01c 0xb86aaf0
opta.bootloader.file=OPTA/bootloader.hex

opta.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
opta.debug.server.openocd.scripts.1={programmer.transport_script}
opta.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg
opta.debug.cortex-debug.custom.request=attach
opta.menu.target_core.cm7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd
opta.menu.target_core.cm4.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM4.svd

##############################################################

giga.name=Arduino Giga R1
giga.build.core=arduino
giga.build.crossprefix=arm-none-eabi-
giga.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

giga.menu.target_core.cm7=Main Core
giga.menu.target_core.cm4=M4 Co-processor

giga.menu.split.100_0=2MB M7 + M4 in SDRAM
giga.menu.split.75_25=1.5MB M7 + 0.5MB M4
giga.menu.split.50_50=1MB M7 + 1MB M4

giga.menu.target_core.cm7.build.variant=GIGA
giga.menu.target_core.cm7.build.mcu=cortex-m7
giga.menu.target_core.cm7.build.fpu=-mfpu=fpv5-d16
giga.menu.target_core.cm7.build.architecture=cortex-m7
giga.menu.target_core.cm7.compiler.mbed.arch.define=

giga.menu.target_core.cm4.build.variant=GENERIC_STM32H747_M4
giga.menu.target_core.cm4.build.mcu=cortex-m4
giga.menu.target_core.cm4.build.fpu=-mfpu=fpv4-sp-d16
giga.menu.target_core.cm4.build.architecture=cortex-m4
giga.menu.target_core.cm4.compiler.mbed.arch.define=-DGIGA_PINS

giga.menu.split.50_50.build.extra_ldflags=-DCM4_BINARY_START=0x08100000 -DCM4_BINARY_END=0x08200000
giga.menu.split.75_25.build.extra_ldflags=-DCM4_BINARY_START=0x08180000 -DCM4_BINARY_END=0x08200000
giga.menu.split.100_0.build.extra_ldflags=-DCM4_BINARY_START=0x60000000 -DCM4_BINARY_END=0x60040000 -DCM4_RAM_END=0x60080000
giga.build.board={build.variant}

giga.build.float-abi=-mfloat-abi=softfp
giga.build.extra_flags=
giga.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
giga.build.architecture=cortex-m7
giga.build.board=GIGA
giga.build.ldscript=linker_script.ld
giga.build.extra_ldflags=-DCM4_BINARY_START=0x08180000
giga.compiler.mbed.arch.define=
giga.compiler.mbed.defines={build.variant.path}/defines.txt
giga.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
giga.compiler.mbed.cflags={build.variant.path}/cflags.txt
giga.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
giga.compiler.mbed.includes={build.variant.path}/../GIGA/includes.txt
giga.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
giga.compiler.mbed="{build.variant.path}/libs/libmbed.a"
giga.vid.0=0x2341
giga.pid.0=0x0266
giga.vid.1=0x2341
giga.pid.1=0x0366
giga.vid.2=0x2341
giga.pid.2=0x0466
giga.upload_port.0.vid=0x2341
giga.upload_port.0.pid=0x0266
giga.upload_port.1.vid=0x2341
giga.upload_port.1.pid=0x0366
giga.upload_port.2.vid=0x2341
giga.upload_port.2.pid=0x0466

giga.upload.tool=dfu-util
giga.upload.tool.default=dfu-util
giga.upload.protocol=
giga.upload.transport=
giga.upload.vid=0x2341
giga.upload.pid=0x0366
giga.upload.interface=0
giga.upload.use_1200bps_touch=true
giga.upload.wait_for_upload_port=true
giga.upload.native_usb=true
giga.upload.maximum_size=1966080
giga.upload.maximum_data_size=523624

giga.menu.target_core.cm7.upload.address=0x08040000

giga.menu.target_core.cm7.menu.split.50_50.upload.maximum_size=786432
giga.menu.target_core.cm7.menu.split.75_25.upload.maximum_size=1441792
giga.menu.target_core.cm7.menu.split.100_0.upload.maximum_size=1966080
giga.menu.target_core.cm7.upload.maximum_data_size=523624

giga.menu.split.50_50.upload.address_m4=0x08100000
giga.menu.split.75_25.upload.address_m4=0x08180000
#make loading the M4 in this way fail - the user needs to provide a file via mass storage or similar interfaces
giga.menu.split.100_0.upload.address_m4=
giga.menu.target_core.cm4.upload.address={upload.address_m4}
giga.menu.target_core.cm4.menu.split.50_50.upload.maximum_size=1048576
giga.menu.target_core.cm4.menu.split.75_25.upload.maximum_size=524288
giga.menu.target_core.cm4.menu.split.100_0.upload.maximum_size=524288
giga.menu.target_core.cm4.upload.maximum_data_size=294248

giga.debug.tool=gdb
giga.bootloader.tool=openocd
giga.bootloader.tool.default=openocd
giga.bootloader.config=-f target/stm32h7x_dual_bank.cfg
giga.bootloader.programmer=-f interface/stlink.cfg
giga.bootloader.extra_action.preflash=stm32h7x option_write 0 0x01c 0xb86aaf0
giga.bootloader.file=GIGA/bootloader.hex

giga.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
giga.debug.server.openocd.scripts.1={programmer.transport_script}
giga.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg
giga.debug.cortex-debug.custom.request=attach
giga.menu.target_core.cm7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd
giga.menu.target_core.cm4.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM4.svd