Skip to content

Commit d00bce5

Browse files
committed
add board Maix Go support
1 parent 2edb077 commit d00bce5

File tree

5 files changed

+192
-18
lines changed

5 files changed

+192
-18
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,7 @@
3030
*.exe
3131
*.out
3232
*.app
33+
34+
# vscode
35+
.vscode
36+

boards.txt

Lines changed: 90 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,106 @@
1-
menu.clksrc=CPU Clock Frequency
2-
menu.toolsloc=Tool Install Location
1+
menu.clksrc = CPU Clock Frequency
2+
menu.burn_tool_firmware = Burn Tool Firmware
3+
menu.burn_baudrate = Burn Baud Rate
4+
menu.toolsloc = Tool Install Location
35

4-
#Sipeed M1 Dock Board
6+
##################################################
7+
############# Sipeed M1 Dock Board ###############
58

6-
m1.name=Sipeed M1 Dock Board
9+
m1.name = Sipeed M1 Dock Board
10+
11+
## Toolchain
712
m1.menu.toolsloc.default=Default
813
m1.menu.toolsloc.manual=Manual
914
m1.menu.toolsloc.default.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
1015
m1.menu.toolsloc.manual.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
1116

12-
#Point to the file for ./variants/<variant>/pins_arduino.h
13-
m1.build.variant=standard
17+
## CPU Clock
18+
m1.menu.clksrc.400 = 400MHz CPU Clock Frequency
19+
m1.menu.clksrc.500 = 500MHz CPU Clock Frequency
20+
m1.menu.clksrc.600 = 600MHz CPU Clock Frequency
21+
m1.menu.clksrc.400.build.f_cpu = 400000000L
22+
m1.menu.clksrc.500.build.f_cpu = 500000000L
23+
m1.menu.clksrc.600.build.f_cpu = 600000000L
1424

15-
m1.menu.clksrc=400MHz FPGA Clock
16-
m1.menu.clksrc.m1.build.f_cpu=400000000L
25+
## Burn baud rate
26+
m1.menu.burn_baudrate.2000000 = 2 Mbps
27+
m1.menu.burn_baudrate.1500000 = 1.5 Mbps
28+
m1.menu.burn_baudrate.1000000 = 1 Mbps
29+
m1.menu.burn_baudrate.2000000.build.burn_baudrate = 2000000
30+
m1.menu.burn_baudrate.1500000.build.burn_baudrate = 1500000
31+
m1.menu.burn_baudrate.1000000.build.burn_baudrate = 1000000
1732

18-
m1.build.mcmodel=medany
33+
## Burn tool firmware
34+
m1.menu.burn_tool_firmware.dan = Default
35+
m1.menu.burn_tool_firmware.dan.build.burn_tool_firmware = dan
1936

20-
#"The 'core' file directory for this board, in ./cores
37+
## Point to the file for ./variants/<variant>/pins_arduino.h
38+
m1.build.variant=standard
39+
40+
## "The 'core' file directory for this board, in ./cores
2141
m1.build.core=arduino
22-
# This sets a define for use in the compiled code.
23-
m1.build.board=SIPEED_M1_BOARD
42+
43+
## This sets a define for use in the compiled code.
44+
m1.build.board = BOARD_SIPEED_MAIX_ONE_DOCK
2445
m1.build.sdata.size=512
25-
#This selects the tool from "programmers.txt"
46+
47+
## This selects the tool from "programmers.txt"
2648
m1.program.tool=kflash
2749
m1.upload.tool=kflash
28-
# Limit is the 16MB Flash. Assume half is used for something else.
50+
51+
## Limit is the 16MB Flash. Assume half is used for something else.
2952
m1.upload.maximum_size=8388608
3053
m1.build.ldscript={runtime.platform.path}/cores/arduino/kendryte-standalone-sdk/lds/kendryte.ld
31-
m1.build.openocdcfg={runtime.tools.openocd.path}/ocd.txt
54+
m1.build.openocdcfg={runtime.tools.openocd.path}/ocd.txt
55+
56+
57+
####################################################
58+
############### Sipeed Maix Go Board ###############
59+
60+
go.name = Sipeed Maix Go Board
61+
62+
## Toolchain
63+
go.menu.toolsloc.default=Default
64+
go.menu.toolsloc.manual=Manual
65+
go.menu.toolsloc.default.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
66+
go.menu.toolsloc.manual.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
67+
68+
## CPU Clock
69+
go.menu.clksrc.400 = 400MHz CPU Clock Frequency
70+
go.menu.clksrc.500 = 500MHz CPU Clock Frequency
71+
go.menu.clksrc.600 = 600MHz CPU Clock Frequency
72+
go.menu.clksrc.400.build.f_cpu = 400000000L
73+
go.menu.clksrc.500.build.f_cpu = 500000000L
74+
go.menu.clksrc.600.build.f_cpu = 600000000L
75+
76+
## Burn baud rate
77+
go.menu.burn_baudrate.2000000 = 2 Mbps
78+
go.menu.burn_baudrate.1500000 = 1.5 Mbps
79+
go.menu.burn_baudrate.1000000 = 1 Mbps
80+
go.menu.burn_baudrate.2000000.build.burn_baudrate = 2000000
81+
go.menu.burn_baudrate.1500000.build.burn_baudrate = 1500000
82+
go.menu.burn_baudrate.1000000.build.burn_baudrate = 1000000
83+
84+
## Burn tool firmware
85+
go.menu.burn_tool_firmware.goE = open-ec
86+
go.menu.burn_tool_firmware.goD = CMSIS-DAP
87+
go.menu.burn_tool_firmware.goE.build.burn_tool_firmware = goE
88+
go.menu.burn_tool_firmware.goD.build.burn_tool_firmware = goD
89+
90+
## Core settings
91+
go.build.variant= standard
92+
go.build.core = arduino
93+
94+
## This sets a define for use in the compiled code.
95+
go.build.board = BOARD_SIPEED_MAIX_GO
96+
97+
## This selects the tool from "programmers.txt"
98+
go.program.tool = kflash
99+
go.upload.tool = kflash
100+
101+
## Limit is the 16MB Flash. Assume half is used for something else.
102+
go.upload.maximum_size=8388608
103+
go.build.ldscript={runtime.platform.path}/cores/arduino/kendryte-standalone-sdk/lds/kendryte.ld
104+
go.build.openocdcfg={runtime.tools.openocd.path}/ocd.txt
105+
106+

platform.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,5 +100,7 @@ tools.manual_openocd.program.pattern="{path}{cmd}" -d0 -f {program.config} -c "f
100100
tools.kflash.path={runtime.tools.kflash.path}/
101101
tools.kflash.cmd=python3 {runtime.tools.kflash.path}/kflash.py
102102
tools.kflash.cmd.windows={runtime.tools.kflash.path}/k-flash
103-
tools.kflash.program.pattern={cmd} -p {serial.port} {build.path}/{build.project_name}.bin
104-
tools.kflash.program.pattern.windows="{cmd}" -d {serial.port} -b 2000000 {build.path}/{build.project_name}.bin
103+
tools.kflash.program.pattern={cmd} -n -p {serial.port} -b {build.burn_baudrate} -B {build.burn_tool_firmware} {build.path}/{build.project_name}.bin
104+
tools.kflash.program.pattern.windows="{cmd}" -d {serial.port} -b {build.burn_baudrate} {build.path}/{build.project_name}.bin
105+
106+

variants/standard/pins_arduino.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
// API compatibility
2-
#ifdef SIPEED_M1_BOARD
2+
#ifdef BOARD_SIPEED_MAIX_ONE_DOCK
33

44
#include "sipeedm1.h"
5+
#else
6+
7+
#ifdef BOARD_SIPEED_MAIX_GO
8+
#include "sipeed_go.h"
9+
#endif //BOARD_SIPEED_MAIX_GO
510

611
#endif

variants/standard/sipeed_go.h

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
#ifndef _VARIANT_BOARD_SIPEED_MAIX_GO
2+
#define _VARIANT_BOARD_SIPEED_MAIX_GO
3+
4+
#include <stdint.h>
5+
6+
#define RISCV
7+
#include "platform.h"
8+
9+
#include "Arduino.h"
10+
#include "pwm.h"
11+
12+
#ifdef __cplusplus
13+
#include "UARTClass.h"
14+
extern class UARTHSClass Serial;
15+
extern class UARTClass Serial1;
16+
extern class UARTClass Serial2;
17+
extern class UARTClass Serial3;
18+
#endif
19+
20+
/* BOARD PIN DEFINE */
21+
/* LEDs */
22+
#define PIN_LED_GREEN 13
23+
#define PIN_LED_BLUE 12
24+
#define PIN_LED_RED 14
25+
#define PIN_LED 13
26+
#define LED_BUILTIN 13
27+
#define LED_GREEN 13
28+
#define LED_BLUE 12
29+
#define LED_RED 14
30+
/* KEY */
31+
#define KEY0 16
32+
/* MIC ARRAY */
33+
#define MIC_BCK 18
34+
#define MIC_WS 19
35+
#define MIC_DAT3 20
36+
#define MIC_DAT2 21
37+
#define MIC_DAT1 22
38+
#define MIC_DAT0 23
39+
#define MIC_LED_DAT 24
40+
/* SPI0 */
41+
#define SPI0_CS1 25
42+
#define SPI0_MISO 26
43+
#define SPI0_SCLK 27
44+
#define SPI0_MOSI 28
45+
#define SPI0_CS0 29
46+
/* I2S */
47+
#define MIC0_WS 30
48+
#define MIC0_DATA 31
49+
#define MIC0_BCK 32
50+
#define I2S_WS 33
51+
#define I2S_DA 34
52+
#define I2S_BCK 35
53+
/* LCD */
54+
#define LCD_CS 36
55+
#define LCD_RST 37
56+
#define LCD_DC 38
57+
#define LCD_WR 39
58+
59+
#define RX0 4
60+
#define TX0 5
61+
62+
#define RX1 6
63+
#define TX1 7
64+
65+
#define SDA 10
66+
#define SCL 9
67+
68+
static const uint8_t SS = SPI0_CS0 ;
69+
static const uint8_t MOSI = SPI0_MOSI;
70+
static const uint8_t MISO = SPI0_MISO;
71+
static const uint8_t SCK = SPI0_SCLK;
72+
73+
typedef struct _pwm_fpio_set_t{
74+
pwm_channel_number_t channel;
75+
pwm_device_number_t device;
76+
uint8_t inuse;
77+
}pwm_fpio_set_t;
78+
79+
80+
81+
#define VARIANT_NUM_GPIOHS (32)
82+
#define VARIANT_NUM_GPIO ( 8)
83+
#define VARIANT_NUM_PWM (12)
84+
#define VARIANT_NUM_I2C ( 3)
85+
#define VARIANT_NUM_SPI ( 3)
86+
#define VARIANT_NUM_UART ( 3)
87+
88+
#endif

0 commit comments

Comments
 (0)