Skip to content

Update boards Electronic Cats Mbed Core #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
222 changes: 221 additions & 1 deletion boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -848,4 +848,224 @@ giga.debug.server.openocd.scripts.1={programmer.transport_script}
giga.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg
giga.debug.cortex-debug.custom.request=attach
giga.menu.target_core.cm7.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd
giga.menu.target_core.cm4.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM4.svd
giga.menu.target_core.cm4.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM4.svd

##############################################################
# BOMBER CAT
##############################################################

bombercat.name=Electronic Cats BomberCat
bombercat.build.core=arduino
bombercat.build.crossprefix=arm-none-eabi-
bombercat.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
bombercat.build.variant=BOMBERCAT
bombercat.build.mcu=cortex-m0plus
bombercat.build.extra_flags=
bombercat.build.fpu=
bombercat.build.float-abi=
bombercat.build.architecture=cortex-m0plus
bombercat.build.board=BOMBERCAT
bombercat.build.ldscript=linker_script.ld
bombercat.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
bombercat.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040 -DARDUINO_NANO_RP2040_CONNECT
bombercat.compiler.mbed.defines={build.variant.path}/defines.txt
bombercat.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
bombercat.compiler.mbed.cflags={build.variant.path}/cflags.txt
bombercat.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
bombercat.compiler.mbed.includes={build.variant.path}/includes.txt
bombercat.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
bombercat.compiler.mbed="{build.variant.path}/libs/libmbed.a"
bombercat.vid.0=0x1209
bombercat.pid.0=0x005e
bombercat.vid.1=0x1209
bombercat.pid.1=0x805e
bombercat.vid.2=0x1209
bombercat.pid.2=0x015e
bombercat.vid.3=0x1209
bombercat.pid.3=0x025e
bombercat.upload_port.0.vid=0x1209
bombercat.upload_port.0.pid=0x005e
bombercat.upload_port.1.vid=0x1209
bombercat.upload_port.1.pid=0x805e
bombercat.upload_port.2.vid=0x1209
bombercat.upload_port.2.pid=0x015e
bombercat.upload_port.3.vid=0x1209
bombercat.upload_port.3.pid=0x025e
bombercat.upload.tool=picotool
bombercat.upload.tool.default=picotool
bombercat.upload.protocol=
bombercat.upload.transport=
bombercat.upload.use_1200bps_touch=true
bombercat.upload.wait_for_upload_port=false
bombercat.upload.native_usb=true
bombercat.upload.maximum_size=2097152
bombercat.upload.maximum_data_size=262144
bombercat.bootloader.tool=openocd
bombercat.bootloader.tool.default=openocd
bombercat.bootloader.config=-f target/rp2040.cfg
bombercat.bootloader.programmer=-f interface/cmsis-dap.cfg

##############################################################
# HUNTER CAT NFC RP2040
#############################################################

huntercatnfc_2040.name=Electronic Cats HunterCat NFC2040
huntercatnfc_2040.build.core=arduino
huntercatnfc_2040.build.crossprefix=arm-none-eabi-
huntercatnfc_2040.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
huntercatnfc_2040.build.variant=HUNTERCATNFC_RP2040
huntercatnfc_2040.build.mcu=cortex-m0plus
huntercatnfc_2040.build.extra_flags=
huntercatnfc_2040.build.fpu=
huntercatnfc_2040.build.float-abi=
huntercatnfc_2040.build.architecture=cortex-m0plus
huntercatnfc_2040.build.board=HUNTERCATNFC_RP2040
huntercatnfc_2040.build.ldscript=linker_script.ld
huntercatnfc_2040.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
huntercatnfc_2040.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040 -DARDUINO_NANO_RP2040_CONNECT
huntercatnfc_2040.compiler.mbed.defines={build.variant.path}/defines.txt
huntercatnfc_2040.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
huntercatnfc_2040.compiler.mbed.cflags={build.variant.path}/cflags.txt
huntercatnfc_2040.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
huntercatnfc_2040.compiler.mbed.includes={build.variant.path}/includes.txt
huntercatnfc_2040.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
huntercatnfc_2040.compiler.mbed="{build.variant.path}/libs/libmbed.a"
huntercatnfc_2040.vid.0=0x1209
huntercatnfc_2040.pid.0=0x005e
huntercatnfc_2040.vid.1=0x1209
huntercatnfc_2040.pid.1=0x805e
huntercatnfc_2040.vid.2=0x1209
huntercatnfc_2040.pid.2=0x015e
huntercatnfc_2040.vid.3=0x1209
huntercatnfc_2040.pid.3=0x025e
huntercatnfc_2040.upload_port.0.vid=0x1209
huntercatnfc_2040.upload_port.0.pid=0x005e
huntercatnfc_2040.upload_port.1.vid=0x1209
huntercatnfc_2040.upload_port.1.pid=0x805e
huntercatnfc_2040.upload_port.2.vid=0x1209
huntercatnfc_2040.upload_port.2.pid=0x015e
huntercatnfc_2040.upload_port.3.vid=0x1209
huntercatnfc_2040.upload_port.3.pid=0x025e
huntercatnfc_2040.upload.tool=picotool
huntercatnfc_2040.upload.tool.default=picotool
huntercatnfc_2040.upload.protocol=
huntercatnfc_2040.upload.transport=
huntercatnfc_2040.upload.use_1200bps_touch=true
huntercatnfc_2040.upload.wait_for_upload_port=false
huntercatnfc_2040.upload.native_usb=true
huntercatnfc_2040.upload.maximum_size=2097152
huntercatnfc_2040.upload.maximum_data_size=262144
huntercatnfc_2040.bootloader.tool=openocd
huntercatnfc_2040.bootloader.tool.default=openocd
huntercatnfc_2040.bootloader.config=-f target/rp2040.cfg
huntercatnfc_2040.bootloader.programmer=-f interface/cmsis-dap.cfg

##############################################################
# CATWAN USB STICK RP2040
#############################################################

catwan_usb_stick_2040.name=Electronic Cats CatWAN USB Stick 2040
catwan_usb_stick_2040.build.core=arduino
catwan_usb_stick_2040.build.crossprefix=arm-none-eabi-
catwan_usb_stick_2040.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
catwan_usb_stick_2040.build.variant=CATWAN_USB_2040
catwan_usb_stick_2040.build.mcu=cortex-m0plus
catwan_usb_stick_2040.build.extra_flags=
catwan_usb_stick_2040.build.fpu=
catwan_usb_stick_2040.build.float-abi=
catwan_usb_stick_2040.build.architecture=cortex-m0plus
catwan_usb_stick_2040.build.board=CATWAN_USB_2040
catwan_usb_stick_2040.build.ldscript=linker_script.ld
catwan_usb_stick_2040.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
catwan_usb_stick_2040.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
catwan_usb_stick_2040.compiler.mbed.defines={build.variant.path}/defines.txt
catwan_usb_stick_2040.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
catwan_usb_stick_2040.compiler.mbed.cflags={build.variant.path}/cflags.txt
catwan_usb_stick_2040.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
catwan_usb_stick_2040.compiler.mbed.includes={build.variant.path}/includes.txt
catwan_usb_stick_2040.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
catwan_usb_stick_2040.compiler.mbed="{build.variant.path}/libs/libmbed.a"
catwan_usb_stick_2040.vid.0=0x1209
catwan_usb_stick_2040.pid.0=0x005e
catwan_usb_stick_2040.vid.1=0x1209
catwan_usb_stick_2040.pid.1=0x805e
catwan_usb_stick_2040.vid.2=0x1209
catwan_usb_stick_2040.pid.2=0x015e
catwan_usb_stick_2040.vid.3=0x1209
catwan_usb_stick_2040.pid.3=0x025e
catwan_usb_stick_2040.upload_port.0.vid=0x1209
catwan_usb_stick_2040.upload_port.0.pid=0x005e
catwan_usb_stick_2040.upload_port.1.vid=0x1209
catwan_usb_stick_2040.upload_port.1.pid=0x805e
catwan_usb_stick_2040.upload_port.2.vid=0x1209
catwan_usb_stick_2040.upload_port.2.pid=0x015e
catwan_usb_stick_2040.upload_port.3.vid=0x1209
catwan_usb_stick_2040.upload_port.3.pid=0x025e
catwan_usb_stick_2040.upload.tool=picotool
catwan_usb_stick_2040.upload.tool.default=picotool
catwan_usb_stick_2040.upload.protocol=
catwan_usb_stick_2040.upload.transport=
catwan_usb_stick_2040.upload.use_1200bps_touch=true
catwan_usb_stick_2040.upload.wait_for_upload_port=false
catwan_usb_stick_2040.upload.native_usb=true
catwan_usb_stick_2040.upload.maximum_size=2097152
catwan_usb_stick_2040.upload.maximum_data_size=262144
catwan_usb_stick_2040.bootloader.tool=openocd
catwan_usb_stick_2040.bootloader.tool.default=openocd
catwan_usb_stick_2040.bootloader.config=-f target/rp2040.cfg
catwan_usb_stick_2040.bootloader.programmer=-f interface/cmsis-dap.cfg

##############################################################
# CATSNIFFER V3
#############################################################

catsniffer_v3.name=Electronic Cats CatSniffer v3
catsniffer_v3.build.core=arduino
catsniffer_v3.build.crossprefix=arm-none-eabi-
catsniffer_v3.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
catsniffer_v3.build.variant=CATSNIFFER_V3
catsniffer_v3.build.mcu=cortex-m0plus
catsniffer_v3.build.extra_flags=
catsniffer_v3.build.fpu=
catsniffer_v3.build.float-abi=
catsniffer_v3.build.architecture=cortex-m0plus
catsniffer_v3.build.board=CATSNIFFER_V3
catsniffer_v3.build.ldscript=linker_script.ld
catsniffer_v3.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
catsniffer_v3.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
catsniffer_v3.compiler.mbed.defines={build.variant.path}/defines.txt
catsniffer_v3.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
catsniffer_v3.compiler.mbed.cflags={build.variant.path}/cflags.txt
catsniffer_v3.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
catsniffer_v3.compiler.mbed.includes={build.variant.path}/includes.txt
catsniffer_v3.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
catsniffer_v3.compiler.mbed="{build.variant.path}/libs/libmbed.a"
catsniffer_v3.vid.0=0x1209
catsniffer_v3.pid.0=0x005e
catsniffer_v3.vid.1=0x1209
catsniffer_v3.pid.1=0x805e
catsniffer_v3.vid.2=0x1209
catsniffer_v3.pid.2=0x015e
catsniffer_v3.vid.3=0x1209
catsniffer_v3.pid.3=0x025e
catsniffer_v3.upload_port.0.vid=0x1209
catsniffer_v3.upload_port.0.pid=0x005e
catsniffer_v3.upload_port.1.vid=0x1209
catsniffer_v3.upload_port.1.pid=0x805e
catsniffer_v3.upload_port.2.vid=0x1209
catsniffer_v3.upload_port.2.pid=0x015e
catsniffer_v3.upload_port.3.vid=0x1209
catsniffer_v3.upload_port.3.pid=0x025e
catsniffer_v3.upload.tool=picotool
catsniffer_v3.upload.tool.default=picotool
catsniffer_v3.upload.protocol=
catsniffer_v3.upload.transport=
catsniffer_v3.upload.use_1200bps_touch=true
catsniffer_v3.upload.wait_for_upload_port=false
catsniffer_v3.upload.native_usb=true
catsniffer_v3.upload.maximum_size=2097152
catsniffer_v3.upload.maximum_data_size=262144
catsniffer_v3.bootloader.tool=openocd
catsniffer_v3.bootloader.tool.default=openocd
catsniffer_v3.bootloader.config=-f target/rp2040.cfg
catsniffer_v3.bootloader.programmer=-f interface/cmsis-dap.cfg
16 changes: 16 additions & 0 deletions variants/BOMBERCAT/cflags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-c
-std=gnu11
-DMBED_TRAP_ERRORS_ENABLED=1
-Os
-Wall
-Wextra
-Wno-missing-field-initializers
-Wno-unused-parameter
-fdata-sections
-ffunction-sections
-fmessage-length=0
-fno-exceptions
-fomit-frame-pointer
-funsigned-char
-mcpu=cortex-m0plus
-mthumb
2 changes: 2 additions & 0 deletions variants/BOMBERCAT/conf/.mbedignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
mbed-os/connectivity/drivers/cellular/*
mbed-os/connectivity/nanostack/*
15 changes: 15 additions & 0 deletions variants/BOMBERCAT/conf/mbed_app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"target_overrides": {
"*": {
"target.printf_lib": "std",
"target.macros_add": [ "MBEDTLS_ENTROPY_NV_SEED" ],
"platform.stdio-buffered-serial": false,
"platform.stdio-baud-rate": 115200,
"platform.default-serial-baud-rate": 115200,
"platform.callback-nontrivial": true,
"platform.all-stats-enabled": true,
"platform.memory-tracing-enabled": true,
"rtos.main-thread-stack-size": 32768
}
}
}
18 changes: 18 additions & 0 deletions variants/BOMBERCAT/cxxflags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-Wvla
-c
-fno-rtti
-std=gnu++14
-DMBED_TRAP_ERRORS_ENABLED=1
-Os
-Wall
-Wextra
-Wno-missing-field-initializers
-Wno-unused-parameter
-fdata-sections
-ffunction-sections
-fmessage-length=0
-fno-exceptions
-fomit-frame-pointer
-funsigned-char
-mcpu=cortex-m0plus
-mthumb
51 changes: 51 additions & 0 deletions variants/BOMBERCAT/defines.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

-DARM_MATH_CM0PLUS
-D__CMSIS_RTOS
-DCOMPONENT_FLASHIAP=1
-D__CORTEX_M0PLUS
-DDEVICE_ANALOGIN=1
-DDEVICE_FLASH=1
-DDEVICE_I2C=1
-DDEVICE_I2CSLAVE=1
-DDEVICE_INTERRUPTIN=1
-DDEVICE_PORT_IN=1
-DDEVICE_PORT_OUT=1
-DDEVICE_PWMOUT=1
-DDEVICE_RESET_REASON=1
-DDEVICE_RTC=1
-DDEVICE_SERIAL=1
-DDEVICE_SERIAL_FC=1
-DDEVICE_SPI=1
-DDEVICE_USBDEVICE=1
-DDEVICE_USTICKER=1
-DDEVICE_WATCHDOG=1
-D__MBED__=1
-DMBED_BUILD_TIMESTAMP=1657634490.3772867
-D__MBED_CMSIS_RTOS_CM
-DMBED_MPU_CUSTOM
-DMBEDTLS_ENTROPY_NV_SEED
-DPICO_FLASH_SIZE_BYTES=2*1024*1024
-DPICO_NO_BINARY_INFO=1
-DPICO_ON_DEVICE=1
-DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1
-DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED
-DPICO_UART_ENABLE_CRLF_SUPPORT=0
-DTARGET_CORTEX
-DTARGET_CORTEX_M
-DTARGET_LIKE_CORTEX_M0
-DTARGET_LIKE_MBED
-DTARGET_M0P
-DTARGET_memmap_default
-DTARGET_NAME=BOMBERCAT
-DTARGET_BOMBERCAT
-DTARGET_NANO_RP2040_CONNECT
-DTARGET_RASPBERRYPI
-DTARGET_RELEASE
-DTARGET_RP2040
-DTOOLCHAIN_GCC
-DTOOLCHAIN_GCC_ARM
-DMBED_NO_GLOBAL_USING_DIRECTIVE=1
-DCORE_MAJOR=3
-DCORE_MINOR=2
-DCORE_PATCH=0
-DUSE_ARDUINO_PINOUT
50 changes: 50 additions & 0 deletions variants/BOMBERCAT/double_tap_usb_boot.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
extern "C" {
#include "pico.h"
#include "pico/time.h"
#include "pico/bootrom.h"
}
#include "macros.h"
#include "pins_arduino.h"

// Allow user override of the LED mask
#ifndef USB_BOOT_LED_ACTIVITY_MASK
#define USB_BOOT_LED_ACTIVITY_MASK 1
#endif

// Doesn't make any sense for a RAM only binary
#if !PICO_NO_FLASH

static const uint32_t magic_token[] = {
0xf01681de, 0xbd729b29, 0xd359be7a,
};

static uint32_t __uninitialized_ram(magic_location)[count_of(magic_token)];

// run at initialization time
static void boot_double_tap_check() {
for (uint i = 0; i < count_of(magic_token); i++) {
if (magic_location[i] != magic_token[i]) {
// Arm for 100 ms then disarm and continue booting
for (i = 0; i < count_of(magic_token); i++) {
magic_location[i] = magic_token[i];
}
busy_wait_us(500000);
magic_location[0] = 0;
return;
}
}

magic_location[0] = 0;
reset_usb_boot(1 << digitalPinToPinName(LED_BUILTIN), 0);
}

class DoubleTap {
public:
DoubleTap() {
boot_double_tap_check();
}
};

DoubleTap dt __attribute__ ((init_priority (101)));

#endif
Loading