Skip to content

Commit 75dfb8d

Browse files
authored
Add XIAO rp2040 and Wio rp2040 boards (Seeed-Studio#3)
1 parent 944e988 commit 75dfb8d

29 files changed

+2526
-0
lines changed

boards.txt

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,3 +384,92 @@ nicla_sense.bootloader.config=-f target/nrf52.cfg
384384
nicla_sense.bootloader.programmer=-f interface/cmsis-dap.cfg
385385
nicla_sense.bootloader.file=NICLA/bootloader.hex
386386

387+
388+
##############################################################
389+
390+
wio_pico.name=WIO_RP2040_MINI_DEV_BOARD
391+
wio_pico.build.core=arduino
392+
wio_pico.build.crossprefix=arm-none-eabi-
393+
wio_pico.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
394+
395+
wio_pico.build.variant=WIO_RP2040_MINI_DEV_BOARD
396+
wio_pico.build.mcu=cortex-m0plus
397+
wio_pico.build.extra_flags=
398+
wio_pico.build.fpu=
399+
wio_pico.build.float-abi=
400+
wio_pico.build.architecture=cortex-m0plus
401+
wio_pico.build.board=WIO_RP2040_MINI_DEV_BOARD
402+
wio_pico.build.ldscript=linker_script.ld
403+
wio_pico.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
404+
wio_pico.compiler.mbed.defines={build.variant.path}/defines.txt
405+
wio_pico.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
406+
wio_pico.compiler.mbed.cflags={build.variant.path}/cflags.txt
407+
wio_pico.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
408+
wio_pico.compiler.mbed.includes={build.variant.path}/includes.txt
409+
wio_pico.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
410+
wio_pico.compiler.mbed="{build.variant.path}/libs/libmbed.a"
411+
wio_pico.vid.0=0x2886
412+
wio_pico.pid.0=0x8043
413+
wio_pico.upload_port.0.vid=0x2886
414+
wio_pico.upload_port.0.pid=0x8043
415+
wio_pico.upload.tool=picotool
416+
wio_pico.upload.tool.default=picotool
417+
wio_pico.upload.protocol=
418+
wio_pico.upload.transport=
419+
wio_pico.upload.use_1200bps_touch=true
420+
wio_pico.upload.wait_for_upload_port=false
421+
wio_pico.upload.native_usb=true
422+
wio_pico.upload.maximum_size=16777216
423+
wio_pico.upload.maximum_data_size=270336
424+
wio_pico.bootloader.tool=openocd
425+
wio_pico.bootloader.tool.default=openocd
426+
wio_pico.bootloader.config=-f target/rp2040.cfg
427+
wio_pico.bootloader.programmer=-f interface/cmsis-dap.cfg
428+
429+
##############################################################
430+
431+
432+
##############################################################
433+
434+
xiao_pico.name=SEEED_XIAO_RP2040
435+
xiao_pico.build.core=arduino
436+
xiao_pico.build.crossprefix=arm-none-eabi-
437+
xiao_pico.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
438+
439+
xiao_pico.build.variant=SEEED_XIAO_RP2040
440+
xiao_pico.build.mcu=cortex-m0plus
441+
xiao_pico.build.extra_flags=
442+
xiao_pico.build.fpu=
443+
xiao_pico.build.float-abi=
444+
xiao_pico.build.architecture=cortex-m0plus
445+
xiao_pico.build.board=SEEED_XIAO_RP2040
446+
xiao_pico.build.ldscript=linker_script.ld
447+
xiao_pico.compiler.mbed.arch.define=-DARDUINO_ARCH_RP2040
448+
xiao_pico.compiler.mbed.defines={build.variant.path}/defines.txt
449+
xiao_pico.compiler.mbed.ldflags={build.variant.path}/ldflags.txt
450+
xiao_pico.compiler.mbed.cflags={build.variant.path}/cflags.txt
451+
xiao_pico.compiler.mbed.cxxflags={build.variant.path}/cxxflags.txt
452+
xiao_pico.compiler.mbed.includes={build.variant.path}/includes.txt
453+
xiao_pico.compiler.mbed.extra_ldflags=-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
454+
xiao_pico.compiler.mbed="{build.variant.path}/libs/libmbed.a"
455+
xiao_pico.vid.0=0x2886
456+
xiao_pico.pid.0=0x8042
457+
xiao_pico.upload_port.0.vid=0x2886
458+
xiao_pico.upload_port.0.pid=0x8042
459+
460+
xiao_pico.upload.tool=picotool
461+
xiao_pico.upload.tool.default=picotool
462+
xiao_pico.upload.protocol=
463+
xiao_pico.upload.transport=
464+
xiao_pico.upload.use_1200bps_touch=true
465+
xiao_pico.upload.wait_for_upload_port=false
466+
xiao_pico.upload.native_usb=true
467+
xiao_pico.upload.maximum_size=16777216
468+
xiao_pico.upload.maximum_data_size=270336
469+
470+
xiao_pico.bootloader.tool=openocd
471+
xiao_pico.bootloader.tool.default=openocd
472+
xiao_pico.bootloader.config=-f target/rp2040.cfg
473+
xiao_pico.bootloader.programmer=-f interface/cmsis-dap.cfg
474+
475+
##############################################################

variants/SEEED_XIAO_RP2040/cflags.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-c
2+
-std=gnu11
3+
-DMBED_TRAP_ERRORS_ENABLED=1
4+
-Os
5+
-Wall
6+
-Wextra
7+
-Wno-missing-field-initializers
8+
-Wno-unused-parameter
9+
-fdata-sections
10+
-ffunction-sections
11+
-fmessage-length=0
12+
-fno-exceptions
13+
-fomit-frame-pointer
14+
-funsigned-char
15+
-mcpu=cortex-m0plus
16+
-mthumb
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
mbed-os/connectivity/drivers/cellular/*
2+
mbed-os/connectivity/nanostack/*
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"target_overrides": {
3+
"*": {
4+
"target.printf_lib": "std",
5+
"platform.stdio-buffered-serial": false,
6+
"platform.stdio-baud-rate": 115200,
7+
"platform.default-serial-baud-rate": 115200,
8+
"platform.callback-nontrivial": true,
9+
"platform.all-stats-enabled": true,
10+
"platform.memory-tracing-enabled": true,
11+
"rtos.main-thread-stack-size": 32768
12+
}
13+
}
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-Wvla
2+
-c
3+
-fno-rtti
4+
-std=gnu++14
5+
-DMBED_TRAP_ERRORS_ENABLED=1
6+
-Os
7+
-Wall
8+
-Wextra
9+
-Wno-missing-field-initializers
10+
-Wno-unused-parameter
11+
-fdata-sections
12+
-ffunction-sections
13+
-fmessage-length=0
14+
-fno-exceptions
15+
-fomit-frame-pointer
16+
-funsigned-char
17+
-mcpu=cortex-m0plus
18+
-mthumb
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
2+
-DARM_MATH_CM0PLUS
3+
-D__CMSIS_RTOS
4+
-DCOMPONENT_FLASHIAP=1
5+
-D__CORTEX_M0PLUS
6+
-DDEVICE_ANALOGIN=1
7+
-DDEVICE_FLASH=1
8+
-DDEVICE_I2C=1
9+
-DDEVICE_I2CSLAVE=1
10+
-DDEVICE_INTERRUPTIN=1
11+
-DDEVICE_PORT_IN=1
12+
-DDEVICE_PORT_OUT=1
13+
-DDEVICE_PWMOUT=1
14+
-DDEVICE_RESET_REASON=1
15+
-DDEVICE_SERIAL=1
16+
-DDEVICE_SERIAL_FC=1
17+
-DDEVICE_SPI=1
18+
-DDEVICE_USBDEVICE=1
19+
-DDEVICE_USTICKER=1
20+
-DDEVICE_WATCHDOG=1
21+
-D__MBED__=1
22+
-DMBED_BUILD_TIMESTAMP=1632403438.5330071
23+
-D__MBED_CMSIS_RTOS_CM
24+
-DMBED_MPU_CUSTOM
25+
-DPICO_NO_BINARY_INFO=1
26+
-DPICO_ON_DEVICE=1
27+
-DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1
28+
-DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED
29+
-DPICO_UART_ENABLE_CRLF_SUPPORT=0
30+
-DTARGET_CORTEX
31+
-DTARGET_CORTEX_M
32+
-DTARGET_LIKE_CORTEX_M0
33+
-DTARGET_LIKE_MBED
34+
-DTARGET_M0P
35+
-DTARGET_memmap_default
36+
-DTARGET_NAME=SEEED_XIAO_RP2040
37+
-DTARGET_RASPBERRYPI
38+
-DTARGET_SEEED_XIAO_RP2040
39+
-DTARGET_RELEASE
40+
-DTARGET_RP2040
41+
-DTOOLCHAIN_GCC
42+
-DTOOLCHAIN_GCC_ARM
43+
-DMBED_NO_GLOBAL_USING_DIRECTIVE=1
44+
-DUSE_ARDUINO_PINOUT
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
extern "C" {
2+
#include "pico.h"
3+
#include "pico/time.h"
4+
#include "pico/bootrom.h"
5+
}
6+
#include "macros.h"
7+
#include "pins_arduino.h"
8+
9+
// Doesn't make any sense for a RAM only binary
10+
#if !PICO_NO_FLASH
11+
12+
static const uint32_t magic_token[] = {
13+
0xf01681de, 0xbd729b29, 0xd359be7a,
14+
};
15+
16+
static uint32_t __uninitialized_ram(magic_location)[count_of(magic_token)];
17+
18+
// run at initialization time
19+
static void boot_double_tap_check() {
20+
for (uint i = 0; i < count_of(magic_token); i++) {
21+
if (magic_location[i] != magic_token[i]) {
22+
// Arm for 100 ms then disarm and continue booting
23+
for (i = 0; i < count_of(magic_token); i++) {
24+
magic_location[i] = magic_token[i];
25+
}
26+
busy_wait_us(100000);
27+
magic_location[0] = 0;
28+
return;
29+
}
30+
}
31+
32+
magic_location[0] = 0;
33+
reset_usb_boot(1 << LED_BUILTIN, 0);
34+
}
35+
36+
class DoubleTap {
37+
public:
38+
DoubleTap() {
39+
boot_double_tap_check();
40+
}
41+
};
42+
43+
DoubleTap dt __attribute__ ((init_priority (101)));
44+
45+
#endif

0 commit comments

Comments
 (0)