add board Maix Go support

This commit is contained in:
Neucrack
2019-03-26 16:14:19 +08:00
parent 2edb0771af
commit d00bce5914
5 changed files with 193 additions and 19 deletions

4
.gitignore vendored
View File

@@ -30,3 +30,7 @@
*.exe
*.out
*.app
# vscode
.vscode

View File

@@ -1,31 +1,106 @@
menu.clksrc=CPU Clock Frequency
menu.toolsloc=Tool Install Location
menu.clksrc = CPU Clock Frequency
menu.burn_tool_firmware = Burn Tool Firmware
menu.burn_baudrate = Burn Baud Rate
menu.toolsloc = Tool Install Location
#Sipeed M1 Dock Board
##################################################
############# Sipeed M1 Dock Board ###############
m1.name=Sipeed M1 Dock Board
m1.name = Sipeed M1 Dock Board
## Toolchain
m1.menu.toolsloc.default=Default
m1.menu.toolsloc.manual=Manual
m1.menu.toolsloc.default.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
m1.menu.toolsloc.manual.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
#Point to the file for ./variants/<variant>/pins_arduino.h
## CPU Clock
m1.menu.clksrc.400 = 400MHz CPU Clock Frequency
m1.menu.clksrc.500 = 500MHz CPU Clock Frequency
m1.menu.clksrc.600 = 600MHz CPU Clock Frequency
m1.menu.clksrc.400.build.f_cpu = 400000000L
m1.menu.clksrc.500.build.f_cpu = 500000000L
m1.menu.clksrc.600.build.f_cpu = 600000000L
## Burn baud rate
m1.menu.burn_baudrate.2000000 = 2 Mbps
m1.menu.burn_baudrate.1500000 = 1.5 Mbps
m1.menu.burn_baudrate.1000000 = 1 Mbps
m1.menu.burn_baudrate.2000000.build.burn_baudrate = 2000000
m1.menu.burn_baudrate.1500000.build.burn_baudrate = 1500000
m1.menu.burn_baudrate.1000000.build.burn_baudrate = 1000000
## Burn tool firmware
m1.menu.burn_tool_firmware.dan = Default
m1.menu.burn_tool_firmware.dan.build.burn_tool_firmware = dan
## Point to the file for ./variants/<variant>/pins_arduino.h
m1.build.variant=standard
m1.menu.clksrc=400MHz FPGA Clock
m1.menu.clksrc.m1.build.f_cpu=400000000L
m1.build.mcmodel=medany
#"The 'core' file directory for this board, in ./cores
## "The 'core' file directory for this board, in ./cores
m1.build.core=arduino
# This sets a define for use in the compiled code.
m1.build.board=SIPEED_M1_BOARD
## This sets a define for use in the compiled code.
m1.build.board = BOARD_SIPEED_MAIX_ONE_DOCK
m1.build.sdata.size=512
#This selects the tool from "programmers.txt"
## This selects the tool from "programmers.txt"
m1.program.tool=kflash
m1.upload.tool=kflash
# Limit is the 16MB Flash. Assume half is used for something else.
## Limit is the 16MB Flash. Assume half is used for something else.
m1.upload.maximum_size=8388608
m1.build.ldscript={runtime.platform.path}/cores/arduino/kendryte-standalone-sdk/lds/kendryte.ld
m1.build.openocdcfg={runtime.tools.openocd.path}/ocd.txt
m1.build.openocdcfg={runtime.tools.openocd.path}/ocd.txt
####################################################
############### Sipeed Maix Go Board ###############
go.name = Sipeed Maix Go Board
## Toolchain
go.menu.toolsloc.default=Default
go.menu.toolsloc.manual=Manual
go.menu.toolsloc.default.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
go.menu.toolsloc.manual.compiler.path={runtime.tools.riscv64-unknown-elf-gcc.path}/bin/
## CPU Clock
go.menu.clksrc.400 = 400MHz CPU Clock Frequency
go.menu.clksrc.500 = 500MHz CPU Clock Frequency
go.menu.clksrc.600 = 600MHz CPU Clock Frequency
go.menu.clksrc.400.build.f_cpu = 400000000L
go.menu.clksrc.500.build.f_cpu = 500000000L
go.menu.clksrc.600.build.f_cpu = 600000000L
## Burn baud rate
go.menu.burn_baudrate.2000000 = 2 Mbps
go.menu.burn_baudrate.1500000 = 1.5 Mbps
go.menu.burn_baudrate.1000000 = 1 Mbps
go.menu.burn_baudrate.2000000.build.burn_baudrate = 2000000
go.menu.burn_baudrate.1500000.build.burn_baudrate = 1500000
go.menu.burn_baudrate.1000000.build.burn_baudrate = 1000000
## Burn tool firmware
go.menu.burn_tool_firmware.goE = open-ec
go.menu.burn_tool_firmware.goD = CMSIS-DAP
go.menu.burn_tool_firmware.goE.build.burn_tool_firmware = goE
go.menu.burn_tool_firmware.goD.build.burn_tool_firmware = goD
## Core settings
go.build.variant= standard
go.build.core = arduino
## This sets a define for use in the compiled code.
go.build.board = BOARD_SIPEED_MAIX_GO
## This selects the tool from "programmers.txt"
go.program.tool = kflash
go.upload.tool = kflash
## Limit is the 16MB Flash. Assume half is used for something else.
go.upload.maximum_size=8388608
go.build.ldscript={runtime.platform.path}/cores/arduino/kendryte-standalone-sdk/lds/kendryte.ld
go.build.openocdcfg={runtime.tools.openocd.path}/ocd.txt

View File

@@ -100,5 +100,7 @@ tools.manual_openocd.program.pattern="{path}{cmd}" -d0 -f {program.config} -c "f
tools.kflash.path={runtime.tools.kflash.path}/
tools.kflash.cmd=python3 {runtime.tools.kflash.path}/kflash.py
tools.kflash.cmd.windows={runtime.tools.kflash.path}/k-flash
tools.kflash.program.pattern={cmd} -p {serial.port} {build.path}/{build.project_name}.bin
tools.kflash.program.pattern.windows="{cmd}" -d {serial.port} -b 2000000 {build.path}/{build.project_name}.bin
tools.kflash.program.pattern={cmd} -n -p {serial.port} -b {build.burn_baudrate} -B {build.burn_tool_firmware} {build.path}/{build.project_name}.bin
tools.kflash.program.pattern.windows="{cmd}" -d {serial.port} -b {build.burn_baudrate} {build.path}/{build.project_name}.bin

View File

@@ -1,6 +1,11 @@
// API compatibility
#ifdef SIPEED_M1_BOARD
#ifdef BOARD_SIPEED_MAIX_ONE_DOCK
#include "sipeedm1.h"
#else
#ifdef BOARD_SIPEED_MAIX_GO
#include "sipeed_go.h"
#endif //BOARD_SIPEED_MAIX_GO
#endif

View File

@@ -0,0 +1,88 @@
#ifndef _VARIANT_BOARD_SIPEED_MAIX_GO
#define _VARIANT_BOARD_SIPEED_MAIX_GO
#include <stdint.h>
#define RISCV
#include "platform.h"
#include "Arduino.h"
#include "pwm.h"
#ifdef __cplusplus
#include "UARTClass.h"
extern class UARTHSClass Serial;
extern class UARTClass Serial1;
extern class UARTClass Serial2;
extern class UARTClass Serial3;
#endif
/* BOARD PIN DEFINE */
/* LEDs */
#define PIN_LED_GREEN 13
#define PIN_LED_BLUE 12
#define PIN_LED_RED 14
#define PIN_LED 13
#define LED_BUILTIN 13
#define LED_GREEN 13
#define LED_BLUE 12
#define LED_RED 14
/* KEY */
#define KEY0 16
/* MIC ARRAY */
#define MIC_BCK 18
#define MIC_WS 19
#define MIC_DAT3 20
#define MIC_DAT2 21
#define MIC_DAT1 22
#define MIC_DAT0 23
#define MIC_LED_DAT 24
/* SPI0 */
#define SPI0_CS1 25
#define SPI0_MISO 26
#define SPI0_SCLK 27
#define SPI0_MOSI 28
#define SPI0_CS0 29
/* I2S */
#define MIC0_WS 30
#define MIC0_DATA 31
#define MIC0_BCK 32
#define I2S_WS 33
#define I2S_DA 34
#define I2S_BCK 35
/* LCD */
#define LCD_CS 36
#define LCD_RST 37
#define LCD_DC 38
#define LCD_WR 39
#define RX0 4
#define TX0 5
#define RX1 6
#define TX1 7
#define SDA 10
#define SCL 9
static const uint8_t SS = SPI0_CS0 ;
static const uint8_t MOSI = SPI0_MOSI;
static const uint8_t MISO = SPI0_MISO;
static const uint8_t SCK = SPI0_SCLK;
typedef struct _pwm_fpio_set_t{
pwm_channel_number_t channel;
pwm_device_number_t device;
uint8_t inuse;
}pwm_fpio_set_t;
#define VARIANT_NUM_GPIOHS (32)
#define VARIANT_NUM_GPIO ( 8)
#define VARIANT_NUM_PWM (12)
#define VARIANT_NUM_I2C ( 3)
#define VARIANT_NUM_SPI ( 3)
#define VARIANT_NUM_UART ( 3)
#endif