diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index c5641756..d0f8c808 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -62,4 +62,4 @@ jobs: arduino-cli lib install "Adafruit NeoPixel" "Adafruit seesaw Library" "Adafruit SPIFlash" "FlashStorage" "MIDI Library" "SD" "SdFat - Adafruit Fork" - name: Build examples - run: python3 extras/build_all.py ${{ matrix.board }} + run: python3 tools/build_all.py ${{ matrix.board }} diff --git a/boards.txt b/boards.txt index 95fd51ea..0d7911a6 100644 --- a/boards.txt +++ b/boards.txt @@ -52,7 +52,7 @@ adafruit_feather_m0.build.board=SAMD_ZERO adafruit_feather_m0.build.core=arduino adafruit_feather_m0.build.extra_flags=-D__SAMD21G18A__ -DADAFRUIT_FEATHER_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_feather_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_feather_m0.build.openocdscript=openocd_scripts/feather_m0.cfg +adafruit_feather_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_feather_m0.build.variant=feather_m0 adafruit_feather_m0.build.variant_system_lib= adafruit_feather_m0.build.vid=0x239A @@ -60,7 +60,7 @@ adafruit_feather_m0.build.pid=0x800B adafruit_feather_m0.bootloader.tool=openocd adafruit_feather_m0.bootloader.file=featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_feather_m0.menu.opt.small=Small (-Os) (standard) adafruit_feather_m0.menu.opt.small.build.flags.optimize=-Os adafruit_feather_m0.menu.opt.fast=Fast (-O2) @@ -71,9 +71,13 @@ adafruit_feather_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_feather_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_feather_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_feather_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_feather_m0.menu.usbstack.arduino=Arduino adafruit_feather_m0.menu.usbstack.tinyusb=TinyUSB adafruit_feather_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_feather_m0.menu.debug.off=Off adafruit_feather_m0.menu.debug.on=On adafruit_feather_m0.menu.debug.on.build.flags.debug=-g @@ -108,7 +112,7 @@ adafruit_feather_m0_express.build.board=SAMD_FEATHER_M0_EXPRESS adafruit_feather_m0_express.build.core=arduino adafruit_feather_m0_express.build.extra_flags=-D__SAMD21G18A__ -DARDUINO_SAMD_FEATHER_M0 -DADAFRUIT_FEATHER_M0_EXPRESS -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_feather_m0_express.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_feather_m0_express.build.openocdscript=openocd_scripts/feather_m0_express.cfg +adafruit_feather_m0_express.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_feather_m0_express.build.variant=feather_m0_express adafruit_feather_m0_express.build.variant_system_lib= adafruit_feather_m0_express.build.vid=0x239A @@ -116,7 +120,7 @@ adafruit_feather_m0_express.build.pid=0x801B adafruit_feather_m0_express.bootloader.tool=openocd adafruit_feather_m0_express.bootloader.file=featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_feather_m0_express.menu.opt.small=Small (-Os) (standard) adafruit_feather_m0_express.menu.opt.small.build.flags.optimize=-Os adafruit_feather_m0_express.menu.opt.fast=Fast (-O2) @@ -127,9 +131,13 @@ adafruit_feather_m0_express.menu.opt.fastest=Fastest (-Ofast) adafruit_feather_m0_express.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_feather_m0_express.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_feather_m0_express.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_feather_m0_express.menu.usbstack.arduino=Arduino adafruit_feather_m0_express.menu.usbstack.tinyusb=TinyUSB adafruit_feather_m0_express.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_feather_m0_express.menu.debug.off=Off adafruit_feather_m0_express.menu.debug.on=On adafruit_feather_m0_express.menu.debug.on.build.flags.debug=-g @@ -164,7 +172,7 @@ adafruit_metro_m0.build.board=SAMD_ZERO adafruit_metro_m0.build.core=arduino adafruit_metro_m0.build.extra_flags=-D__SAMD21G18A__ -DADAFRUIT_METRO_M0_EXPRESS -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_metro_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_metro_m0.build.openocdscript=openocd_scripts/metro_m0.cfg +adafruit_metro_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_metro_m0.build.variant=metro_m0 adafruit_metro_m0.build.variant_system_lib= adafruit_metro_m0.build.vid=0x239A @@ -172,7 +180,7 @@ adafruit_metro_m0.build.pid=0x8013 adafruit_metro_m0.bootloader.tool=openocd adafruit_metro_m0.bootloader.file=metroM0/bootloader-metro_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_metro_m0.menu.opt.small=Small (-Os) (standard) adafruit_metro_m0.menu.opt.small.build.flags.optimize=-Os adafruit_metro_m0.menu.opt.fast=Fast (-O2) @@ -183,9 +191,13 @@ adafruit_metro_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_metro_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_metro_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_metro_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_metro_m0.menu.usbstack.arduino=Arduino adafruit_metro_m0.menu.usbstack.tinyusb=TinyUSB adafruit_metro_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_metro_m0.menu.debug.off=Off adafruit_metro_m0.menu.debug.on=On adafruit_metro_m0.menu.debug.on.build.flags.debug=-g @@ -220,7 +232,7 @@ adafruit_circuitplayground_m0.build.board=SAMD_CIRCUITPLAYGROUND_EXPRESS adafruit_circuitplayground_m0.build.core=arduino adafruit_circuitplayground_m0.build.extra_flags=-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_CIRCUITPLAYGROUND_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_circuitplayground_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_circuitplayground_m0.build.openocdscript=openocd_scripts/circuitplay.cfg +adafruit_circuitplayground_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_circuitplayground_m0.build.variant=circuitplay adafruit_circuitplayground_m0.build.variant_system_lib= adafruit_circuitplayground_m0.build.vid=0x239A @@ -228,7 +240,7 @@ adafruit_circuitplayground_m0.build.pid=0x8018 adafruit_circuitplayground_m0.bootloader.tool=openocd adafruit_circuitplayground_m0.bootloader.file=circuitplayM0/bootloader-circuitplay_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_circuitplayground_m0.menu.opt.small=Small (-Os) (standard) adafruit_circuitplayground_m0.menu.opt.small.build.flags.optimize=-Os adafruit_circuitplayground_m0.menu.opt.fast=Fast (-O2) @@ -239,9 +251,13 @@ adafruit_circuitplayground_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_circuitplayground_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_circuitplayground_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_circuitplayground_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_circuitplayground_m0.menu.usbstack.arduino=Arduino adafruit_circuitplayground_m0.menu.usbstack.tinyusb=TinyUSB adafruit_circuitplayground_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_circuitplayground_m0.menu.debug.off=Off adafruit_circuitplayground_m0.menu.debug.on=On adafruit_circuitplayground_m0.menu.debug.on.build.flags.debug=-g @@ -276,7 +292,7 @@ adafruit_gemma_m0.build.board=GEMMA_M0 adafruit_gemma_m0.build.core=arduino adafruit_gemma_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_GEMMA_M0 -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_gemma_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_gemma_m0.build.openocdscript=openocd_scripts/gemma_m0.cfg +adafruit_gemma_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_gemma_m0.build.variant=gemma_m0 adafruit_gemma_m0.build.variant_system_lib= adafruit_gemma_m0.build.vid=0x239A @@ -284,7 +300,7 @@ adafruit_gemma_m0.build.pid=0x801C adafruit_gemma_m0.bootloader.tool=openocd adafruit_gemma_m0.bootloader.file=gemmaM0/bootloader-gemma_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_gemma_m0.menu.opt.small=Small (-Os) (standard) adafruit_gemma_m0.menu.opt.small.build.flags.optimize=-Os adafruit_gemma_m0.menu.opt.fast=Fast (-O2) @@ -295,9 +311,13 @@ adafruit_gemma_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_gemma_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_gemma_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_gemma_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_gemma_m0.menu.usbstack.arduino=Arduino adafruit_gemma_m0.menu.usbstack.tinyusb=TinyUSB adafruit_gemma_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_gemma_m0.menu.debug.off=Off adafruit_gemma_m0.menu.debug.on=On adafruit_gemma_m0.menu.debug.on.build.flags.debug=-g @@ -332,7 +352,7 @@ adafruit_trinket_m0.build.board=TRINKET_M0 adafruit_trinket_m0.build.core=arduino adafruit_trinket_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_TRINKET_M0 -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_trinket_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_trinket_m0.build.openocdscript=openocd_scripts/trinket_m0.cfg +adafruit_trinket_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_trinket_m0.build.variant=trinket_m0 adafruit_trinket_m0.build.variant_system_lib= adafruit_trinket_m0.build.vid=0x239A @@ -340,7 +360,7 @@ adafruit_trinket_m0.build.pid=0x801E adafruit_trinket_m0.bootloader.tool=openocd adafruit_trinket_m0.bootloader.file=trinketm0/bootloader-trinket_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_trinket_m0.menu.opt.small=Small (-Os) (standard) adafruit_trinket_m0.menu.opt.small.build.flags.optimize=-Os adafruit_trinket_m0.menu.opt.fast=Fast (-O2) @@ -351,9 +371,13 @@ adafruit_trinket_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_trinket_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_trinket_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_trinket_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_trinket_m0.menu.usbstack.arduino=Arduino adafruit_trinket_m0.menu.usbstack.tinyusb=TinyUSB adafruit_trinket_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_trinket_m0.menu.debug.off=Off adafruit_trinket_m0.menu.debug.on=On adafruit_trinket_m0.menu.debug.on.build.flags.debug=-g @@ -390,7 +414,7 @@ adafruit_qtpy_m0.build.board=QTPY_M0 adafruit_qtpy_m0.build.core=arduino adafruit_qtpy_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_QTPY_M0 -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_qtpy_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_qtpy_m0.build.openocdscript=openocd_scripts/qtpy_m0.cfg +adafruit_qtpy_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_qtpy_m0.build.variant=qtpy_m0 adafruit_qtpy_m0.build.variant_system_lib= adafruit_qtpy_m0.build.vid=0x239A @@ -398,7 +422,7 @@ adafruit_qtpy_m0.build.pid=0x80CB adafruit_qtpy_m0.bootloader.tool=openocd adafruit_qtpy_m0.bootloader.file=qtpyM0/bootloader-qtpy_m0.bin -# Menu +# Menu: Optimization adafruit_qtpy_m0.menu.opt.small=Small (-Os) (standard) adafruit_qtpy_m0.menu.opt.small.build.flags.optimize=-Os adafruit_qtpy_m0.menu.opt.fast=Fast (-O2) @@ -409,9 +433,13 @@ adafruit_qtpy_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_qtpy_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_qtpy_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_qtpy_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_qtpy_m0.menu.usbstack.arduino=Arduino adafruit_qtpy_m0.menu.usbstack.tinyusb=TinyUSB adafruit_qtpy_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_qtpy_m0.menu.debug.off=Off adafruit_qtpy_m0.menu.debug.on=On adafruit_qtpy_m0.menu.debug.on.build.flags.debug=-g @@ -448,7 +476,7 @@ adafruit_neotrinkey_m0.build.board=NEOTRINKEY_M0 adafruit_neotrinkey_m0.build.core=arduino adafruit_neotrinkey_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_NEOTRINKEY_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_neotrinkey_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_neotrinkey_m0.build.openocdscript=openocd_scripts/neotrinkey_m0.cfg +adafruit_neotrinkey_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_neotrinkey_m0.build.variant=neotrinkey_m0 adafruit_neotrinkey_m0.build.variant_system_lib= adafruit_neotrinkey_m0.build.vid=0x239A @@ -456,7 +484,7 @@ adafruit_neotrinkey_m0.build.pid=0x80EF adafruit_neotrinkey_m0.bootloader.tool=openocd adafruit_neotrinkey_m0.bootloader.file=neotrinkey_m0/bootloader-neotrinkey_m0.bin -# Menu +# Menu: Optimization adafruit_neotrinkey_m0.menu.opt.small=Small (-Os) (standard) adafruit_neotrinkey_m0.menu.opt.small.build.flags.optimize=-Os adafruit_neotrinkey_m0.menu.opt.fast=Fast (-O2) @@ -467,9 +495,13 @@ adafruit_neotrinkey_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_neotrinkey_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_neotrinkey_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_neotrinkey_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_neotrinkey_m0.menu.usbstack.arduino=Arduino adafruit_neotrinkey_m0.menu.usbstack.tinyusb=TinyUSB adafruit_neotrinkey_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_neotrinkey_m0.menu.debug.off=Off adafruit_neotrinkey_m0.menu.debug.on=On adafruit_neotrinkey_m0.menu.debug.on.build.flags.debug=-g @@ -506,7 +538,7 @@ adafruit_rotarytrinkey_m0.build.board=ROTARYTRINKEY_M0 adafruit_rotarytrinkey_m0.build.core=arduino adafruit_rotarytrinkey_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_ROTARYTRINKEY_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_rotarytrinkey_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_rotarytrinkey_m0.build.openocdscript=openocd_scripts/rotarytrinkey_m0.cfg +adafruit_rotarytrinkey_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_rotarytrinkey_m0.build.variant=rotarytrinkey_m0 adafruit_rotarytrinkey_m0.build.variant_system_lib= adafruit_rotarytrinkey_m0.build.vid=0x239A @@ -514,7 +546,7 @@ adafruit_rotarytrinkey_m0.build.pid=0x80FB adafruit_rotarytrinkey_m0.bootloader.tool=openocd adafruit_rotarytrinkey_m0.bootloader.file=rotarytrinkey_m0/bootloader-rotarytrinkey_m0.bin -# Menu +# Menu: Optimization adafruit_rotarytrinkey_m0.menu.opt.small=Small (-Os) (standard) adafruit_rotarytrinkey_m0.menu.opt.small.build.flags.optimize=-Os adafruit_rotarytrinkey_m0.menu.opt.fast=Fast (-O2) @@ -525,9 +557,13 @@ adafruit_rotarytrinkey_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_rotarytrinkey_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_rotarytrinkey_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_rotarytrinkey_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_rotarytrinkey_m0.menu.usbstack.arduino=Arduino adafruit_rotarytrinkey_m0.menu.usbstack.tinyusb=TinyUSB adafruit_rotarytrinkey_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_rotarytrinkey_m0.menu.debug.off=Off adafruit_rotarytrinkey_m0.menu.debug.on=On adafruit_rotarytrinkey_m0.menu.debug.on.build.flags.debug=-g @@ -564,7 +600,7 @@ adafruit_neokeytrinkey_m0.build.board=NEOKEYTRINKEY_M0 adafruit_neokeytrinkey_m0.build.core=arduino adafruit_neokeytrinkey_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_NEOKEYTRINKEY_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_neokeytrinkey_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_neokeytrinkey_m0.build.openocdscript=openocd_scripts/neokeytrinkey_m0.cfg +adafruit_neokeytrinkey_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_neokeytrinkey_m0.build.variant=neokeytrinkey_m0 adafruit_neokeytrinkey_m0.build.variant_system_lib= adafruit_neokeytrinkey_m0.build.vid=0x239A @@ -572,7 +608,7 @@ adafruit_neokeytrinkey_m0.build.pid=0x80FF adafruit_neokeytrinkey_m0.bootloader.tool=openocd adafruit_neokeytrinkey_m0.bootloader.file=neokeytrinkey_m0/bootloader-neokeytrinkey_m0.bin -# Menu +# Menu: Optimization adafruit_neokeytrinkey_m0.menu.opt.small=Small (-Os) (standard) adafruit_neokeytrinkey_m0.menu.opt.small.build.flags.optimize=-Os adafruit_neokeytrinkey_m0.menu.opt.fast=Fast (-O2) @@ -583,9 +619,13 @@ adafruit_neokeytrinkey_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_neokeytrinkey_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_neokeytrinkey_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_neokeytrinkey_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_neokeytrinkey_m0.menu.usbstack.arduino=Arduino adafruit_neokeytrinkey_m0.menu.usbstack.tinyusb=TinyUSB adafruit_neokeytrinkey_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_neokeytrinkey_m0.menu.debug.off=Off adafruit_neokeytrinkey_m0.menu.debug.on=On adafruit_neokeytrinkey_m0.menu.debug.on.build.flags.debug=-g @@ -622,7 +662,7 @@ adafruit_slidetrinkey_m0.build.board=SLIDETRINKEY_M0 adafruit_slidetrinkey_m0.build.core=arduino adafruit_slidetrinkey_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_SLIDETRINKEY_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_slidetrinkey_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_slidetrinkey_m0.build.openocdscript=openocd_scripts/slidetrinkey_m0.cfg +adafruit_slidetrinkey_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_slidetrinkey_m0.build.variant=slidetrinkey_m0 adafruit_slidetrinkey_m0.build.variant_system_lib= adafruit_slidetrinkey_m0.build.vid=0x239A @@ -630,7 +670,7 @@ adafruit_slidetrinkey_m0.build.pid=0x8101 adafruit_slidetrinkey_m0.bootloader.tool=openocd adafruit_slidetrinkey_m0.bootloader.file=slidetrinkey_m0/bootloader-slidetrinkey_m0.bin -# Menu +# Menu: Optimization adafruit_slidetrinkey_m0.menu.opt.small=Small (-Os) (standard) adafruit_slidetrinkey_m0.menu.opt.small.build.flags.optimize=-Os adafruit_slidetrinkey_m0.menu.opt.fast=Fast (-O2) @@ -641,9 +681,13 @@ adafruit_slidetrinkey_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_slidetrinkey_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_slidetrinkey_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_slidetrinkey_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_slidetrinkey_m0.menu.usbstack.arduino=Arduino adafruit_slidetrinkey_m0.menu.usbstack.tinyusb=TinyUSB adafruit_slidetrinkey_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_slidetrinkey_m0.menu.debug.off=Off adafruit_slidetrinkey_m0.menu.debug.on=On adafruit_slidetrinkey_m0.menu.debug.on.build.flags.debug=-g @@ -680,7 +724,7 @@ adafruit_proxlighttrinkey_m0.build.board=PROXLIGHTTRINKEY_M0 adafruit_proxlighttrinkey_m0.build.core=arduino adafruit_proxlighttrinkey_m0.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_PROXLIGHTTRINKEY_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_proxlighttrinkey_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_proxlighttrinkey_m0.build.openocdscript=openocd_scripts/proxlighttrinkey_m0.cfg +adafruit_proxlighttrinkey_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_proxlighttrinkey_m0.build.variant=proxlighttrinkey_m0 adafruit_proxlighttrinkey_m0.build.variant_system_lib= adafruit_proxlighttrinkey_m0.build.vid=0x239A @@ -688,7 +732,7 @@ adafruit_proxlighttrinkey_m0.build.pid=0x8103 adafruit_proxlighttrinkey_m0.bootloader.tool=openocd adafruit_proxlighttrinkey_m0.bootloader.file=proxlighttrinkey_m0/bootloader-proxlighttrinkey_m0.bin -# Menu +# Menu: Optimization adafruit_proxlighttrinkey_m0.menu.opt.small=Small (-Os) (standard) adafruit_proxlighttrinkey_m0.menu.opt.small.build.flags.optimize=-Os adafruit_proxlighttrinkey_m0.menu.opt.fast=Fast (-O2) @@ -699,9 +743,13 @@ adafruit_proxlighttrinkey_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_proxlighttrinkey_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_proxlighttrinkey_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_proxlighttrinkey_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_proxlighttrinkey_m0.menu.usbstack.arduino=Arduino adafruit_proxlighttrinkey_m0.menu.usbstack.tinyusb=TinyUSB adafruit_proxlighttrinkey_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_proxlighttrinkey_m0.menu.debug.off=Off adafruit_proxlighttrinkey_m0.menu.debug.on=On adafruit_proxlighttrinkey_m0.menu.debug.on.build.flags.debug=-g @@ -738,7 +786,7 @@ adafruit_itsybitsy_m0.build.board=ITSYBITSY_M0 adafruit_itsybitsy_m0.build.core=arduino adafruit_itsybitsy_m0.build.extra_flags=-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_ITSYBITSY_M0 -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_itsybitsy_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_itsybitsy_m0.build.openocdscript=openocd_scripts/itsybitsy_m0.cfg +adafruit_itsybitsy_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_itsybitsy_m0.build.variant=itsybitsy_m0 adafruit_itsybitsy_m0.build.variant_system_lib= adafruit_itsybitsy_m0.build.vid=0x239A @@ -746,7 +794,7 @@ adafruit_itsybitsy_m0.build.pid=0x800F adafruit_itsybitsy_m0.bootloader.tool=openocd adafruit_itsybitsy_m0.bootloader.file=itsybitsyM0/bootloader-itsybitsy_m0-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_itsybitsy_m0.menu.opt.small=Small (-Os) (standard) adafruit_itsybitsy_m0.menu.opt.small.build.flags.optimize=-Os adafruit_itsybitsy_m0.menu.opt.fast=Fast (-O2) @@ -757,9 +805,13 @@ adafruit_itsybitsy_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_itsybitsy_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_itsybitsy_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_itsybitsy_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_itsybitsy_m0.menu.usbstack.arduino=Arduino adafruit_itsybitsy_m0.menu.usbstack.tinyusb=TinyUSB adafruit_itsybitsy_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_itsybitsy_m0.menu.debug.off=Off adafruit_itsybitsy_m0.menu.debug.on=On adafruit_itsybitsy_m0.menu.debug.on.build.flags.debug=-g @@ -796,7 +848,7 @@ adafruit_pirkey.build.board=PIRKEY adafruit_pirkey.build.core=arduino adafruit_pirkey.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_PIRKEY -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_pirkey.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_pirkey.build.openocdscript=openocd_scripts/pirkey.cfg +adafruit_pirkey.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_pirkey.build.variant=pirkey adafruit_pirkey.build.variant_system_lib= adafruit_pirkey.build.vid=0x239A @@ -804,7 +856,7 @@ adafruit_pirkey.build.pid=0x8027 adafruit_pirkey.bootloader.tool=openocd adafruit_pirkey.bootloader.file=pirkey/bootloader-pirkey-v2.0.0-adafruit.5.bin -# Menu +# Menu: Optimization adafruit_pirkey.menu.opt.small=Small (-Os) (standard) adafruit_pirkey.menu.opt.small.build.flags.optimize=-Os adafruit_pirkey.menu.opt.fast=Fast (-O2) @@ -815,9 +867,13 @@ adafruit_pirkey.menu.opt.fastest=Fastest (-Ofast) adafruit_pirkey.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_pirkey.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_pirkey.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_pirkey.menu.usbstack.arduino=Arduino adafruit_pirkey.menu.usbstack.tinyusb=TinyUSB adafruit_pirkey.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_pirkey.menu.debug.off=Off adafruit_pirkey.menu.debug.on=On adafruit_pirkey.menu.debug.on.build.flags.debug=-g @@ -854,7 +910,7 @@ adafruit_hallowing.build.board=SAMD_HALLOWING adafruit_hallowing.build.core=arduino adafruit_hallowing.build.extra_flags=-D__SAMD21G18A__ -DCRYSTALLESS -DARDUINO_SAMD_HALLOWING_M0 -DADAFRUIT_HALLOWING -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_hallowing.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_hallowing.build.openocdscript=openocd_scripts/hallowing_m0_express.cfg +adafruit_hallowing.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_hallowing.build.variant=hallowing_m0_express adafruit_hallowing.build.variant_system_lib= adafruit_hallowing.build.vid=0x239A @@ -862,7 +918,7 @@ adafruit_hallowing.build.pid=0xDEAD adafruit_hallowing.bootloader.tool=openocd adafruit_hallowing.bootloader.file=hallowingM0/bootloader-hallowing_m0-v2.0.0-adafruit.0-21-g887cc30.bin -# Menu +# Menu: Optimization adafruit_hallowing.menu.opt.small=Small (-Os) (standard) adafruit_hallowing.menu.opt.small.build.flags.optimize=-Os adafruit_hallowing.menu.opt.fast=Fast (-O2) @@ -873,9 +929,13 @@ adafruit_hallowing.menu.opt.fastest=Fastest (-Ofast) adafruit_hallowing.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_hallowing.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_hallowing.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_hallowing.menu.usbstack.arduino=Arduino adafruit_hallowing.menu.usbstack.tinyusb=TinyUSB adafruit_hallowing.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_hallowing.menu.debug.off=Off adafruit_hallowing.menu.debug.on=On adafruit_hallowing.menu.debug.on.build.flags.debug=-g @@ -912,7 +972,7 @@ adafruit_crickit_m0.build.board=CRICKIT_M0 adafruit_crickit_m0.build.core=arduino adafruit_crickit_m0.build.extra_flags=-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_CRICKIT_M0 -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_crickit_m0.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_crickit_m0.build.openocdscript=openocd_scripts/crickit_m0.cfg +adafruit_crickit_m0.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_crickit_m0.build.variant=crickit_m0 adafruit_crickit_m0.build.variant_system_lib= adafruit_crickit_m0.build.vid=0x239A @@ -920,7 +980,7 @@ adafruit_crickit_m0.build.pid=0x802D adafruit_crickit_m0.bootloader.tool=openocd adafruit_crickit_m0.bootloader.file=crickit/samd21_sam_ba.bin -# Menu +# Menu: Optimization adafruit_crickit_m0.menu.opt.small=Small (-Os) (standard) adafruit_crickit_m0.menu.opt.small.build.flags.optimize=-Os adafruit_crickit_m0.menu.opt.fast=Fast (-O2) @@ -931,9 +991,13 @@ adafruit_crickit_m0.menu.opt.fastest=Fastest (-Ofast) adafruit_crickit_m0.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_crickit_m0.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_crickit_m0.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_crickit_m0.menu.usbstack.arduino=Arduino adafruit_crickit_m0.menu.usbstack.tinyusb=TinyUSB adafruit_crickit_m0.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_crickit_m0.menu.debug.off=Off adafruit_crickit_m0.menu.debug.on=On adafruit_crickit_m0.menu.debug.on.build.flags.debug=-g @@ -968,9 +1032,9 @@ adafruit_blm_badge.build.usb_product="BLM Badge" adafruit_blm_badge.build.usb_manufacturer="Adafruit" adafruit_blm_badge.build.board=BLM_BADGE_M0 adafruit_blm_badge.build.core=arduino -adafruit_blm_badge.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_BLM_BADGE -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} +adafruit_blm_badge.build.extra_flags=-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_BLM_BADGE -DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS {build.usb_flags} adafruit_blm_badge.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_blm_badge.build.openocdscript=openocd_scripts/blm_badge.cfg +adafruit_blm_badge.build.openocdscript=scripts/openocd/daplink_samd21.cfg adafruit_blm_badge.build.variant=blm_badge adafruit_blm_badge.build.variant_system_lib= adafruit_blm_badge.build.vid=0x239A @@ -978,7 +1042,7 @@ adafruit_blm_badge.build.pid=0x80BF adafruit_blm_badge.bootloader.tool=openocd adafruit_blm_badge.bootloader.file=blmbadge/bootloader-blm_badge.bin -# Menu +# Menu: Optimization adafruit_blm_badge.menu.opt.small=Small (-Os) (standard) adafruit_blm_badge.menu.opt.small.build.flags.optimize=-Os adafruit_blm_badge.menu.opt.fast=Fast (-O2) @@ -989,9 +1053,13 @@ adafruit_blm_badge.menu.opt.fastest=Fastest (-Ofast) adafruit_blm_badge.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_blm_badge.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_blm_badge.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: USB Stack adafruit_blm_badge.menu.usbstack.arduino=Arduino adafruit_blm_badge.menu.usbstack.tinyusb=TinyUSB adafruit_blm_badge.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_blm_badge.menu.debug.off=Off adafruit_blm_badge.menu.debug.on=On adafruit_blm_badge.menu.debug.on.build.flags.debug=-g @@ -1030,7 +1098,7 @@ adafruit_metro_m4.build.board=METRO_M4 adafruit_metro_m4.build.core=arduino adafruit_metro_m4.build.extra_flags=-D__SAMD51J19A__ -DADAFRUIT_METRO_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_metro_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_metro_m4.build.openocdscript=openocd_scripts/metro_m4.cfg +adafruit_metro_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_metro_m4.build.variant=metro_m4 adafruit_metro_m4.build.variant_system_lib= adafruit_metro_m4.build.vid=0x239A @@ -1039,11 +1107,13 @@ adafruit_metro_m4.bootloader.tool=openocd adafruit_metro_m4.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin adafruit_metro_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_metro_m4.menu.cache.on=Enabled adafruit_metro_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_metro_m4.menu.cache.off=Disabled adafruit_metro_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_metro_m4.menu.speed.120=120 MHz (standard) adafruit_metro_m4.menu.speed.120.build.f_cpu=120000000L adafruit_metro_m4.menu.speed.150=150 MHz (overclock) @@ -1052,6 +1122,8 @@ adafruit_metro_m4.menu.speed.180=180 MHz (overclock) adafruit_metro_m4.menu.speed.180.build.f_cpu=180000000L adafruit_metro_m4.menu.speed.200=200 MHz (overclock) adafruit_metro_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_metro_m4.menu.opt.small=Small (-Os) (standard) adafruit_metro_m4.menu.opt.small.build.flags.optimize=-Os adafruit_metro_m4.menu.opt.fast=Fast (-O2) @@ -1062,13 +1134,19 @@ adafruit_metro_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_metro_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_metro_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_metro_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_metro_m4.menu.maxqspi.50=50 MHz (standard) adafruit_metro_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_metro_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_metro_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_metro_m4.menu.usbstack.arduino=Arduino adafruit_metro_m4.menu.usbstack.tinyusb=TinyUSB adafruit_metro_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_metro_m4.menu.debug.off=Off adafruit_metro_m4.menu.debug.on=On adafruit_metro_m4.menu.debug.on.build.flags.debug=-g @@ -1105,7 +1183,7 @@ adafruit_grandcentral_m4.build.board=GRAND_CENTRAL_M4 adafruit_grandcentral_m4.build.core=arduino adafruit_grandcentral_m4.build.extra_flags=-D__SAMD51P20A__ -DADAFRUIT_GRAND_CENTRAL_M4 -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_grandcentral_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_grandcentral_m4.build.openocdscript=openocd_scripts/grand_central_m4.cfg +adafruit_grandcentral_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_grandcentral_m4.build.variant=grand_central_m4 adafruit_grandcentral_m4.build.variant_system_lib= adafruit_grandcentral_m4.build.vid=0x239A @@ -1114,11 +1192,13 @@ adafruit_grandcentral_m4.bootloader.tool=openocd adafruit_grandcentral_m4.bootloader.file=grand_central_m4/bootloader-grandcentral_m4.bin adafruit_grandcentral_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_grandcentral_m4.menu.cache.on=Enabled adafruit_grandcentral_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_grandcentral_m4.menu.cache.off=Disabled adafruit_grandcentral_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_grandcentral_m4.menu.speed.120=120 MHz (standard) adafruit_grandcentral_m4.menu.speed.120.build.f_cpu=120000000L adafruit_grandcentral_m4.menu.speed.150=150 MHz (overclock) @@ -1127,6 +1207,8 @@ adafruit_grandcentral_m4.menu.speed.180=180 MHz (overclock) adafruit_grandcentral_m4.menu.speed.180.build.f_cpu=180000000L adafruit_grandcentral_m4.menu.speed.200=200 MHz (overclock) adafruit_grandcentral_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_grandcentral_m4.menu.opt.small=Small (-Os) (standard) adafruit_grandcentral_m4.menu.opt.small.build.flags.optimize=-Os adafruit_grandcentral_m4.menu.opt.fast=Fast (-O2) @@ -1137,13 +1219,19 @@ adafruit_grandcentral_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_grandcentral_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_grandcentral_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_grandcentral_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_grandcentral_m4.menu.maxqspi.50=50 MHz (standard) adafruit_grandcentral_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_grandcentral_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_grandcentral_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_grandcentral_m4.menu.usbstack.arduino=Arduino adafruit_grandcentral_m4.menu.usbstack.tinyusb=TinyUSB adafruit_grandcentral_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_grandcentral_m4.menu.debug.off=Off adafruit_grandcentral_m4.menu.debug.on=On adafruit_grandcentral_m4.menu.debug.on.build.flags.debug=-g @@ -1178,7 +1266,7 @@ adafruit_itsybitsy_m4.build.board=ITSYBITSY_M4 adafruit_itsybitsy_m4.build.core=arduino adafruit_itsybitsy_m4.build.extra_flags=-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_ITSYBITSY_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_itsybitsy_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_itsybitsy_m4.build.openocdscript=openocd_scripts/itsybitsy_m4.cfg +adafruit_itsybitsy_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_itsybitsy_m4.build.variant=itsybitsy_m4 adafruit_itsybitsy_m4.build.variant_system_lib= adafruit_itsybitsy_m4.build.vid=0x239A @@ -1187,11 +1275,13 @@ adafruit_itsybitsy_m4.bootloader.tool=openocd adafruit_itsybitsy_m4.bootloader.file=itsybitsyM4/bootloader-itsybitsy_m4-v2.0.0-adafruit.5.bin adafruit_itsybitsy_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_itsybitsy_m4.menu.cache.on=Enabled adafruit_itsybitsy_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_itsybitsy_m4.menu.cache.off=Disabled adafruit_itsybitsy_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_itsybitsy_m4.menu.speed.120=120 MHz (standard) adafruit_itsybitsy_m4.menu.speed.120.build.f_cpu=120000000L adafruit_itsybitsy_m4.menu.speed.150=150 MHz (overclock) @@ -1200,6 +1290,8 @@ adafruit_itsybitsy_m4.menu.speed.180=180 MHz (overclock) adafruit_itsybitsy_m4.menu.speed.180.build.f_cpu=180000000L adafruit_itsybitsy_m4.menu.speed.200=200 MHz (overclock) adafruit_itsybitsy_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_itsybitsy_m4.menu.opt.small=Small (-Os) (standard) adafruit_itsybitsy_m4.menu.opt.small.build.flags.optimize=-Os adafruit_itsybitsy_m4.menu.opt.fast=Fast (-O2) @@ -1210,13 +1302,19 @@ adafruit_itsybitsy_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_itsybitsy_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_itsybitsy_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_itsybitsy_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_itsybitsy_m4.menu.maxqspi.50=50 MHz (standard) adafruit_itsybitsy_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_itsybitsy_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_itsybitsy_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_itsybitsy_m4.menu.usbstack.arduino=Arduino adafruit_itsybitsy_m4.menu.usbstack.tinyusb=TinyUSB adafruit_itsybitsy_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_itsybitsy_m4.menu.debug.off=Off adafruit_itsybitsy_m4.menu.debug.on=On adafruit_itsybitsy_m4.menu.debug.on.build.flags.debug=-g @@ -1253,7 +1351,7 @@ adafruit_feather_m4.build.board=FEATHER_M4 adafruit_feather_m4.build.core=arduino adafruit_feather_m4.build.extra_flags=-D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_feather_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_feather_m4.build.openocdscript=openocd_scripts/feather_m4.cfg +adafruit_feather_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_feather_m4.build.variant=feather_m4 adafruit_feather_m4.build.variant_system_lib= adafruit_feather_m4.build.vid=0x239A @@ -1262,11 +1360,13 @@ adafruit_feather_m4.bootloader.tool=openocd adafruit_feather_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin adafruit_feather_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_feather_m4.menu.cache.on=Enabled adafruit_feather_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_feather_m4.menu.cache.off=Disabled adafruit_feather_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_feather_m4.menu.speed.120=120 MHz (standard) adafruit_feather_m4.menu.speed.120.build.f_cpu=120000000L adafruit_feather_m4.menu.speed.150=150 MHz (overclock) @@ -1275,6 +1375,8 @@ adafruit_feather_m4.menu.speed.180=180 MHz (overclock) adafruit_feather_m4.menu.speed.180.build.f_cpu=180000000L adafruit_feather_m4.menu.speed.200=200 MHz (overclock) adafruit_feather_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_feather_m4.menu.opt.small=Small (-Os) (standard) adafruit_feather_m4.menu.opt.small.build.flags.optimize=-Os adafruit_feather_m4.menu.opt.fast=Fast (-O2) @@ -1285,13 +1387,19 @@ adafruit_feather_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_feather_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_feather_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_feather_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_feather_m4.menu.maxqspi.50=50 MHz (standard) adafruit_feather_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_feather_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_feather_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_feather_m4.menu.usbstack.arduino=Arduino adafruit_feather_m4.menu.usbstack.tinyusb=TinyUSB adafruit_feather_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_feather_m4.menu.debug.off=Off adafruit_feather_m4.menu.debug.on=On adafruit_feather_m4.menu.debug.on.build.flags.debug=-g @@ -1326,7 +1434,7 @@ adafruit_feather_m4_can.build.board=FEATHER_M4_CAN adafruit_feather_m4_can.build.core=arduino adafruit_feather_m4_can.build.extra_flags=-D__SAME51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -DADAFRUIT_FEATHER_M4_CAN -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_feather_m4_can.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_feather_m4_can.build.openocdscript=openocd_scripts/feather_m4_can.cfg +adafruit_feather_m4_can.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_feather_m4_can.build.variant=feather_m4_can adafruit_feather_m4_can.build.variant_system_lib= adafruit_feather_m4_can.build.vid=0x239A @@ -1335,11 +1443,13 @@ adafruit_feather_m4_can.bootloader.tool=openocd adafruit_feather_m4_can.bootloader.file=featherM4/bootloader-feather_m4_express-v2.0.0-adafruit.5.bin adafruit_feather_m4_can.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_feather_m4_can.menu.cache.on=Enabled adafruit_feather_m4_can.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_feather_m4_can.menu.cache.off=Disabled adafruit_feather_m4_can.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_feather_m4_can.menu.speed.120=120 MHz (standard) adafruit_feather_m4_can.menu.speed.120.build.f_cpu=120000000L adafruit_feather_m4_can.menu.speed.150=150 MHz (overclock) @@ -1348,6 +1458,8 @@ adafruit_feather_m4_can.menu.speed.180=180 MHz (overclock) adafruit_feather_m4_can.menu.speed.180.build.f_cpu=180000000L adafruit_feather_m4_can.menu.speed.200=200 MHz (overclock) adafruit_feather_m4_can.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_feather_m4_can.menu.opt.small=Small (-Os) (standard) adafruit_feather_m4_can.menu.opt.small.build.flags.optimize=-Os adafruit_feather_m4_can.menu.opt.fast=Fast (-O2) @@ -1358,13 +1470,19 @@ adafruit_feather_m4_can.menu.opt.fastest=Fastest (-Ofast) adafruit_feather_m4_can.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_feather_m4_can.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_feather_m4_can.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_feather_m4_can.menu.maxqspi.50=50 MHz (standard) adafruit_feather_m4_can.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_feather_m4_can.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_feather_m4_can.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_feather_m4_can.menu.usbstack.arduino=Arduino adafruit_feather_m4_can.menu.usbstack.tinyusb=TinyUSB adafruit_feather_m4_can.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_feather_m4_can.menu.debug.off=Off adafruit_feather_m4_can.menu.debug.on=On adafruit_feather_m4_can.menu.debug.on.build.flags.debug=-g @@ -1401,7 +1519,7 @@ adafruit_trellis_m4.build.board=TRELLIS_M4 adafruit_trellis_m4.build.core=arduino adafruit_trellis_m4.build.extra_flags=-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_TRELLIS_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_trellis_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_trellis_m4.build.openocdscript=openocd_scripts/trellis_m4.cfg +adafruit_trellis_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_trellis_m4.build.variant=trellis_m4 adafruit_trellis_m4.build.variant_system_lib= adafruit_trellis_m4.build.vid=0x239A @@ -1410,11 +1528,13 @@ adafruit_trellis_m4.bootloader.tool=openocd adafruit_trellis_m4.bootloader.file=trellisM4/bootloader-trellis_m4-v2.0.0-adafruit.5.bin adafruit_trellis_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_trellis_m4.menu.cache.on=Enabled adafruit_trellis_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_trellis_m4.menu.cache.off=Disabled adafruit_trellis_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_trellis_m4.menu.speed.120=120 MHz (standard) adafruit_trellis_m4.menu.speed.120.build.f_cpu=120000000L adafruit_trellis_m4.menu.speed.150=150 MHz (overclock) @@ -1423,6 +1543,8 @@ adafruit_trellis_m4.menu.speed.180=180 MHz (overclock) adafruit_trellis_m4.menu.speed.180.build.f_cpu=180000000L adafruit_trellis_m4.menu.speed.200=200 MHz (overclock) adafruit_trellis_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_trellis_m4.menu.opt.small=Small (-Os) (standard) adafruit_trellis_m4.menu.opt.small.build.flags.optimize=-Os adafruit_trellis_m4.menu.opt.fast=Fast (-O2) @@ -1433,13 +1555,19 @@ adafruit_trellis_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_trellis_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_trellis_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_trellis_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_trellis_m4.menu.maxqspi.50=50 MHz (standard) adafruit_trellis_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_trellis_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_trellis_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_trellis_m4.menu.usbstack.arduino=Arduino adafruit_trellis_m4.menu.usbstack.tinyusb=TinyUSB adafruit_trellis_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_trellis_m4.menu.debug.off=Off adafruit_trellis_m4.menu.debug.on=On adafruit_trellis_m4.menu.debug.on.build.flags.debug=-g @@ -1476,7 +1604,7 @@ adafruit_pyportal_m4.build.board=PYPORTAL_M4 adafruit_pyportal_m4.build.core=arduino adafruit_pyportal_m4.build.extra_flags=-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYPORTAL -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_pyportal_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_pyportal_m4.build.openocdscript=openocd_scripts/pyportal_m4.cfg +adafruit_pyportal_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_pyportal_m4.build.variant=pyportal_m4 adafruit_pyportal_m4.build.variant_system_lib= adafruit_pyportal_m4.build.vid=0x239A @@ -1485,11 +1613,13 @@ adafruit_pyportal_m4.bootloader.tool=openocd adafruit_pyportal_m4.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin adafruit_pyportal_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_pyportal_m4.menu.cache.on=Enabled adafruit_pyportal_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pyportal_m4.menu.cache.off=Disabled adafruit_pyportal_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_pyportal_m4.menu.speed.120=120 MHz (standard) adafruit_pyportal_m4.menu.speed.120.build.f_cpu=120000000L adafruit_pyportal_m4.menu.speed.150=150 MHz (overclock) @@ -1498,6 +1628,8 @@ adafruit_pyportal_m4.menu.speed.180=180 MHz (overclock) adafruit_pyportal_m4.menu.speed.180.build.f_cpu=180000000L adafruit_pyportal_m4.menu.speed.200=200 MHz (overclock) adafruit_pyportal_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_pyportal_m4.menu.opt.small=Small (-Os) (standard) adafruit_pyportal_m4.menu.opt.small.build.flags.optimize=-Os adafruit_pyportal_m4.menu.opt.fast=Fast (-O2) @@ -1508,13 +1640,19 @@ adafruit_pyportal_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_pyportal_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_pyportal_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_pyportal_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_pyportal_m4.menu.maxqspi.50=50 MHz (standard) adafruit_pyportal_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_pyportal_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_pyportal_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_pyportal_m4.menu.usbstack.arduino=Arduino adafruit_pyportal_m4.menu.usbstack.tinyusb=TinyUSB adafruit_pyportal_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_pyportal_m4.menu.debug.off=Off adafruit_pyportal_m4.menu.debug.on=On adafruit_pyportal_m4.menu.debug.on.build.flags.debug=-g @@ -1549,7 +1687,7 @@ adafruit_pyportal_m4_titano.build.board=PYPORTAL_M4_TITANO adafruit_pyportal_m4_titano.build.core=arduino adafruit_pyportal_m4_titano.build.extra_flags=-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYPORTAL_M4_TITANO -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_pyportal_m4_titano.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_pyportal_m4_titano.build.openocdscript=openocd_scripts/pyportal_m4_titano.cfg +adafruit_pyportal_m4_titano.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_pyportal_m4_titano.build.variant=pyportal_m4_titano adafruit_pyportal_m4_titano.build.variant_system_lib= adafruit_pyportal_m4_titano.build.vid=0x239A @@ -1558,11 +1696,13 @@ adafruit_pyportal_m4_titano.bootloader.tool=openocd adafruit_pyportal_m4_titano.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin adafruit_pyportal_m4_titano.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_pyportal_m4_titano.menu.cache.on=Enabled adafruit_pyportal_m4_titano.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pyportal_m4_titano.menu.cache.off=Disabled adafruit_pyportal_m4_titano.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_pyportal_m4_titano.menu.speed.120=120 MHz (standard) adafruit_pyportal_m4_titano.menu.speed.120.build.f_cpu=120000000L adafruit_pyportal_m4_titano.menu.speed.150=150 MHz (overclock) @@ -1571,6 +1711,8 @@ adafruit_pyportal_m4_titano.menu.speed.180=180 MHz (overclock) adafruit_pyportal_m4_titano.menu.speed.180.build.f_cpu=180000000L adafruit_pyportal_m4_titano.menu.speed.200=200 MHz (overclock) adafruit_pyportal_m4_titano.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_pyportal_m4_titano.menu.opt.small=Small (-Os) (standard) adafruit_pyportal_m4_titano.menu.opt.small.build.flags.optimize=-Os adafruit_pyportal_m4_titano.menu.opt.fast=Fast (-O2) @@ -1581,13 +1723,19 @@ adafruit_pyportal_m4_titano.menu.opt.fastest=Fastest (-Ofast) adafruit_pyportal_m4_titano.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_pyportal_m4_titano.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_pyportal_m4_titano.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_pyportal_m4_titano.menu.maxqspi.50=50 MHz (standard) adafruit_pyportal_m4_titano.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_pyportal_m4_titano.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_pyportal_m4_titano.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_pyportal_m4_titano.menu.usbstack.arduino=Arduino adafruit_pyportal_m4_titano.menu.usbstack.tinyusb=TinyUSB adafruit_pyportal_m4_titano.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_pyportal_m4_titano.menu.debug.off=Off adafruit_pyportal_m4_titano.menu.debug.on=On adafruit_pyportal_m4_titano.menu.debug.on.build.flags.debug=-g @@ -1626,7 +1774,7 @@ adafruit_pybadge_m4.build.board=PYBADGE_M4 adafruit_pybadge_m4.build.core=arduino adafruit_pybadge_m4.build.extra_flags=-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_pybadge_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_pybadge_m4.build.openocdscript=openocd_scripts/pybadge_m4.cfg +adafruit_pybadge_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_pybadge_m4.build.variant=pybadge_m4 adafruit_pybadge_m4.build.variant_system_lib= adafruit_pybadge_m4.build.vid=0x239A @@ -1635,11 +1783,13 @@ adafruit_pybadge_m4.bootloader.tool=openocd adafruit_pybadge_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin adafruit_pybadge_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_pybadge_m4.menu.cache.on=Enabled adafruit_pybadge_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pybadge_m4.menu.cache.off=Disabled adafruit_pybadge_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_pybadge_m4.menu.speed.120=120 MHz (standard) adafruit_pybadge_m4.menu.speed.120.build.f_cpu=120000000L adafruit_pybadge_m4.menu.speed.150=150 MHz (overclock) @@ -1648,6 +1798,8 @@ adafruit_pybadge_m4.menu.speed.180=180 MHz (overclock) adafruit_pybadge_m4.menu.speed.180.build.f_cpu=180000000L adafruit_pybadge_m4.menu.speed.200=200 MHz (overclock) adafruit_pybadge_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_pybadge_m4.menu.opt.small=Small (-Os) (standard) adafruit_pybadge_m4.menu.opt.small.build.flags.optimize=-Os adafruit_pybadge_m4.menu.opt.fast=Fast (-O2) @@ -1658,13 +1810,19 @@ adafruit_pybadge_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_pybadge_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_pybadge_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_pybadge_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_pybadge_m4.menu.maxqspi.50=50 MHz (standard) adafruit_pybadge_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_pybadge_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_pybadge_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_pybadge_m4.menu.usbstack.arduino=Arduino adafruit_pybadge_m4.menu.usbstack.tinyusb=TinyUSB adafruit_pybadge_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_pybadge_m4.menu.debug.off=Off adafruit_pybadge_m4.menu.debug.on=On adafruit_pybadge_m4.menu.debug.on.build.flags.debug=-g @@ -1699,7 +1857,7 @@ adafruit_metro_m4_airliftlite.build.board=METRO_M4_AIRLIFT_LITE adafruit_metro_m4_airliftlite.build.core=arduino adafruit_metro_m4_airliftlite.build.extra_flags=-D__SAMD51J19A__ -DADAFRUIT_METRO_M4_AIRLIFT_LITE -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_metro_m4_airliftlite.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_metro_m4_airliftlite.build.openocdscript=openocd_scripts/metro_m4_airlift.cfg +adafruit_metro_m4_airliftlite.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_metro_m4_airliftlite.build.variant=metro_m4_airlift adafruit_metro_m4_airliftlite.build.variant_system_lib= adafruit_metro_m4_airliftlite.build.vid=0x239A @@ -1708,11 +1866,13 @@ adafruit_metro_m4_airliftlite.bootloader.tool=openocd adafruit_metro_m4_airliftlite.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin adafruit_metro_m4_airliftlite.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_metro_m4_airliftlite.menu.cache.on=Enabled adafruit_metro_m4_airliftlite.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_metro_m4_airliftlite.menu.cache.off=Disabled adafruit_metro_m4_airliftlite.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_metro_m4_airliftlite.menu.speed.120=120 MHz (standard) adafruit_metro_m4_airliftlite.menu.speed.120.build.f_cpu=120000000L adafruit_metro_m4_airliftlite.menu.speed.150=150 MHz (overclock) @@ -1721,6 +1881,8 @@ adafruit_metro_m4_airliftlite.menu.speed.180=180 MHz (overclock) adafruit_metro_m4_airliftlite.menu.speed.180.build.f_cpu=180000000L adafruit_metro_m4_airliftlite.menu.speed.200=200 MHz (overclock) adafruit_metro_m4_airliftlite.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_metro_m4_airliftlite.menu.opt.small=Small (-Os) (standard) adafruit_metro_m4_airliftlite.menu.opt.small.build.flags.optimize=-Os adafruit_metro_m4_airliftlite.menu.opt.fast=Fast (-O2) @@ -1731,13 +1893,19 @@ adafruit_metro_m4_airliftlite.menu.opt.fastest=Fastest (-Ofast) adafruit_metro_m4_airliftlite.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_metro_m4_airliftlite.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_metro_m4_airliftlite.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_metro_m4_airliftlite.menu.maxqspi.50=50 MHz (standard) adafruit_metro_m4_airliftlite.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_metro_m4_airliftlite.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_metro_m4_airliftlite.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_metro_m4_airliftlite.menu.usbstack.arduino=Arduino adafruit_metro_m4_airliftlite.menu.usbstack.tinyusb=TinyUSB adafruit_metro_m4_airliftlite.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_metro_m4_airliftlite.menu.debug.off=Off adafruit_metro_m4_airliftlite.menu.debug.on=On adafruit_metro_m4_airliftlite.menu.debug.on.build.flags.debug=-g @@ -1772,9 +1940,9 @@ adafruit_pygamer_m4.build.usb_product="PyGamer M4 Express" adafruit_pygamer_m4.build.usb_manufacturer="Adafruit" adafruit_pygamer_m4.build.board=PYGAMER_M4 adafruit_pygamer_m4.build.core=arduino -adafruit_pygamer_m4.build.extra_flags=-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYGAMER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} +adafruit_pygamer_m4.build.extra_flags=-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYGAMER_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_pygamer_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_pygamer_m4.build.openocdscript=openocd_scripts/pygamer_m4.cfg +adafruit_pygamer_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_pygamer_m4.build.variant=pygamer_m4 adafruit_pygamer_m4.build.variant_system_lib= adafruit_pygamer_m4.build.vid=0x239A @@ -1783,11 +1951,13 @@ adafruit_pygamer_m4.bootloader.tool=openocd adafruit_pygamer_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin adafruit_pygamer_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_pygamer_m4.menu.cache.on=Enabled adafruit_pygamer_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pygamer_m4.menu.cache.off=Disabled adafruit_pygamer_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_pygamer_m4.menu.speed.120=120 MHz (standard) adafruit_pygamer_m4.menu.speed.120.build.f_cpu=120000000L adafruit_pygamer_m4.menu.speed.150=150 MHz (overclock) @@ -1796,6 +1966,8 @@ adafruit_pygamer_m4.menu.speed.180=180 MHz (overclock) adafruit_pygamer_m4.menu.speed.180.build.f_cpu=180000000L adafruit_pygamer_m4.menu.speed.200=200 MHz (overclock) adafruit_pygamer_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_pygamer_m4.menu.opt.small=Small (-Os) (standard) adafruit_pygamer_m4.menu.opt.small.build.flags.optimize=-Os adafruit_pygamer_m4.menu.opt.fast=Fast (-O2) @@ -1806,13 +1978,19 @@ adafruit_pygamer_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_pygamer_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_pygamer_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_pygamer_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_pygamer_m4.menu.maxqspi.50=50 MHz (standard) adafruit_pygamer_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_pygamer_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_pygamer_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_pygamer_m4.menu.usbstack.arduino=Arduino adafruit_pygamer_m4.menu.usbstack.tinyusb=TinyUSB adafruit_pygamer_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_pygamer_m4.menu.debug.off=Off adafruit_pygamer_m4.menu.debug.on=On adafruit_pygamer_m4.menu.debug.on.build.flags.debug=-g @@ -1847,9 +2025,9 @@ adafruit_pybadge_airlift_m4.build.usb_product="pyBadge AirLift M4" adafruit_pybadge_airlift_m4.build.usb_manufacturer="Adafruit" adafruit_pybadge_airlift_m4.build.board=PYBADGE_AIRLIFT_M4 adafruit_pybadge_airlift_m4.build.core=arduino -adafruit_pybadge_airlift_m4.build.extra_flags=-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_AIRLIFT_M4 -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} +adafruit_pybadge_airlift_m4.build.extra_flags=-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_AIRLIFT_M4 -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_pybadge_airlift_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_pybadge_airlift_m4.build.openocdscript=openocd_scripts/pybadge_airlift_m4.cfg +adafruit_pybadge_airlift_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_pybadge_airlift_m4.build.variant=pybadge_airlift_m4 adafruit_pybadge_airlift_m4.build.variant_system_lib= adafruit_pybadge_airlift_m4.build.vid=0x239A @@ -1858,11 +2036,13 @@ adafruit_pybadge_airlift_m4.bootloader.tool=openocd adafruit_pybadge_airlift_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin adafruit_pybadge_airlift_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_pybadge_airlift_m4.menu.cache.on=Enabled adafruit_pybadge_airlift_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pybadge_airlift_m4.menu.cache.off=Disabled adafruit_pybadge_airlift_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_pybadge_airlift_m4.menu.speed.120=120 MHz (standard) adafruit_pybadge_airlift_m4.menu.speed.120.build.f_cpu=120000000L adafruit_pybadge_airlift_m4.menu.speed.150=150 MHz (overclock) @@ -1871,6 +2051,8 @@ adafruit_pybadge_airlift_m4.menu.speed.180=180 MHz (overclock) adafruit_pybadge_airlift_m4.menu.speed.180.build.f_cpu=180000000L adafruit_pybadge_airlift_m4.menu.speed.200=200 MHz (overclock) adafruit_pybadge_airlift_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_pybadge_airlift_m4.menu.opt.small=Small (-Os) (standard) adafruit_pybadge_airlift_m4.menu.opt.small.build.flags.optimize=-Os adafruit_pybadge_airlift_m4.menu.opt.fast=Fast (-O2) @@ -1881,13 +2063,19 @@ adafruit_pybadge_airlift_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_pybadge_airlift_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_pybadge_airlift_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_pybadge_airlift_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_pybadge_airlift_m4.menu.maxqspi.50=50 MHz (standard) adafruit_pybadge_airlift_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_pybadge_airlift_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_pybadge_airlift_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_pybadge_airlift_m4.menu.usbstack.arduino=Arduino adafruit_pybadge_airlift_m4.menu.usbstack.tinyusb=TinyUSB adafruit_pybadge_airlift_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_pybadge_airlift_m4.menu.debug.off=Off adafruit_pybadge_airlift_m4.menu.debug.on=On adafruit_pybadge_airlift_m4.menu.debug.on.build.flags.debug=-g @@ -1922,9 +2110,9 @@ adafruit_monster_m4sk.build.usb_product="MONSTER M4SK" adafruit_monster_m4sk.build.usb_manufacturer="Adafruit" adafruit_monster_m4sk.build.board=MONSTER_M4SK adafruit_monster_m4sk.build.core=arduino -adafruit_monster_m4sk.build.extra_flags=-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_MONSTER_M4SK_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} +adafruit_monster_m4sk.build.extra_flags=-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_MONSTER_M4SK_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_monster_m4sk.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_monster_m4sk.build.openocdscript=openocd_scripts/monster_m4sk.cfg +adafruit_monster_m4sk.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_monster_m4sk.build.variant=monster_m4sk adafruit_monster_m4sk.build.variant_system_lib= adafruit_monster_m4sk.build.vid=0x239A @@ -1933,11 +2121,13 @@ adafruit_monster_m4sk.bootloader.tool=openocd adafruit_monster_m4sk.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin adafruit_monster_m4sk.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_monster_m4sk.menu.cache.on=Enabled adafruit_monster_m4sk.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_monster_m4sk.menu.cache.off=Disabled adafruit_monster_m4sk.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_monster_m4sk.menu.speed.120=120 MHz (standard) adafruit_monster_m4sk.menu.speed.120.build.f_cpu=120000000L adafruit_monster_m4sk.menu.speed.150=150 MHz (overclock) @@ -1946,6 +2136,8 @@ adafruit_monster_m4sk.menu.speed.180=180 MHz (overclock) adafruit_monster_m4sk.menu.speed.180.build.f_cpu=180000000L adafruit_monster_m4sk.menu.speed.200=200 MHz (overclock) adafruit_monster_m4sk.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_monster_m4sk.menu.opt.small=Small (-Os) (standard) adafruit_monster_m4sk.menu.opt.small.build.flags.optimize=-Os adafruit_monster_m4sk.menu.opt.fast=Fast (-O2) @@ -1956,13 +2148,19 @@ adafruit_monster_m4sk.menu.opt.fastest=Fastest (-Ofast) adafruit_monster_m4sk.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_monster_m4sk.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_monster_m4sk.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_monster_m4sk.menu.maxqspi.50=50 MHz (standard) adafruit_monster_m4sk.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_monster_m4sk.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_monster_m4sk.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_monster_m4sk.menu.usbstack.arduino=Arduino adafruit_monster_m4sk.menu.usbstack.tinyusb=TinyUSB adafruit_monster_m4sk.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_monster_m4sk.menu.debug.off=Off adafruit_monster_m4sk.menu.debug.on=On adafruit_monster_m4sk.menu.debug.on.build.flags.debug=-g @@ -1997,9 +2195,9 @@ adafruit_hallowing_m4.build.usb_product="Hallowing M4" adafruit_hallowing_m4.build.usb_manufacturer="Adafruit" adafruit_hallowing_m4.build.board=HALLOWING_M4 adafruit_hallowing_m4.build.core=arduino -adafruit_hallowing_m4.build.extra_flags=-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_HALLOWING_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} +adafruit_hallowing_m4.build.extra_flags=-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_HALLOWING_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_hallowing_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_hallowing_m4.build.openocdscript=openocd_scripts/hallowing_m4.cfg +adafruit_hallowing_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_hallowing_m4.build.variant=hallowing_m4 adafruit_hallowing_m4.build.variant_system_lib= adafruit_hallowing_m4.build.vid=0x239A @@ -2008,11 +2206,13 @@ adafruit_hallowing_m4.bootloader.tool=openocd adafruit_hallowing_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin adafruit_hallowing_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_hallowing_m4.menu.cache.on=Enabled adafruit_hallowing_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_hallowing_m4.menu.cache.off=Disabled adafruit_hallowing_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_hallowing_m4.menu.speed.120=120 MHz (standard) adafruit_hallowing_m4.menu.speed.120.build.f_cpu=120000000L adafruit_hallowing_m4.menu.speed.150=150 MHz (overclock) @@ -2021,6 +2221,8 @@ adafruit_hallowing_m4.menu.speed.180=180 MHz (overclock) adafruit_hallowing_m4.menu.speed.180.build.f_cpu=180000000L adafruit_hallowing_m4.menu.speed.200=200 MHz (overclock) adafruit_hallowing_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_hallowing_m4.menu.opt.small=Small (-Os) (standard) adafruit_hallowing_m4.menu.opt.small.build.flags.optimize=-Os adafruit_hallowing_m4.menu.opt.fast=Fast (-O2) @@ -2031,13 +2233,19 @@ adafruit_hallowing_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_hallowing_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_hallowing_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_hallowing_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_hallowing_m4.menu.maxqspi.50=50 MHz (standard) adafruit_hallowing_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_hallowing_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_hallowing_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_hallowing_m4.menu.usbstack.arduino=Arduino adafruit_hallowing_m4.menu.usbstack.tinyusb=TinyUSB adafruit_hallowing_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_hallowing_m4.menu.debug.off=Off adafruit_hallowing_m4.menu.debug.on=On adafruit_hallowing_m4.menu.debug.on.build.flags.debug=-g @@ -2074,7 +2282,7 @@ adafruit_matrixportal_m4.build.board=MATRIXPORTAL_M4 adafruit_matrixportal_m4.build.core=arduino adafruit_matrixportal_m4.build.extra_flags=-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_MATRIXPORTAL_M4_EXPRESS -D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 {build.usb_flags} adafruit_matrixportal_m4.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld -adafruit_matrixportal_m4.build.openocdscript=openocd_scripts/matrixportal_m4.cfg +adafruit_matrixportal_m4.build.openocdscript=scripts/openocd/daplink_samd51.cfg adafruit_matrixportal_m4.build.variant=matrixportal_m4 adafruit_matrixportal_m4.build.variant_system_lib= adafruit_matrixportal_m4.build.vid=0x239A @@ -2083,11 +2291,13 @@ adafruit_matrixportal_m4.bootloader.tool=openocd adafruit_matrixportal_m4.bootloader.file=matrixportalM4/bootloader-matrixportal_m4.bin adafruit_matrixportal_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# Menu +# Menu: Cache adafruit_matrixportal_m4.menu.cache.on=Enabled adafruit_matrixportal_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_matrixportal_m4.menu.cache.off=Disabled adafruit_matrixportal_m4.menu.cache.off.build.cache_flags= + +# Menu: Speed adafruit_matrixportal_m4.menu.speed.120=120 MHz (standard) adafruit_matrixportal_m4.menu.speed.120.build.f_cpu=120000000L adafruit_matrixportal_m4.menu.speed.150=150 MHz (overclock) @@ -2096,6 +2306,8 @@ adafruit_matrixportal_m4.menu.speed.180=180 MHz (overclock) adafruit_matrixportal_m4.menu.speed.180.build.f_cpu=180000000L adafruit_matrixportal_m4.menu.speed.200=200 MHz (overclock) adafruit_matrixportal_m4.menu.speed.200.build.f_cpu=200000000L + +# Menu: Optimization adafruit_matrixportal_m4.menu.opt.small=Small (-Os) (standard) adafruit_matrixportal_m4.menu.opt.small.build.flags.optimize=-Os adafruit_matrixportal_m4.menu.opt.fast=Fast (-O2) @@ -2106,13 +2318,19 @@ adafruit_matrixportal_m4.menu.opt.fastest=Fastest (-Ofast) adafruit_matrixportal_m4.menu.opt.fastest.build.flags.optimize=-Ofast adafruit_matrixportal_m4.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops) adafruit_matrixportal_m4.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops + +# Menu: QSPI Speed adafruit_matrixportal_m4.menu.maxqspi.50=50 MHz (standard) adafruit_matrixportal_m4.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000 adafruit_matrixportal_m4.menu.maxqspi.fcpu=CPU Speed / 2 adafruit_matrixportal_m4.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({build.f_cpu}) + +# Menu: USB Stack adafruit_matrixportal_m4.menu.usbstack.arduino=Arduino adafruit_matrixportal_m4.menu.usbstack.tinyusb=TinyUSB adafruit_matrixportal_m4.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB + +# Menu: Debug adafruit_matrixportal_m4.menu.debug.off=Off adafruit_matrixportal_m4.menu.debug.on=On adafruit_matrixportal_m4.menu.debug.on.build.flags.debug=-g diff --git a/extras/makeboards.py b/extras/makeboards.py deleted file mode 100755 index 6517cf51..00000000 --- a/extras/makeboards.py +++ /dev/null @@ -1,303 +0,0 @@ -#!/usr/bin/env python3 - -print('''# Copyright (c) 2014-2015 Arduino LLC. All right reserved. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -''') - -mcu_dict = { - 'SAMD21': { - 'flash_size': 262144, - 'data_size': 0, - 'offset': '0x2000', - 'build_mcu': 'cortex-m0plus', - 'f_cpu': '48000000L', - 'extra_flags': '-DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS' - }, - - 'SAMD51': { - 'flash_size': 507904, # SAMD51P20A and SAMD51J20A has 1032192 - 'data_size': 0, - 'offset': '0x4000', - 'build_mcu': 'cortex-m4', - 'f_cpu': '120000000L', - 'extra_flags': '-D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' - }, - - 'SAME51': { - 'flash_size': 507904, - 'data_size': 0, - 'offset': '0x4000', - 'build_mcu': 'cortex-m4', - 'f_cpu': '120000000L', - 'extra_flags': '-D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' - }, -} - - -def build_header(mcu, name, vendor, product, vid, pid_list): - prettyname = vendor + " " + product + " ({})".format(mcu) - print() - print("# -----------------------------------") - print("# {}".format(prettyname)) - print("# -----------------------------------") - print("{}.name={}".format(name, prettyname)) - print() - - print("# VID/PID for Bootloader, Arduino & CircuitPython") - for i in range(len(pid_list)): - print("{}.vid.{}={}".format(name, i, vid)) - print("{}.pid.{}={}".format(name, i, pid_list[i])) - print() - -def build_upload(mcu, name, extra_flags): - print("# Upload") - print("{}.upload.tool=bossac18".format(name)) - print("{}.upload.protocol=sam-ba".format(name)) - - if ('SAMD51P20A' in extra_flags) or ('SAMD51J20A' in extra_flags): - flash_size = 1032192 - else: - flash_size = mcu_dict[mcu]['flash_size'] - print("{}.upload.maximum_size={}".format(name, flash_size)) - #print("{}.upload.maximum_data_size=%d".format((name, mcu_dict[mcu]['data_size'])) - - print("{}.upload.offset={}".format(name, mcu_dict[mcu]['offset'])) - print("{}.upload.use_1200bps_touch=true".format(name)) - print("{}.upload.wait_for_upload_port=true".format(name)) - print("{}.upload.native_usb=true".format(name)) - print() - -def build_build(mcu, name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader): - print("# Build") - print("{}.build.mcu={}".format(name, mcu_dict[mcu]['build_mcu'])) - print("{}.build.f_cpu={}".format(name, mcu_dict[mcu]['f_cpu'])) - print('{}.build.usb_product="{}"'.format(name, product)) - print('{}.build.usb_manufacturer="{}"'.format(name, vendor)) - print("{}.build.board={}".format(name, boarddefine)) - print("{}.build.core=arduino".format(name)) - - # Due to fastLed issue https://github.com/FastLED/FastLED/issues/1363 - # although there is a simple fix already https://github.com/FastLED/FastLED/pull/1424 - # fastLED is not well maintained, and we need to skip ARDUINO_SAMD_ZERO for affected boards - # in the long run we should move all of our libraries away from ARDUINO_SAMD_ZERO - if variant in [ 'gemma_m0', 'trinket_m0', 'qtpy_m0', 'itsybitsy_m0' ]: - print("{}.build.extra_flags={} -DARM_MATH_CM0PLUS {{build.usb_flags}}".format(name, extra_flags)) - else: - print("{}.build.extra_flags={} {} {{build.usb_flags}}".format(name, extra_flags, mcu_dict[mcu]['extra_flags'])) - - print("{}.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld".format(name)) - print("{}.build.openocdscript=openocd_scripts/{}.cfg".format(name, variant)) - print("{}.build.variant={}".format(name, variant)) - print("{}.build.variant_system_lib=".format(name)) - print("{}.build.vid={}".format(name, vid)) - print("{}.build.pid={}".format(name, pid_list[0])) - print("{}.bootloader.tool=openocd".format(name)) - print("{}.bootloader.file={}".format(name, bootloader)) - if (mcu == 'SAMD51' or mcu == 'SAME51'): - print('{}.compiler.arm.cmsis.ldflags="-L{{runtime.tools.CMSIS-5.4.0.path}}/CMSIS/Lib/GCC/" "-L{{build.variant.path}}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16'.format(name)) - print() - - -def build_menu(mcu, name): - print("# Menu") - if (mcu == 'SAMD51' or mcu == 'SAME51'): - print("{}.menu.cache.on=Enabled".format(name)) - print("{}.menu.cache.on.build.cache_flags=-DENABLE_CACHE".format(name)) - print("{}.menu.cache.off=Disabled".format(name)) - print("{}.menu.cache.off.build.cache_flags=".format(name)) - - print("{}.menu.speed.120=120 MHz (standard)".format(name)) - print("{}.menu.speed.120.build.f_cpu=120000000L".format(name)) - print("{}.menu.speed.150=150 MHz (overclock)".format(name)) - print("{}.menu.speed.150.build.f_cpu=150000000L".format(name)) - print("{}.menu.speed.180=180 MHz (overclock)".format(name)) - print("{}.menu.speed.180.build.f_cpu=180000000L".format(name)) - print("{}.menu.speed.200=200 MHz (overclock)".format(name)) - print("{}.menu.speed.200.build.f_cpu=200000000L".format(name)) - - print("{}.menu.opt.small=Small (-Os) (standard)".format(name)) - print("{}.menu.opt.small.build.flags.optimize=-Os".format(name)) - print("{}.menu.opt.fast=Fast (-O2)".format(name)) - print("{}.menu.opt.fast.build.flags.optimize=-O2".format(name)) - print("{}.menu.opt.faster=Faster (-O3)".format(name)) - print("{}.menu.opt.faster.build.flags.optimize=-O3".format(name)) - print("{}.menu.opt.fastest=Fastest (-Ofast)".format(name)) - print("{}.menu.opt.fastest.build.flags.optimize=-Ofast".format(name)) - print("{}.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops)".format(name)) - print("{}.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops".format(name)) - - if (mcu == 'SAMD51' or mcu == 'SAME51'): - print("{}.menu.maxqspi.50=50 MHz (standard)".format(name)) - print("{}.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000".format(name)) - print("{}.menu.maxqspi.fcpu=CPU Speed / 2".format(name)) - print("{}.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({{build.f_cpu}})".format(name)) - - print("{}.menu.usbstack.arduino=Arduino".format(name)) - print("{}.menu.usbstack.tinyusb=TinyUSB".format(name)) - print("{}.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB".format(name)) - - print("{}.menu.debug.off=Off".format(name)) - print("{}.menu.debug.on=On".format(name)) - print("{}.menu.debug.on.build.flags.debug=-g".format(name)) - print() - -def build_global_menu(): - print("menu.cache=Cache") - print("menu.speed=CPU Speed") - print("menu.opt=Optimize") - print("menu.maxqspi=Max QSPI") - print("menu.usbstack=USB Stack") - print("menu.debug=Debug") - -def make_board(mcu, name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader): - build_header(mcu, name, vendor, product, vid, pid_list) - build_upload(mcu, name, extra_flags) - build_build(mcu, name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader) - build_menu(mcu, name) - -build_global_menu() - -######################## SAMD21 - -make_board("SAMD21", "adafruit_feather_m0", "feather_m0", - "Adafruit", "Feather M0", "0x239A", ["0x800B", "0x000B", "0x0015"], - "SAMD_ZERO", "-D__SAMD21G18A__ -DADAFRUIT_FEATHER_M0", "featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_feather_m0_express", "feather_m0_express", - "Adafruit", "Feather M0 Express", "0x239A", ["0x801B", "0x001B"], - "SAMD_FEATHER_M0_EXPRESS", "-D__SAMD21G18A__ -DARDUINO_SAMD_FEATHER_M0 -DADAFRUIT_FEATHER_M0_EXPRESS", "featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_metro_m0", "metro_m0", - "Adafruit", "Metro M0 Express", "0x239A", ["0x8013", "0x0013"], - "SAMD_ZERO", "-D__SAMD21G18A__ -DADAFRUIT_METRO_M0_EXPRESS", "metroM0/bootloader-metro_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_circuitplayground_m0", "circuitplay", - "Adafruit", "Circuit Playground Express", "0x239A", ["0x8018", "0x0019"], - "SAMD_CIRCUITPLAYGROUND_EXPRESS", "-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_CIRCUITPLAYGROUND_M0", "circuitplayM0/bootloader-circuitplay_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_gemma_m0", "gemma_m0", - "Adafruit", "Gemma M0", "0x239A", ["0x801C", "0x001C"], - "GEMMA_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_GEMMA_M0", "gemmaM0/bootloader-gemma_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_trinket_m0", "trinket_m0", - "Adafruit", "Trinket M0", "0x239A", ["0x801E", "0x001E"], - "TRINKET_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_TRINKET_M0", "trinketm0/bootloader-trinket_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_qtpy_m0", "qtpy_m0", - "Adafruit", "QT Py M0", "0x239A", ["0x80CB", "0x00CB", "0x00CC"], - "QTPY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_QTPY_M0", "qtpyM0/bootloader-qtpy_m0.bin") - -make_board("SAMD21", "adafruit_neotrinkey_m0", "neotrinkey_m0", - "Adafruit", "NeoPixel Trinkey M0", "0x239A", ["0x80EF", "0x00EF", "0x80F0"], - "NEOTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_NEOTRINKEY_M0", "neotrinkey_m0/bootloader-neotrinkey_m0.bin") - -make_board("SAMD21", "adafruit_rotarytrinkey_m0", "rotarytrinkey_m0", - "Adafruit", "Rotary Trinkey M0", "0x239A", ["0x80FB", "0x00FB", "0x80FC"], - "ROTARYTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_ROTARYTRINKEY_M0", "rotarytrinkey_m0/bootloader-rotarytrinkey_m0.bin") - -make_board("SAMD21", "adafruit_neokeytrinkey_m0", "neokeytrinkey_m0", - "Adafruit", "NeoKey Trinkey M0", "0x239A", ["0x80FF", "0x00FF", "0x8100"], - "NEOKEYTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_NEOKEYTRINKEY_M0", "neokeytrinkey_m0/bootloader-neokeytrinkey_m0.bin") - -make_board("SAMD21", "adafruit_slidetrinkey_m0", "slidetrinkey_m0", - "Adafruit", "Slide Trinkey M0", "0x239A", ["0x8101", "0x0101", "0x8102"], - "SLIDETRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_SLIDETRINKEY_M0", "slidetrinkey_m0/bootloader-slidetrinkey_m0.bin") - -make_board("SAMD21", "adafruit_proxlighttrinkey_m0", "proxlighttrinkey_m0", - "Adafruit", "ProxLight Trinkey M0", "0x239A", ["0x8103", "0x0103", "0x8104"], - "PROXLIGHTTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_PROXLIGHTTRINKEY_M0", "proxlighttrinkey_m0/bootloader-proxlighttrinkey_m0.bin") - -make_board("SAMD21", "adafruit_itsybitsy_m0", "itsybitsy_m0", - "Adafruit", "ItsyBitsy M0 Express", "0x239A", ["0x800F", "0x000F", "0x8012"], - "ITSYBITSY_M0", "-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_ITSYBITSY_M0", "itsybitsyM0/bootloader-itsybitsy_m0-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_pirkey", "pirkey", - "Adafruit", "pIRKey", "0x239A", ["0x8027", "0x0027", "0x8028"], - "PIRKEY", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_PIRKEY", "pirkey/bootloader-pirkey-v2.0.0-adafruit.5.bin") - -make_board("SAMD21", "adafruit_hallowing", "hallowing_m0_express", - "Adafruit", "Hallowing M0", "0x239A", ["0xDEAD", "0xD1ED", "0xB000"], - "SAMD_HALLOWING", "-D__SAMD21G18A__ -DCRYSTALLESS -DARDUINO_SAMD_HALLOWING_M0 -DADAFRUIT_HALLOWING", "hallowingM0/bootloader-hallowing_m0-v2.0.0-adafruit.0-21-g887cc30.bin") - -make_board("SAMD21", "adafruit_crickit_m0", "crickit_m0", - "Adafruit", "Crickit M0", "0x239A", ["0x802D", "0x002D", "0x802D"], - "CRICKIT_M0", "-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_CRICKIT_M0", "crickit/samd21_sam_ba.bin") - -make_board("SAMD21", "adafruit_blm_badge", "blm_badge", - "Adafruit", "BLM Badge", "0x239A", ["0x80BF", "0x00BF", "0x80C0"], - "BLM_BADGE_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_BLM_BADGE", "blmbadge/bootloader-blm_badge.bin") - -######################## SAMD51 - -make_board("SAMD51", "adafruit_metro_m4", "metro_m4", - "Adafruit", "Metro M4", "0x239A", ["0x8020", "0x0020", "0x8021", "0x0021"], - "METRO_M4", "-D__SAMD51J19A__ -DADAFRUIT_METRO_M4_EXPRESS", "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_grandcentral_m4", "grand_central_m4", - "Adafruit", "Grand Central M4", "0x239A", ["0x8031", "0x0031", "0x0032"], - "GRAND_CENTRAL_M4", "-D__SAMD51P20A__ -DADAFRUIT_GRAND_CENTRAL_M4", "grand_central_m4/bootloader-grandcentral_m4.bin") - -make_board("SAMD51", "adafruit_itsybitsy_m4", "itsybitsy_m4", - "Adafruit", "ItsyBitsy M4", "0x239A", ["0x802B", "0x002B"], - "ITSYBITSY_M4", "-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_ITSYBITSY_M4_EXPRESS", "itsybitsyM4/bootloader-itsybitsy_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_feather_m4", "feather_m4", - "Adafruit", "Feather M4 Express", "0x239A", ["0x8022", "0x0022", "0x8026"], - "FEATHER_M4", "-D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS", "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin") - -make_board("SAME51", "adafruit_feather_m4_can", "feather_m4_can", - "Adafruit", "Feather M4 CAN", "0x239A", ["0x80CD", "0x00CD"], - "FEATHER_M4_CAN", "-D__SAME51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -DADAFRUIT_FEATHER_M4_CAN", "featherM4/bootloader-feather_m4_express-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_trellis_m4", "trellis_m4", - "Adafruit", "Trellis M4", "0x239A", ["0x802F", "0x002F", "0x0030"], - "TRELLIS_M4", "-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_TRELLIS_M4_EXPRESS", "trellisM4/bootloader-trellis_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_pyportal_m4", "pyportal_m4", - "Adafruit", "PyPortal M4", "0x239A", ["0x8035", "0x0035", "0x8036"], - "PYPORTAL_M4", "-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYPORTAL", "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_pyportal_m4_titano", "pyportal_m4_titano", - "Adafruit", "PyPortal M4 Titano", "0x239A", ["0x8053", "0x8053"], - "PYPORTAL_M4_TITANO", "-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYPORTAL_M4_TITANO", "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_pybadge_m4", "pybadge_m4", - "Adafruit", "pyBadge M4 Express", "0x239A", ["0x8033", "0x0033", "0x8034", "0x0034"], - "PYBADGE_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_M4_EXPRESS", "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_metro_m4_airliftlite", "metro_m4_airlift", - "Adafruit", "Metro M4 AirLift Lite", "0x239A", ["0x8037", "0x0037"], - "METRO_M4_AIRLIFT_LITE", "-D__SAMD51J19A__ -DADAFRUIT_METRO_M4_AIRLIFT_LITE", "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_pygamer_m4", "pygamer_m4", - "Adafruit", "PyGamer M4 Express", "0x239A", ["0x803D", "0x003D", "0x803E"], - "PYGAMER_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYGAMER_M4_EXPRESS", "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_pybadge_airlift_m4", "pybadge_airlift_m4", - "Adafruit", "pyBadge AirLift M4", "0x239A", ["0x8043", "0x0043", "0x8044"], - "PYBADGE_AIRLIFT_M4", "-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_AIRLIFT_M4", "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_monster_m4sk", "monster_m4sk", - "Adafruit", "MONSTER M4SK", "0x239A", ["0x8047", "0x0047", "0x8048"], - "MONSTER_M4SK", "-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_MONSTER_M4SK_EXPRESS", "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_hallowing_m4", "hallowing_m4", - "Adafruit", "Hallowing M4", "0x239A", ["0x8049", "0x0049", "0x804A"], - "HALLOWING_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_HALLOWING_M4_EXPRESS", "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin") - -make_board("SAMD51", "adafruit_matrixportal_m4", "matrixportal_m4", - "Adafruit", "Matrix Portal M4", "0x239A", ["0x80C9", "0x00C9", "0x80CA"], - "MATRIXPORTAL_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_MATRIXPORTAL_M4_EXPRESS", "matrixportalM4/bootloader-matrixportal_m4.bin") diff --git a/platform.txt b/platform.txt index 284b6526..b240e537 100644 --- a/platform.txt +++ b/platform.txt @@ -173,13 +173,13 @@ tools.bossacI.upload.network_pattern="{network_cmd}" -address {serial.port} -por # OpenOCD sketch upload # -tools.openocd.path={runtime.tools.openocd-0.10.0-arduino7.path} +tools.openocd.path={runtime.tools.openocd-0.11.0-arduino2.path} tools.openocd.cmd=bin/openocd tools.openocd.cmd.windows=bin/openocd.exe tools.openocd.upload.params.verbose=-d2 tools.openocd.upload.params.quiet=-d0 -tools.openocd.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.bin} verify reset 0x2000; shutdown" +tools.openocd.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.bin} verify reset 0x2000; shutdown" tools.openocd.network_cmd={runtime.tools.arduinoOTA.path}/bin/arduinoOTA tools.openocd.upload.network_pattern={network_cmd} -address {serial.port} -port 65280 -username arduino -password "{network.password}" -sketch "{build.path}/{build.project_name}.bin" -upload /sketch -b @@ -187,7 +187,7 @@ tools.openocd.upload.network_pattern={network_cmd} -address {serial.port} -port # Program flashes the binary at 0x0000, so use the linker script without_bootloader tools.openocd.program.params.verbose=-d2 tools.openocd.program.params.quiet=-d0 -tools.openocd.program.pattern="{path}/{cmd}" {program.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.elf} verify reset; shutdown" +tools.openocd.program.pattern="{path}/{cmd}" {program.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.elf} verify reset; shutdown" tools.openocd.erase.params.verbose=-d3 tools.openocd.erase.params.quiet=-d0 @@ -195,25 +195,25 @@ tools.openocd.erase.pattern= tools.openocd.bootloader.params.verbose=-d2 tools.openocd.bootloader.params.quiet=-d0 -tools.openocd.bootloader.pattern="{path}/{cmd}" {bootloader.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}" -c "telnet_port disabled; init; halt; at91samd bootloader 0; program {{runtime.platform.path}/bootloaders/{bootloader.file}} verify reset; shutdown" +tools.openocd.bootloader.pattern="{path}/{cmd}" {bootloader.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/{build.openocdscript}" -c "telnet_port disabled; init; halt; at91samd bootloader 0; program {{runtime.platform.path}/bootloaders/{bootloader.file}} verify reset; shutdown" # # OpenOCD sketch upload - version with configurable bootloader size # FIXME: this programmer is a workaround for default options being overwritten by uploadUsingPreferences # -tools.openocd-withbootsize.path={runtime.tools.openocd-0.10.0-arduino7.path} +tools.openocd-withbootsize.path={runtime.tools.openocd-0.11.0-arduino2.path} tools.openocd-withbootsize.cmd=bin/openocd tools.openocd-withbootsize.cmd.windows=bin/openocd.exe tools.openocd-withbootsize.upload.params.verbose=-d2 tools.openocd-withbootsize.upload.params.quiet=-d0 -tools.openocd-withbootsize.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.bin} verify reset {bootloader.size}; shutdown" +tools.openocd-withbootsize.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.bin} verify reset {bootloader.size}; shutdown" # Program flashes the binary at 0x0000, so use the linker script without_bootloader tools.openocd-withbootsize.program.params.verbose=-d2 tools.openocd-withbootsize.program.params.quiet=-d0 -tools.openocd-withbootsize.program.pattern="{path}/{cmd}" {program.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.elf} verify reset; shutdown" +tools.openocd-withbootsize.program.pattern="{path}/{cmd}" {program.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/{build.openocdscript}" -c "telnet_port disabled; program {{build.path}/{build.project_name}.elf} verify reset; shutdown" tools.openocd-withbootsize.erase.params.verbose=-d3 tools.openocd-withbootsize.erase.params.quiet=-d0 @@ -221,4 +221,28 @@ tools.openocd-withbootsize.erase.pattern= tools.openocd-withbootsize.bootloader.params.verbose=-d2 tools.openocd-withbootsize.bootloader.params.quiet=-d0 -tools.openocd-withbootsize.bootloader.pattern="{path}/{cmd}" {bootloader.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}" -c "telnet_port disabled; init; halt; at91samd bootloader 0; program {{runtime.platform.path}/bootloaders/{bootloader.file}} verify reset; shutdown" +tools.openocd-withbootsize.bootloader.pattern="{path}/{cmd}" {bootloader.verbose} -s "{path}/share/openocd/scripts/" -f "{runtime.platform.path}/{build.openocdscript}" -c "telnet_port disabled; init; halt; at91samd bootloader 0; program {{runtime.platform.path}/bootloaders/{bootloader.file}} verify reset; shutdown" + +# ---------------------------------------- +# Debugger configuration (general options) +# ---------------------------------------- +# EXPERIMENTAL feature: +# - this is alpha and may be subject to change without notice +debug.executable={build.path}/{build.project_name}.elf +debug.toolchain=gcc +debug.toolchain.path={runtime.tools.arm-none-eabi-gcc.path}/bin/ +debug.toolchain.prefix=arm-none-eabi- + +debug.server=openocd +debug.server.openocd.path={runtime.tools.openocd-0.11.0-arduino2.path}/bin/openocd +debug.server.openocd.scripts_dir={runtime.tools.openocd-0.11.0-arduino2.path}/share/openocd/scripts/ +debug.server.openocd.script={runtime.platform.path}/{build.openocdscript} + +# JLinkServer is not supported by arduino-cli yet +# https://github.com/arduino/arduino-cli/blob/eca9d9a8f00582a08fadea8a4b7e3ef01b40d082/commands/debug/debug.go#L160 +# use debug_custom.json to run JLinkGDBServer instead +# https://docs.arduino.cc/tutorials/mkr-wifi-1010/mkr-jlink-setup +#debug.server=jlink +#debug.server.jlink.path=JLinkGDBServer +#debug.server.jlink.device=ATSAMD21G18 +#debug.server.jlink.script={runtime.platform.path}/{build.openocdscript} diff --git a/scripts/jlink/samd21/debug_custom.json b/scripts/jlink/samd21/debug_custom.json new file mode 100644 index 00000000..f5b62524 --- /dev/null +++ b/scripts/jlink/samd21/debug_custom.json @@ -0,0 +1,6 @@ +{ + "servertype": "jlink", + "device": "ATSAMD21G18A", + "interface": "SWD", + "serverpath": "JLinkGDBServer" +} diff --git a/scripts/jlink/samd51/debug_custom.json b/scripts/jlink/samd51/debug_custom.json new file mode 100644 index 00000000..13f57395 --- /dev/null +++ b/scripts/jlink/samd51/debug_custom.json @@ -0,0 +1,6 @@ +{ + "servertype": "jlink", + "device": "ATSAMD51G18", + "interface": "SWD", + "serverpath": "JLinkGDBServer" +} diff --git a/scripts/openocd/daplink_samd21.cfg b/scripts/openocd/daplink_samd21.cfg new file mode 100644 index 00000000..84c41d30 --- /dev/null +++ b/scripts/openocd/daplink_samd21.cfg @@ -0,0 +1,27 @@ +# +# Arduino Zero OpenOCD script. +# +# Copyright (c) 2014-2015 Arduino LLC. All right reserved. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +source [find interface/cmsis-dap.cfg] +transport select swd + +# chip name +set CHIPNAME samd21 + +source [find target/at91samdXX.cfg] diff --git a/scripts/openocd/daplink_samd51.cfg b/scripts/openocd/daplink_samd51.cfg new file mode 100644 index 00000000..f87fdeeb --- /dev/null +++ b/scripts/openocd/daplink_samd51.cfg @@ -0,0 +1,27 @@ +# +# Arduino Zero OpenOCD script. +# +# Copyright (c) 2014-2015 Arduino LLC. All right reserved. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +source [find interface/cmsis-dap.cfg] +transport select swd + +# chip name +set CHIPNAME samd51 + +source [find target/atsame5x.cfg] diff --git a/scripts/openocd/jlink_samd21.cfg b/scripts/openocd/jlink_samd21.cfg new file mode 100644 index 00000000..8fbe21bb --- /dev/null +++ b/scripts/openocd/jlink_samd21.cfg @@ -0,0 +1,27 @@ +# +# Arduino Zero OpenOCD script. +# +# Copyright (c) 2014-2015 Arduino LLC. All right reserved. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +source [find interface/jlink.cfg] +transport select swd + +# chip name +set CHIPNAME samd21 + +source [find target/at91samdXX.cfg] diff --git a/scripts/openocd/jlink_samd51.cfg b/scripts/openocd/jlink_samd51.cfg new file mode 100644 index 00000000..fd398ef6 --- /dev/null +++ b/scripts/openocd/jlink_samd51.cfg @@ -0,0 +1,27 @@ +# +# Arduino Zero OpenOCD script. +# +# Copyright (c) 2014-2015 Arduino LLC. All right reserved. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +source [find interface/jlink.cfg] +transport select swd + +# chip name +set CHIPNAME samd51 + +source [find target/atsame5x.cfg] diff --git a/extras/build_all.py b/tools/build_all.py similarity index 100% rename from extras/build_all.py rename to tools/build_all.py diff --git a/tools/makeboards.py b/tools/makeboards.py new file mode 100755 index 00000000..18cb8ef3 --- /dev/null +++ b/tools/makeboards.py @@ -0,0 +1,389 @@ +#!/usr/bin/env python3 + +print('''# Copyright (c) 2014-2015 Arduino LLC. All right reserved. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +''') + +mcu_dict = { + 'SAMD21': { + 'flash_size': 262144, + 'data_size': 0, + 'offset': '0x2000', + 'build_mcu': 'cortex-m0plus', + 'f_cpu': '48000000L', + 'extra_flags': '-DARDUINO_SAMD_ZERO -DARM_MATH_CM0PLUS', + 'openocdscript': 'scripts/openocd/daplink_samd21.cfg', + }, + + 'SAMD51': { + 'flash_size': 507904, # SAMD51P20A and SAMD51J20A has 1032192 + 'data_size': 0, + 'offset': '0x4000', + 'build_mcu': 'cortex-m4', + 'f_cpu': '120000000L', + 'extra_flags': '-D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16', + 'openocdscript': 'scripts/openocd/daplink_samd51.cfg', + }, + + 'SAME51': { + 'flash_size': 507904, + 'data_size': 0, + 'offset': '0x4000', + 'build_mcu': 'cortex-m4', + 'f_cpu': '120000000L', + 'extra_flags': '-D__SAMD51__ -D__FPU_PRESENT -DARM_MATH_CM4 -mfloat-abi=hard -mfpu=fpv4-sp-d16', + 'openocdscript': 'scripts/openocd/daplink_samd51.cfg', + }, +} + + +def build_header(mcu, name, vendor, product, vid, pid_list): + prettyname = f"{vendor} {product} ({mcu})" + print() + print("# -----------------------------------") + print(f"# {prettyname}") + print("# -----------------------------------") + print(f"{name}.name={prettyname}") + print() + + print("# VID/PID for Bootloader, Arduino & CircuitPython") + for i in range(len(pid_list)): + print(f"{name}.vid.{i}={vid}") + print(f"{name}.pid.{i}={pid_list[i]}") + print() + + +def build_upload(mcu, name, extra_flags): + print("# Upload") + print(f"{name}.upload.tool=bossac18") + print(f"{name}.upload.protocol=sam-ba") + + if ('SAMD51P20A' in extra_flags) or ('SAMD51J20A' in extra_flags): + flash_size = 1032192 + else: + flash_size = mcu_dict[mcu]['flash_size'] + print(f"{name}.upload.maximum_size={flash_size}") + #print(f"{name}.upload.maximum_data_size={mcu_dict[mcu]['data_size']}") + + print(f"{name}.upload.offset={mcu_dict[mcu]['offset']}") + print(f"{name}.upload.use_1200bps_touch=true") + print(f"{name}.upload.wait_for_upload_port=true") + print(f"{name}.upload.native_usb=true") + print() + + +def build_build(mcu, name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader): + mcu_properties = mcu_dict[mcu] + + print("# Build") + print(f"{name}.build.mcu={mcu_properties['build_mcu']}") + print(f"{name}.build.f_cpu={mcu_properties['f_cpu']}") + print(f'{name}.build.usb_product="{product}"') + print(f'{name}.build.usb_manufacturer="{vendor}"') + print(f"{name}.build.board={boarddefine}") + print(f"{name}.build.core=arduino") + + # Due to fastLed issue https://github.com/FastLED/FastLED/issues/1363 + # although there is a simple fix already https://github.com/FastLED/FastLED/pull/1424 + # fastLED is not well maintained, and we need to skip ARDUINO_SAMD_ZERO for affected boards + # in the long run we should move all of our libraries away from ARDUINO_SAMD_ZERO + if variant in [ 'gemma_m0', 'trinket_m0', 'qtpy_m0', 'itsybitsy_m0' ]: + print(f"{name}.build.extra_flags={extra_flags} -DARM_MATH_CM0PLUS {{build.usb_flags}}") + else: + print(f"{name}.build.extra_flags={extra_flags} {mcu_properties['extra_flags']} {{build.usb_flags}}") + + print(f"{name}.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld") + print(f"{name}.build.openocdscript={mcu_properties['openocdscript']}") + print(f"{name}.build.variant={variant}") + print(f"{name}.build.variant_system_lib=") + print(f"{name}.build.vid={vid}") + print(f"{name}.build.pid={pid_list[0]}") + print(f"{name}.bootloader.tool=openocd") + print(f"{name}.bootloader.file={bootloader}") + if (mcu == 'SAMD51' or mcu == 'SAME51'): + print(f'{name}.compiler.arm.cmsis.ldflags="-L{{runtime.tools.CMSIS-5.4.0.path}}/CMSIS/Lib/GCC/" "-L{{build.variant.path}}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16') + print() + + +def build_menu(mcu, name): + if (mcu == 'SAMD51' or mcu == 'SAME51'): + print("# Menu: Cache") + print(f"{name}.menu.cache.on=Enabled") + print(f"{name}.menu.cache.on.build.cache_flags=-DENABLE_CACHE") + print(f"{name}.menu.cache.off=Disabled") + print(f"{name}.menu.cache.off.build.cache_flags=") + print() + + print("# Menu: Speed") + print(f"{name}.menu.speed.120=120 MHz (standard)") + print(f"{name}.menu.speed.120.build.f_cpu=120000000L") + print(f"{name}.menu.speed.150=150 MHz (overclock)") + print(f"{name}.menu.speed.150.build.f_cpu=150000000L") + print(f"{name}.menu.speed.180=180 MHz (overclock)") + print(f"{name}.menu.speed.180.build.f_cpu=180000000L") + print(f"{name}.menu.speed.200=200 MHz (overclock)") + print(f"{name}.menu.speed.200.build.f_cpu=200000000L") + print() + + print("# Menu: Optimization") + print(f"{name}.menu.opt.small=Small (-Os) (standard)") + print(f"{name}.menu.opt.small.build.flags.optimize=-Os") + print(f"{name}.menu.opt.fast=Fast (-O2)") + print(f"{name}.menu.opt.fast.build.flags.optimize=-O2") + print(f"{name}.menu.opt.faster=Faster (-O3)") + print(f"{name}.menu.opt.faster.build.flags.optimize=-O3") + print(f"{name}.menu.opt.fastest=Fastest (-Ofast)") + print(f"{name}.menu.opt.fastest.build.flags.optimize=-Ofast") + print(f"{name}.menu.opt.dragons=Here be dragons (-Ofast -funroll-loops)") + print(f"{name}.menu.opt.dragons.build.flags.optimize=-Ofast -funroll-loops") + print() + + if (mcu == 'SAMD51' or mcu == 'SAME51'): + print("# Menu: QSPI Speed") + print(f"{name}.menu.maxqspi.50=50 MHz (standard)") + print(f"{name}.menu.maxqspi.50.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=50000000") + print(f"{name}.menu.maxqspi.fcpu=CPU Speed / 2") + print(f"{name}.menu.maxqspi.fcpu.build.flags.maxqspi=-DVARIANT_QSPI_BAUD_DEFAULT=({{build.f_cpu}})") + print() + + print("# Menu: USB Stack") + print(f"{name}.menu.usbstack.arduino=Arduino") + print(f"{name}.menu.usbstack.tinyusb=TinyUSB") + print(f"{name}.menu.usbstack.tinyusb.build.flags.usbstack=-DUSE_TINYUSB") + print() + + print("# Menu: Debug") + print(f"{name}.menu.debug.off=Off") + print(f"{name}.menu.debug.on=On") + print(f"{name}.menu.debug.on.build.flags.debug=-g") + print() + + # comment out for now since debugger selection does not work, debug does not pickup the right openocd script + # print("# Menu: Debugger") + # script_mcu = 'samd21' if mcu == 'SAMD21' else 'samd51' + # print(f"{name}.menu.debugger.daplink=CMSIS-DAP (DAPLink)") + # print(f"{name}.menu.debugger.daplink.build.openocdscript=scripts/openocd/daplink_{script_mcu}.cfg") + # print(f"{name}.menu.debugger.jlink=J-Link") + # print(f"{name}.menu.debugger.jlink.build.openocdscript=scripts/openocd/jlink_{script_mcu}.cfg") + + +def build_global_menu(): + print("menu.cache=Cache") + print("menu.speed=CPU Speed") + print("menu.opt=Optimize") + print("menu.maxqspi=Max QSPI") + print("menu.usbstack=USB Stack") + print("menu.debug=Debug") + #print("menu.debugger=Debugger") + + +def make_board(mcu, name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader): + build_header(mcu, name, vendor, product, vid, pid_list) + build_upload(mcu, name, extra_flags) + build_build(mcu, name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader) + build_menu(mcu, name) + + +# ------------------------------ +# main +# ------------------------------ + +build_global_menu() + +# ------------------------------ +# SAM D21 (M0) +# ------------------------------ + +# name, variant, vendor, product, vid, pid_list, boarddefine, extra_flags, bootloader +# try to sort in Alphabetical order +d21_board_list = [ + ["adafruit_feather_m0", "feather_m0", "Adafruit", "Feather M0", + "0x239A", ["0x800B", "0x000B", "0x0015"], + "SAMD_ZERO", "-D__SAMD21G18A__ -DADAFRUIT_FEATHER_M0", + "featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_feather_m0_express", "feather_m0_express", "Adafruit", "Feather M0 Express", + "0x239A", ["0x801B", "0x001B"], + "SAMD_FEATHER_M0_EXPRESS", "-D__SAMD21G18A__ -DARDUINO_SAMD_FEATHER_M0 -DADAFRUIT_FEATHER_M0_EXPRESS", + "featherM0/bootloader-feather_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_metro_m0", "metro_m0", "Adafruit", "Metro M0 Express", + "0x239A", ["0x8013", "0x0013"], + "SAMD_ZERO", "-D__SAMD21G18A__ -DADAFRUIT_METRO_M0_EXPRESS", + "metroM0/bootloader-metro_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_circuitplayground_m0", "circuitplay", "Adafruit", "Circuit Playground Express", + "0x239A", ["0x8018", "0x0019"], + "SAMD_CIRCUITPLAYGROUND_EXPRESS", "-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_CIRCUITPLAYGROUND_M0", + "circuitplayM0/bootloader-circuitplay_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_gemma_m0", "gemma_m0", "Adafruit", "Gemma M0", + "0x239A", ["0x801C", "0x001C"], + "GEMMA_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_GEMMA_M0", + "gemmaM0/bootloader-gemma_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_trinket_m0", "trinket_m0", "Adafruit", "Trinket M0", + "0x239A", ["0x801E", "0x001E"], + "TRINKET_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_TRINKET_M0", + "trinketm0/bootloader-trinket_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_qtpy_m0", "qtpy_m0", "Adafruit", "QT Py M0", + "0x239A", ["0x80CB", "0x00CB", "0x00CC"], + "QTPY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_QTPY_M0", + "qtpyM0/bootloader-qtpy_m0.bin"], + + ["adafruit_neotrinkey_m0", "neotrinkey_m0", "Adafruit", "NeoPixel Trinkey M0", + "0x239A", ["0x80EF", "0x00EF", "0x80F0"], + "NEOTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_NEOTRINKEY_M0", + "neotrinkey_m0/bootloader-neotrinkey_m0.bin"], + + ["adafruit_rotarytrinkey_m0", "rotarytrinkey_m0", "Adafruit", "Rotary Trinkey M0", + "0x239A", ["0x80FB", "0x00FB", "0x80FC"], + "ROTARYTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_ROTARYTRINKEY_M0", + "rotarytrinkey_m0/bootloader-rotarytrinkey_m0.bin"], + + ["adafruit_neokeytrinkey_m0", "neokeytrinkey_m0", "Adafruit", "NeoKey Trinkey M0", + "0x239A", ["0x80FF", "0x00FF", "0x8100"], + "NEOKEYTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_NEOKEYTRINKEY_M0", + "neokeytrinkey_m0/bootloader-neokeytrinkey_m0.bin"], + + ["adafruit_slidetrinkey_m0", "slidetrinkey_m0", "Adafruit", "Slide Trinkey M0", + "0x239A", ["0x8101", "0x0101", "0x8102"], + "SLIDETRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_SLIDETRINKEY_M0", + "slidetrinkey_m0/bootloader-slidetrinkey_m0.bin"], + + ["adafruit_proxlighttrinkey_m0", "proxlighttrinkey_m0", "Adafruit", "ProxLight Trinkey M0", + "0x239A", ["0x8103", "0x0103", "0x8104"], + "PROXLIGHTTRINKEY_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_PROXLIGHTTRINKEY_M0", + "proxlighttrinkey_m0/bootloader-proxlighttrinkey_m0.bin"], + + ["adafruit_itsybitsy_m0", "itsybitsy_m0", "Adafruit", "ItsyBitsy M0 Express", + "0x239A", ["0x800F", "0x000F", "0x8012"], + "ITSYBITSY_M0", "-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_ITSYBITSY_M0", + "itsybitsyM0/bootloader-itsybitsy_m0-v2.0.0-adafruit.5.bin"], + + ["adafruit_pirkey", "pirkey", "Adafruit", "pIRKey", + "0x239A", ["0x8027", "0x0027", "0x8028"], + "PIRKEY", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_PIRKEY", + "pirkey/bootloader-pirkey-v2.0.0-adafruit.5.bin"], + + ["adafruit_hallowing", "hallowing_m0_express", "Adafruit", "Hallowing M0", + "0x239A", ["0xDEAD", "0xD1ED", "0xB000"], + "SAMD_HALLOWING", "-D__SAMD21G18A__ -DCRYSTALLESS -DARDUINO_SAMD_HALLOWING_M0 -DADAFRUIT_HALLOWING", + "hallowingM0/bootloader-hallowing_m0-v2.0.0-adafruit.0-21-g887cc30.bin"], + + ["adafruit_crickit_m0", "crickit_m0", "Adafruit", "Crickit M0", + "0x239A", ["0x802D", "0x002D", "0x802D"], + "CRICKIT_M0", "-D__SAMD21G18A__ -DCRYSTALLESS -DADAFRUIT_CRICKIT_M0", + "crickit/samd21_sam_ba.bin"], + + ["adafruit_blm_badge", "blm_badge", "Adafruit", "BLM Badge", + "0x239A", ["0x80BF", "0x00BF", "0x80C0"], + "BLM_BADGE_M0", "-D__SAMD21E18A__ -DCRYSTALLESS -DADAFRUIT_BLM_BADGE", + "blmbadge/bootloader-blm_badge.bin"], +] + +for b in d21_board_list: + make_board("SAMD21", b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]) + + +# ---------------------------- +# SAM D51 and E51 (M4) +# ---------------------------- + +d51_board_list = [ + ["adafruit_metro_m4", "metro_m4", "Adafruit", "Metro M4", + "0x239A", ["0x8020", "0x0020", "0x8021", "0x0021"], + "METRO_M4", "-D__SAMD51J19A__ -DADAFRUIT_METRO_M4_EXPRESS", + "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_grandcentral_m4", "grand_central_m4", "Adafruit", "Grand Central M4", + "0x239A", ["0x8031", "0x0031", "0x0032"], + "GRAND_CENTRAL_M4", "-D__SAMD51P20A__ -DADAFRUIT_GRAND_CENTRAL_M4", + "grand_central_m4/bootloader-grandcentral_m4.bin"], + + ["adafruit_itsybitsy_m4", "itsybitsy_m4", "Adafruit", "ItsyBitsy M4", + "0x239A", ["0x802B", "0x002B"], + "ITSYBITSY_M4", "-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_ITSYBITSY_M4_EXPRESS", + "itsybitsyM4/bootloader-itsybitsy_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_feather_m4", "feather_m4", "Adafruit", "Feather M4 Express", + "0x239A", ["0x8022", "0x0022", "0x8026"], + "FEATHER_M4", "-D__SAMD51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS", + "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_feather_m4_can", "feather_m4_can", "Adafruit", "Feather M4 CAN", + "0x239A", ["0x80CD", "0x00CD"], + "FEATHER_M4_CAN", "-D__SAME51J19A__ -DADAFRUIT_FEATHER_M4_EXPRESS -DADAFRUIT_FEATHER_M4_CAN", + "featherM4/bootloader-feather_m4_express-v2.0.0-adafruit.5.bin"], + + ["adafruit_trellis_m4", "trellis_m4", + "Adafruit", "Trellis M4", "0x239A", ["0x802F", "0x002F", "0x0030"], + "TRELLIS_M4", "-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_TRELLIS_M4_EXPRESS", + "trellisM4/bootloader-trellis_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_pyportal_m4", "pyportal_m4", "Adafruit", "PyPortal M4", + "0x239A", ["0x8035", "0x0035", "0x8036"], + "PYPORTAL_M4", "-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYPORTAL", + "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_pyportal_m4_titano", "pyportal_m4_titano", "Adafruit", "PyPortal M4 Titano", + "0x239A", ["0x8053", "0x8053"], + "PYPORTAL_M4_TITANO", "-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYPORTAL_M4_TITANO", + "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_pybadge_m4", "pybadge_m4", "Adafruit", "pyBadge M4 Express", + "0x239A", ["0x8033", "0x0033", "0x8034", "0x0034"], + "PYBADGE_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_M4_EXPRESS", + "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_metro_m4_airliftlite", "metro_m4_airlift", "Adafruit", "Metro M4 AirLift Lite", + "0x239A", ["0x8037", "0x0037"], + "METRO_M4_AIRLIFT_LITE", "-D__SAMD51J19A__ -DADAFRUIT_METRO_M4_AIRLIFT_LITE", + "metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_pygamer_m4", "pygamer_m4", "Adafruit", "PyGamer M4 Express", + "0x239A", ["0x803D", "0x003D", "0x803E"], + "PYGAMER_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_PYGAMER_M4_EXPRESS", + "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_pybadge_airlift_m4", "pybadge_airlift_m4", "Adafruit", "pyBadge AirLift M4", + "0x239A", ["0x8043", "0x0043", "0x8044"], + "PYBADGE_AIRLIFT_M4", "-D__SAMD51J20A__ -DCRYSTALLESS -DADAFRUIT_PYBADGE_AIRLIFT_M4", + "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_monster_m4sk", "monster_m4sk", "Adafruit", "MONSTER M4SK", + "0x239A", ["0x8047", "0x0047", "0x8048"], + "MONSTER_M4SK", "-D__SAMD51G19A__ -DCRYSTALLESS -DADAFRUIT_MONSTER_M4SK_EXPRESS", + "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_hallowing_m4", "hallowing_m4", "Adafruit", "Hallowing M4", + "0x239A", ["0x8049", "0x0049", "0x804A"], + "HALLOWING_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_HALLOWING_M4_EXPRESS", + "featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin"], + + ["adafruit_matrixportal_m4", "matrixportal_m4", "Adafruit", "Matrix Portal M4", + "0x239A", ["0x80C9", "0x00C9", "0x80CA"], + "MATRIXPORTAL_M4", "-D__SAMD51J19A__ -DCRYSTALLESS -DADAFRUIT_MATRIXPORTAL_M4_EXPRESS", + "matrixportalM4/bootloader-matrixportal_m4.bin"], +] + +for b in d51_board_list: + # M4 CAN is the only SAME51 + if b[0] == "adafruit_feather_m4_can": + make_board("SAME51", b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]) + else: + make_board("SAMD51", b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8])