:( refactopring build for supported boards

This commit is contained in:
Gordon Williams 2017-03-07 15:25:24 +00:00
parent a3034e6646
commit 5267539b97
28 changed files with 354 additions and 729 deletions

313
Makefile
View File

@ -10,50 +10,8 @@
# -----------------------------------------------------------------------------
# Makefile for Espruino
# -----------------------------------------------------------------------------
# Set the BOARD environment variable to one of:
# ESPRUINOBOARD # Espruino board rev 1.3 and rev 1v4
# PICO # Espruino Pico board rev 1.3
# ESPRUINOWIFI
# PUCKJS
# ESP8266_BOARD # ESP8266
# ESP32 # ESP32
# OLIMEXINO_STM32=1 # Olimexino STM32
# MAPLERET6_STM32=1 # Limited production Leaflabs Maple r5 with a STM32F103RET6
# MAPLEMINI=1 # Leaflabs Maple Mini
# EMBEDDED_PI=1 # COOCOX STM32 Embedded Pi boards
# HYSTM32_24=1 # HY STM32 2.4 Ebay boards
# HYSTM32_28=1 # HY STM32 2.8 Ebay boards
# HYSTM32_32=1 # HY STM32 3.2 VCT6 Ebay boards
# HYTINY_STM103T=1 # HY-TinySTM103T by Haoyu (hotmcu.com)
# STM32VLDISCOVERY=1
# STM32F3DISCOVERY=1
# STM32F4DISCOVERY=1
# STM32F411DISCOVERY=1
# STM32F429IDISCOVERY=1
# STM32F401CDISCOVERY=1
# MICROBIT=1
# NRF51TAG=1
# NRF51822DK=1
# NRF52832DK=1 # Ultra low power BLE (bluetooth low energy) enabled SoC. Arm Cortex-M4f processor. With NFC (near field communication).
# CARAMBOLA=1
# DPTBOARD=1 # DPTechnics IoT development board with BlueCherry.io IoT platform integration and DPT-WEB IDE.
# RASPBERRYPI=1
# BEAGLEBONE=1
# ARIETTA=1
# LCTECH_STM32F103RBT6=1 # LC Technology STM32F103RBT6 Ebay boards
# ARMINARM=1
# NUCLEOF401RE=1
# NUCLEOF411RE=1
# NUCLEOL476RG=1
# MINISTM32_STRIVE=1
# MINISTM32_ANGLED_VE=1
# MINISTM32_ANGLED_VG=1
# EFM32GGSTK=1 # Currently only works with DEBUG=1
# EMW3165=1 # MXCHIP EMW3165: STM32F411CE, BCM43362, 512KB flash 128KB RAM
# Or nothing for standard linux compile
# Set the BOARD environment variable to one of the names of the .py file in
# the `boards` directory. Eg. PICO, PUCKJS, ESPRUINOWIFI, etc
#
# Also:
#
@ -166,273 +124,18 @@ BASEADDRESS=0x08000000
# Get info out of BOARDNAME.py
# ---------------------------------------------------------------------------------
ifeq ($(BOARD),)
$(info *************************************************************)
$(info * To build, use "BOARD=my_board make *)
$(info *************************************************************)
$(info *************************************************************")
$(info * To build, use "BOARD=my_board make *")
$(info *************************************************************")
endif
$(shell rm -f CURRENT_BOARD.make)
$(shell python scripts/get_makefile_decls.py $(BOARD) > CURRENT_BOARD.make)
include CURRENT_BOARD.make
# ---------------------------------------------------------------------------------
# When adding stuff here, also remember build_pininfo, platform_config.h, jshardware.c
# TODO: Load more of this out of the BOARDNAME.py files if at all possible (see next section)
# ---------------------------------------------------------------------------------
ifdef OLD_CODE
ifdef EFM32GGSTK
EMBEDDED=1
DEFINES+= -DEFM32GG890F1024=1 # This should be EFM32GG990F1024, temporary hack to avoid the #USB on line 772 in jsinteractive.c
BOARD=EFM32GGSTK
OPTIMIZEFLAGS+=-Os
else ifdef OLIMEXINO_STM32
EMBEDDED=1
SAVE_ON_FLASH=1
USE_FILESYSTEM=1
BOARD=OLIMEXINO_STM32
STLIB=STM32F10X_MD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o
OPTIMIZEFLAGS+=-Os # short on program memory
else ifdef HYTINY_STM103T
EMBEDDED=1
USE_GRAPHICS=1
SAVE_ON_FLASH=1
BOARD=HYTINY_STM103T
STLIB=STM32F10X_MD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o
OPTIMIZEFLAGS+=-Os # short on program memory
else ifdef MAPLERET6_STM32
EMBEDDED=1
USE_NET=1
USE_GRAPHICS=1
USE_FILESYSTEM=1
USE_TV=1
USE_HASHLIB=1
BOARD=MAPLERET6_STM32
STLIB=STM32F10X_HD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o
OPTIMIZEFLAGS+=-O3
else ifdef OLIMEXINO_STM32_RE
EMBEDDED=1
USE_NET=1
USE_GRAPHICS=1
USE_FILESYSTEM=1
USE_TV=1
USE_HASHLIB=1
BOARD=OLIMEXINO_STM32_RE
STLIB=STM32F10X_HD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o
OPTIMIZEFLAGS+=-O3
else ifdef MAPLEMINI
EMBEDDED=1
SAVE_ON_FLASH=1
BOARD=MAPLEMINI
STLIB=STM32F10X_MD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o
OPTIMIZEFLAGS+=-Os # short on program memory
else ifdef EMBEDDED_PI
EMBEDDED=1
BOARD=EMBEDDED_PI
STLIB=STM32F10X_MD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o
OPTIMIZEFLAGS+=-Os # short on program memory
else ifdef MINISTM32_STRIVE
EMBEDDED=1
USE_GRAPHICS=1
USE_LCD_FSMC=1
DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes
DEFINES+=-DUSE_RTC
DEFINES+=-DSWD_ONLY_NO_JTAG
USE_FILESYSTEM=1
USE_FILESYSTEM_SDIO=1
BOARD=MINISTM32_STRIVE
STLIB=STM32F10X_HD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o
OPTIMIZEFLAGS+=-O3
else ifdef MINISTM32_ANGLED_VE
EMBEDDED=1
USE_GRAPHICS=1
USE_LCD_FSMC=1
DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes
DEFINES+=-DUSE_RTC
DEFINES+=-DSWD_ONLY_NO_JTAG
USE_FILESYSTEM=1
USE_FILESYSTEM_SDIO=1
BOARD=MINISTM32_ANGLED_VE
STLIB=STM32F10X_HD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o
OPTIMIZEFLAGS+=-O3
else ifdef MINISTM32_ANGLED_VG
EMBEDDED=1
USE_GRAPHICS=1
USE_LCD_FSMC=1
DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes
DEFINES+=-DUSE_RTC
DEFINES+=-DSWD_ONLY_NO_JTAG
USE_FILESYSTEM=1
USE_FILESYSTEM_SDIO=1
BOARD=MINISTM32_ANGLED_VG
STLIB=STM32F10X_XL
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_xl.o
OPTIMIZEFLAGS+=-O3
else ifdef HYSTM32_24
EMBEDDED=1
USE_GRAPHICS=1
USE_LCD_FSMC=1
DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes
USE_FILESYSTEM=1
USE_FILESYSTEM_SDIO=1
USE_NEOPIXEL=1
BOARD=HYSTM32_24
STLIB=STM32F10X_HD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o
OPTIMIZEFLAGS+=-O3
else ifdef HYSTM32_28
EMBEDDED=1
USE_GRAPHICS=1
USE_LCD_FSMC=1
DEFINES+=-DILI9325_BITBANG # bit-bang the LCD driver
USE_NEOPIXEL=1
SAVE_ON_FLASH=1
#USE_FILESYSTEM=1 # just normal SPI
BOARD=HYSTM32_28
STLIB=STM32F10X_MD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o
OPTIMIZEFLAGS+=-Os
else ifdef HYSTM32_32
EMBEDDED=1
USE_GRAPHICS=1
USE_LCD_FSMC=1
DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes
USE_FILESYSTEM=1
USE_FILESYSTEM_SDIO=1
USE_NEOPIXEL=1
BOARD=HYSTM32_32
STLIB=STM32F10X_HD
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o
OPTIMIZEFLAGS+=-Os
else ifdef NUCLEOF401RE
EMBEDDED=1
NUCLEO=1
USE_GRAPHICS=1
USE_NET=1
USE_NEOPIXEL=1
BOARD=NUCLEOF401RE
STLIB=STM32F401xE
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o
OPTIMIZEFLAGS+=-O3
else ifdef NUCLEOF411RE
EMBEDDED=1
NUCLEO=1
USE_GRAPHICS=1
USE_NET=1
USE_NEOPIXEL=1
BOARD=NUCLEOF411RE
STLIB=STM32F401xE
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o
OPTIMIZEFLAGS+=-O3
else ifdef NUCLEOL476RG
EMBEDDED=1
NUCLEO=1
USE_GRAPHICS=1
USE_NET=1
BOARD=NUCLEOL476RG
STLIB=STM32L476xx
#PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32l4/lib/startup_stm32f401xx.o
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32l4/lib/CMSIS/Device/ST/STM32L4xx/Source/Templates/gcc/startup_stm32l476xx.o
OPTIMIZEFLAGS+=-O3
else ifdef EMW3165
#ifndef WICED_ROOT
#$(error WICED_ROOT must be defined)
#endif
EMBEDDED=1
#USE_GRAPHICS=1
#USE_NET=1
BOARD=EMW3165
STLIB=STM32F411xE
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f40_41xxx.o
OPTIMIZEFLAGS+=-O2
#WICED=1
DEFINES += -DPIN_NAMES_DIRECT -DHSE_VALUE=26000000UL
else ifdef STM32F4DISCOVERY
EMBEDDED=1
USE_NET=1
USE_GRAPHICS=1
USE_NEOPIXEL=1
DEFINES += -DUSE_USB_OTG_FS=1
BOARD=STM32F4DISCOVERY
STLIB=STM32F407xx
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f40_41xxx.o
OPTIMIZEFLAGS+=-O3
else ifdef STM32F411DISCOVERY
EMBEDDED=1
USE_NET=1
USE_GRAPHICS=1
USE_NEOPIXEL=1
DEFINES += -DUSE_USB_OTG_FS=1
BOARD=STM32F411DISCOVERY
STLIB=STM32F411xE
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o
OPTIMIZEFLAGS+=-O3
else ifdef STM32F401CDISCOVERY
EMBEDDED=1
USE_NET=1
USE_GRAPHICS=1
USE_NEOPIXEL=1
DEFINES += -DUSE_USB_OTG_FS=1
BOARD=STM32F401CDISCOVERY
STLIB=STM32F401xE
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o
OPTIMIZEFLAGS+=-O3
else ifdef STM32F429IDISCOVERY
EMBEDDED=1
USE_GRAPHICS=1
USE_NEOPIXEL=1
DEFINES += -DUSE_USB_OTG_FS=1
BOARD=STM32F429IDISCOVERY
STLIB=STM32F429xx
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f429_439xx.o
OPTIMIZEFLAGS+=-O3
else ifdef STM32F3DISCOVERY
EMBEDDED=1
USE_NET=1
USE_GRAPHICS=1
USE_NEOPIXEL=1
BOARD=STM32F3DISCOVERY
STLIB=STM32F3XX
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f3/lib/startup_stm32f30x.o
OPTIMIZEFLAGS+=-Os
else ifdef STM32VLDISCOVERY
EMBEDDED=1
SAVE_ON_FLASH=1
USE_NEOPIXEL=1
BOARD=STM32VLDISCOVERY
STLIB=STM32F10X_MD_VL
PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md_vl.o
OPTIMIZEFLAGS+=-Os # short on program memory
ifdef MINISTM32_ANGLED_VE
else ifdef MICROBIT
EMBEDDED=1
@ -645,7 +348,7 @@ ifdef DEBUG
else
OPTIMIZEFLAGS=-g
endif
ifdef EFM32
ifeq ($(FAMILY),EFM32GG)
DEFINES += -DDEBUG_EFM=1 -DDEBUG=1
endif
DEFINES+=-DDEBUG
@ -1068,7 +771,7 @@ include make/family/NRF52.make
endif
ifeq ($(FAMILY), EFM32GG)
include make/family/EFM32.make
include make/family/EFM32GG.make
endif
ifeq ($(FAMILY), ESP8266)

View File

@ -7,10 +7,18 @@ info = {
'link': [ "https://www.silabs.com/products/mcu/lowpower/Pages/efm32gg-stk3700.aspx" ],
'variables': 1720,
'binary_name': 'espruino_%v_efm32ggstk.bin',
'default_console' : "EV_SERIAL4",
'default_console' : "EV_SERIAL4",
'default_console_tx' : "E0",
'default_console_rx' : "E1",
'default_console_baudrate' : "115200",
'build' : {
'optimizeflags' : '-Os',
'libraries' : [
],
'makefile' : [
'DEFINES+= -DEFM32GG890F1024=1 # This should be EFM32GG990F1024, temporary hack to avoid the #USB on line 772 in jsinteractive.c'
]
}
};
chip = {
'part': "EFM32GG990F1024",
@ -29,7 +37,7 @@ chip = {
devices = {
'BTN1' : { 'pin' : 'B9', 'pinstate' : 'IN', 'inverted' : 'true' },
'BTN2' : { 'pin' : 'B10', 'pinstate' : 'IN' },
'LED1' : { 'pin' : 'E2' },
'LED1' : { 'pin' : 'E2' },
'LED2' : { 'pin' : 'E3' },
}

View File

@ -21,7 +21,18 @@ info = {
'link' : [ "http://coocox.org" ],
'variables' : 715,
'binary_name' : 'espruino_%v_embedded_pi.bin',
'build' : {
'optimizeflags' : '-Os',
'libraries' : [
],
'makefile' : [
'SAVE_ON_FLASH=1',
'STLIB=STM32F10X_MD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o'
]
}
};
chip = {
'part' : "STM32F103RB", #T6
'family' : "STM32F1",
@ -46,7 +57,7 @@ devices = {
'BTN1' : { 'pin' : 'D38' }, # 'C9'
'USB' : { 'pin_disc' : 'D39',
'pin_dm' : 'D40',
'pin_bp' : 'D41'
'pin_bp' : 'D41'
},
# 'SD' : { 'pin_cs' : 'D25',#'D2',
# 'pin_di' : 'D34',#'B15',
@ -58,9 +69,9 @@ devices = {
board = {
'top' : [ 'D15','D14', 'AREF','GND', 'D13', 'D12', 'D11','D10', 'D9', 'D8', '', 'D7', 'D6', 'D5', 'D4', 'D3', 'D2', 'D1', 'D0'],
'top2' : [ 'D39','D38','D37', 'D36', 'D35', 'D34', 'D33','D32', 'D31', 'D30', '', 'D29', 'D28', 'D27', 'D26', 'D25', 'D24', 'D23', 'D22'],
'bottom' : [ 'NC','DVCC','RST', '3.3', '5', 'GNDA', 'GND', 'VIN', '', 'D16', 'D17', 'D18', 'D19', 'D14', 'D15'],
'bottom' : [ 'NC','DVCC','RST', '3.3', '5', 'GNDA', 'GND', 'VIN', '', 'D16', 'D17', 'D18', 'D19', 'D14', 'D15'],
'bottom2' : [ 'BOOT0','BOOT1','RST', '3.3', 'NC', 'GND', 'D26', 'D28', '', 'D40', 'D41', 'D42', 'D43', 'D44', 'D45'],
'right2' : [ 'NC','D13','D12' ],
'right' : [ 'GND','D11','NC' ],
@ -98,7 +109,7 @@ board["_css"] = """
#left {
top: 155px;
right: 520px;
}
#left2 {
top:155px;
@ -121,7 +132,7 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xb.csv', 6, 10, 11)
# Embedded Pi Mapping
pinmapping = {
pinmapping = {
'D0' :'PC11',
'D1' :'PC10',
'D2' :'PC12',
@ -158,11 +169,11 @@ def get_pins():
'D33':'PA7',
'D34':'PA6',
'D35':'PA5',
'D36':'PC13',
'D36':'PC13',
'D37':'PB5',
'D38':'PB11',
'D39':'PB10',
'D40':'PC0',
'D38':'PB11',
'D39':'PB10',
'D40':'PC0',
'D41':'PC1',
'D42':'PC2',
'D43':'PC3',
@ -175,9 +186,8 @@ def get_pins():
pin = copy.deepcopy(pinutils.findpin(pins, pinmapping[newname], True))
pin["name"] = "P"+newname
pin["sortingname"] = newname[0] + newname[1:].rjust(2,'0')
newpins.append(pin)
newpins.append(pin)
# Because 'pinmapping' is NOT stored in order!!!
newpins = sorted(newpins, key=lambda pin: pin["sortingname"])
# print(json.dumps(newpins, sort_keys=True, indent=2))
# print(json.dumps(newpins, sort_keys=True, indent=2))
return newpins

View File

@ -28,10 +28,17 @@ info = {
'variables' : 2048, # was 7423: (128-12)*1024/16-1
'binary_name' : 'espruino_%v_emw3165.bin',
'build' : {
'defines' : [
'optimizeflags' : '-O2',
'libraries' : [
],
'makefile' : [
'DEFINES+=-DPIN_NAMES_DIRECT -DHSE_VALUE=26000000UL',
'STLIB=STM32F411xE',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f40_41xxx.o'
]
}
}
};
chip = {
'part' : "STM32F411CE",
'family' : "STM32F4",

View File

@ -20,13 +20,21 @@ info = {
'serial_bootloader' : True,
'binary_name' : 'espruino_%v_hystm32_24_ve.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_LCD_FSMC',
'USE_FILESYSTEM',
'USE_FILESYSTEM_SDIO'
]
}
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'LCD_FSMC',
'FILESYSTEM',
'FILESYSTEM_SDIO',
'NEOPIXEL'
],
'makefile' : [
'STLIB=STM32F10X_HD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o',
'DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes',
'DEFINES+=-DUSE_RTC'
]
}
};
chip = {
'part' : "STM32F103VE", #T6
@ -98,8 +106,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
}
};
@ -150,5 +158,3 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xe.csv', 6, 10, 11)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

View File

@ -20,11 +20,21 @@ info = {
'serial_bootloader' : True,
'binary_name' : 'espruino_%v_hystm32_28_rb.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_LCD_FSMC'
]
}
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'LCD_FSMC',
'FILESYSTEM',
'NEOPIXEL'
],
'makefile' : [
'SAVE_ON_FLASH=1',
'STLIB=STM32F10X_MD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o',
'DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes',
'DEFINES+=-DUSE_RTC'
]
}
};
chip = {
'part' : "STM32F103RB", #T6
@ -97,8 +107,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
}
};

View File

@ -1,4 +1,3 @@
#!/bin/false
# This file is part of Espruino, a JavaScript interpreter for Microcontrollers
#
# Copyright (C) 2013 Gordon Williams <gw@pur3.co.uk>
@ -21,14 +20,22 @@ info = {
'serial_bootloader' : True,
'binary_name' : 'espruino_%v_hystm32_32_vc.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_LCD_FSMC',
'USE_FILESYSTEM',
'USE_FILESYSTEM_SDIO'
]
}
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'LCD_FSMC',
'FILESYSTEM',
'FILESYSTEM_SDIO',
'NEOPIXEL'
],
'makefile' : [
'STLIB=STM32F10X_HD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o',
'DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes'
]
}
};
chip = {
'part' : "STM32F103VC",
'family' : "STM32F1",
@ -94,8 +101,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
}
};
@ -144,5 +151,3 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xe.csv', 6, 10, 11)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

View File

@ -21,13 +21,20 @@ info = {
'variables' : 1020,
'binary_name' : 'espruino_%v_hytiny_stm103t.bin',
'build' : {
'defines' : [
'USE_GRAPHICS'
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS'
],
'makefile' : [
'SAVE_ON_FLASH=1',
'STLIB=STM32F10X_MD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o'
]
}
};
chip = {
'part' : "STM32F103TBT6",
'part' : "STM32F103TBT6",
'family' : "STM32F1",
'package' : "VFQFPN36",
'ram' : 20,
@ -52,7 +59,7 @@ devices = {
'LED1' : { 'pin' : 'A1' },
'USB' : { 'pin_disc' : 'A0',
'pin_dm' : 'A11',
'pin_dp' : 'A12'
'pin_dp' : 'A12'
},
};

View File

@ -22,8 +22,18 @@ info = {
'variables' : 715,
'binary_name' : 'espruino_%v_maplemini.bin',
'build' : {
'optimizeflags' : '-Os',
'libraries' : [
'FILESYSTEM'
],
'makefile' : [
'SAVE_ON_FLASH=1',
'STLIB=STM32F10X_MD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o'
]
}
};
chip = {
'part' : "STM32F103CB", #T6
'family' : "STM32F1",
@ -42,10 +52,10 @@ devices = {
# 'OSC' : { 'pin_1' : 'D0',
# 'pin_2' : 'D1' },
'LED1' : { 'pin' : 'D33' },
'BTN1' : { 'pin' : 'D32' },
'BTN1' : { 'pin' : 'D32' },
'USB' : { 'pin_disc' : 'D34',
'pin_dm' : 'D24',
'pin_dp' : 'D23'
'pin_dp' : 'D23'
},
};
@ -59,7 +69,7 @@ board = {
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xb.csv', 6, 10, 11)
# Olimexino/Maple pins have stupid names
pinmapping = {
pinmapping = {
'D0' :'PB11',
'D1' :'PB10',
'D2' :'PB2',
@ -75,7 +85,7 @@ def get_pins():
'D12':'PC15',
'D13':'PC14',
'D14':'PC13',
'D15':'PB7',
'D15':'PB7',
'D16':'PB6',
'D17':'PB5',
'D18':'PB4',
@ -102,9 +112,8 @@ def get_pins():
pin = pinutils.findpin(pins, pinmapping[newname], True)
pin["name"] = "P"+newname
pin["sortingname"] = newname[0] + newname[1:].rjust(2,'0')
newpins.append(pin)
newpins.append(pin)
# Because 'pinmapping' is NOT stored in order!!!
newpins = sorted(newpins, key=lambda pin: pin["sortingname"])
# print(json.dumps(newpins, sort_keys=True, indent=2))
# print(json.dumps(newpins, sort_keys=True, indent=2))
return newpins

View File

@ -21,17 +21,23 @@ info = {
'variables' : 3250,
'binary_name' : 'espruino_%v_mapleret6_stm32.bin',
'build' : {
'defines' : [
'USE_NET',
'USE_GRAPHICS',
'USE_FILESYSTEM',
'USE_TV',
'USE_HASHLIB'
'optimizeflags' : '-Os',
'libraries' : [
'NET',
'GRAPHICS',
'FILESYSTEM',
'TV',
'HASHLIB'
],
'makefile' : [
'STLIB=STM32F10X_HD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o'
]
}
};
chip = {
'part' : "STM32F103RET6",
'part' : "STM32F103RET6",
'family' : "STM32F1",
'package' : "LQFP64",
'ram' : 64,
@ -53,7 +59,7 @@ devices = {
'BTN1' : { 'pin' : 'D38' }, # 'C9'
'USB' : { 'pin_disc' : 'D39',
'pin_dm' : 'D40',
'pin_dp' : 'D41'
'pin_dp' : 'D41'
},
# 'SD' : { 'pin_cs' : 'D25',#'D2',
# 'pin_di' : 'D34',#'B15',
@ -103,7 +109,7 @@ board["_css"] = """
#left {
top: 155px;
right: 520px;
}
#left2 {
top:155px;
@ -137,7 +143,7 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xe.csv', 6, 10, 11)
# Olimexino/Maple pins have stupid names
pinmapping = {
pinmapping = {
'D0' :'PA3',
'D1' :'PA2',
'D2' :'PA0',
@ -187,9 +193,8 @@ def get_pins():
pin = pinutils.findpin(pins, pinmapping[newname], True)
pin["name"] = "P"+newname
pin["sortingname"] = newname[0] + newname[1:].rjust(2,'0')
newpins.append(pin)
newpins.append(pin)
# Because 'pinmapping' is NOT stored in order!!!
newpins = sorted(newpins, key=lambda pin: pin["sortingname"])
# print(json.dumps(newpins, sort_keys=True, indent=2))
# print(json.dumps(newpins, sort_keys=True, indent=2))
return newpins

View File

@ -20,14 +20,23 @@ info = {
'serial_bootloader' : True,
'binary_name' : 'espruino_%v_mini_stm32_ve.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_LCD_FSMC',
'USE_FILESYSTEM',
'USE_FILESYSTEM_SDIO'
]
}
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'LCD_FSMC',
'FILESYSTEM',
'FILESYSTEM_SDIO'
],
'makefile' : [
'STLIB=STM32F10X_HD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o',
'DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes',
'DEFINES+=-DUSE_RTC',
'DEFINES+=-DSWD_ONLY_NO_JTAG'
]
}
};
chip = {
'part' : "STM32F103VE", #T6
'family' : "STM32F1",
@ -150,5 +159,3 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xe.csv', 6, 10, 11)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

View File

@ -21,13 +21,21 @@ info = {
'serial_bootloader' : True,
'binary_name' : 'espruino_%v_mini_stm32_vg.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_LCD_FSMC',
'USE_FILESYSTEM',
'USE_FILESYSTEM_SDIO'
]
}
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'LCD_FSMC',
'FILESYSTEM',
'FILESYSTEM_SDIO'
],
'makefile' : [
'STLIB=STM32F10X_XL',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_xl.o',
'DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes',
'DEFINES+=-DUSE_RTC',
'DEFINES+=-DSWD_ONLY_NO_JTAG'
]
}
};
chip = {
'part' : "STM32F103VG", #T6
@ -151,5 +159,3 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xe.csv', 6, 10, 11)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

View File

@ -20,14 +20,23 @@ info = {
'serial_bootloader' : True,
'binary_name' : 'espruino_%v_strive_mini_stm32.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_LCD_FSMC',
'USE_FILESYSTEM',
'USE_FILESYSTEM_SDIO'
]
}
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'LCD_FSMC',
'FILESYSTEM',
'FILESYSTEM_SDIO'
],
'makefile' : [
'STLIB=STM32F10X_HD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o',
'DEFINES+=-DFSMC_BITBANG # software implementation because FSMC HW causes strange crashes',
'DEFINES+=-DUSE_RTC',
'DEFINES+=-DSWD_ONLY_NO_JTAG'
]
}
};
chip = {
'part' : "STM32F103VE", #T6
'family' : "STM32F1",
@ -150,5 +159,3 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xe.csv', 6, 10, 11)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

View File

@ -25,11 +25,19 @@ info = {
'variables' : 5376, # (96-12)*1024/16-1
'binary_name' : 'espruino_%v_nucleof401re.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-O3',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'NUCLEO=1',
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32F401xE',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o'
]
}
}
};
chip = {
'part' : "STM32F401RET6",
@ -68,8 +76,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
# 'USB' : { 'pin_otg_pwr' : 'C0',
# 'pin_dm' : 'A11',

View File

@ -25,11 +25,19 @@ info = {
'variables' : 7423, # (128-12)*1024/16-1
'binary_name' : 'espruino_%v_nucleof411re.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-O3',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'NUCLEO=1',
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32F401xE',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o'
]
}
}
};
chip = {
'part' : "STM32F411RET6",
@ -68,8 +76,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
# 'USB' : { 'pin_otg_pwr' : 'C0',
# 'pin_dm' : 'A11',

View File

@ -25,12 +25,21 @@ info = {
'variables' : 5119, # (96-16)*1024/16-1
'binary_name' : 'espruino_%v_nucleol476rg.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-O3',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'NUCLEO=1',
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32L476xx',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32l4/lib/CMSIS/Device/ST/STM32L4xx/Source/Templates/gcc/startup_stm32l476xx.o'
]
}
}
};
chip = {
'part' : "STM32L476RG",
'family' : "STM32L4",
@ -67,8 +76,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
# 'USB' : { 'pin_otg_pwr' : 'C0',
# 'pin_dm' : 'A11',

View File

@ -21,13 +21,20 @@ info = {
'variables' : 1020,
'binary_name' : 'espruino_%v_olimexino_stm32.bin',
'build' : {
'defines' : [
'USE_FILESYSTEM'
'optimizeflags' : '-Os',
'libraries' : [
'FILESYSTEM'
],
'makefile' : [
'SAVE_ON_FLASH=1',
'STLIB=STM32F10X_MD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md.o'
]
}
};
chip = {
'part' : "STM32F103RBT6",
'part' : "STM32F103RBT6",
'family' : "STM32F1",
'package' : "LQFP64",
'ram' : 20,
@ -56,7 +63,7 @@ devices = {
'BTN1' : { 'pin' : 'D38' }, # 'C9'
'USB' : { 'pin_disc' : 'D39',
'pin_dm' : 'D40',
'pin_dp' : 'D41'
'pin_dp' : 'D41'
},
'SD' : { 'pin_cs' : 'D25',#'D2',
'pin_di' : 'D34',#'B15',
@ -104,7 +111,7 @@ board["_css"] = """
#left {
top: 155px;
right: 520px;
}
#left2 {
top:155px;
@ -127,7 +134,7 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xb.csv', 6, 10, 11)
# Olimexino/Maple pins have stupid names
pinmapping = {
pinmapping = {
'D0' :'PA3',
'D1' :'PA2',
'D2' :'PA0',
@ -177,9 +184,8 @@ def get_pins():
pin = pinutils.findpin(pins, pinmapping[newname], True)
pin["name"] = "P"+newname
pin["sortingname"] = newname[0] + newname[1:].rjust(2,'0')
newpins.append(pin)
newpins.append(pin)
# Because 'pinmapping' is NOT stored in order!!!
newpins = sorted(newpins, key=lambda pin: pin["sortingname"])
# print(json.dumps(newpins, sort_keys=True, indent=2))
# print(json.dumps(newpins, sort_keys=True, indent=2))
return newpins

View File

@ -1,174 +0,0 @@
#!/bin/false
# This file is part of Espruino, a JavaScript interpreter for Microcontrollers
#
# Copyright (C) 2013 Gordon Williams <gw@pur3.co.uk>
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# ----------------------------------------------------------------------------------------
# This file contains information for a specific board - the available pins, and where LEDs,
# Buttons, and other in-built peripherals are. It is used to build documentation as well
# as various source and header files for Espruino.
# ----------------------------------------------------------------------------------------
import pinutils;
import json;
info = {
'name' : "Olimexino STM32 / Leaflabs Maple (with bootloader)",
'link' : [ "https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/", "http://leaflabs.com/devices/maple/" ],
'variables' : 254,
};
chip = {
'part' : "STM32F103RB", #T6
'family' : "STM32F1",
'package' : "LQFP64",
'ram' : 17, # bootloader :(
'flash' : 108, # bootloader :(
'speed' : 72,
'usart' : 3,
'spi' : 2,
'i2c' : 2,
'adc' : 3,
'dac' : 0,
};
devices = {
# 'OSC' : { 'pin_1' : 'D0',
# 'pin_2' : 'D1' },
'OSC_RTC' : { 'pin_1' : 'D22',
'pin_2' : 'D23' },
'LED1' : { 'pin' : 'D13' },
'LED2' : { 'pin' : 'D3' },
'BTN1' : { 'pin' : 'D38' }, # 'C9'
'USB' : { 'pin_disc' : 'D39',
'pin_dm' : 'D40',
'pin_dp' : 'D41'
},
'SD' : { 'pin_cs' : 'D25',#'D2',
'pin_di' : 'D34',#'B15',
'pin_do' : 'D33',#'B14',
'pin_clk' : 'D32'}, #'B13'
};
# left-right, or top-bottom order
board = {
'top' : [ 'D14', 'GND', 'D13', 'D12', 'D11','D10', 'D9', 'D8', '', 'D7', 'D6', 'D5', 'D4', 'D3', 'D2', 'D1', 'D0'],
'bottom' : [ 'RST', '3.3', '3.3A', 'GNDA', 'GND', 'VIN', '', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5'],
'right' : [ 'D23','D25','D27','D29','D31','D33','D35','D37' ],
'right2' : [ 'D24','D26','D28','D30','D32','D34','D36','GND' ],
'left' : [ '3V3','D7','D29','D12','D13' ],
'left2' : [ 'GND','D8','D20','D11','D4' ],
'_pinmap' : { 'A0':'D15', 'A1':'D16', 'A2':'D17', 'A3':'D18', 'A4':'D19', 'A5':'D20' }
};
board["left"].reverse()
board["left2"].reverse()
board["right"].reverse()
board["right2"].reverse()
board["_css"] = """
#board {
width: 540px;
height: 418px;
top: 300px;
left: 200px;
background-image: url(img/OLIMEXINO_STM32.jpg);
}
#boardcontainer {
height: 850px;
}
#top {
top: -20px;
left: 140px;
}
#bottom {
top: 431px;
left: 220px;
}
#left {
top: 155px;
right: 520px;
}
#left2 {
top:155px;
left: 20px;
}
#right {
top: 155px;
left: 520px;
}
#right2 {
top: 155px;
right: 20px;
}
""";
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f103xb.csv', 6, 10, 11)
# Olimexino/Maple pins have stupid names
pinmapping = {
'D0' :'PA3',
'D1' :'PA2',
'D2' :'PA0',
'D3' :'PA1',
'D4' :'PB5',
'D5' :'PB6',
'D6' :'PA8',
'D7' :'PA9',
'D8' :'PA10',
'D9' :'PB7',
'D10':'PA4',
'D11':'PA7',
'D12':'PA6',
'D13':'PA5',
'D14':'PB8',
'D15':'PC0', # shared with A0-A15
'D16':'PC1',
'D17':'PC2',
'D18':'PC3',
'D19':'PC4',
'D20':'PC5',
'D21':'PC13',
'D22':'PC14',
'D23':'PC15',
'D24':'PB9',
'D25':'PD2',
'D26':'PC10',
'D27':'PB0',
'D28':'PB1',
'D29':'PB10',
'D30':'PB11',
'D31':'PB12',
'D32':'PB13',
'D33':'PB14',
'D34':'PB15',
'D35':'PC6',
'D36':'PC7',
'D37':'PC8',
'D38':'PC9', # for button
'D39':'PC12', # for USB disc
'D40':'PA11', # for USB dm
'D41':'PA12', # for USB dp
};
newpins = []
for newname in pinmapping:
# print newname
pin = pinutils.findpin(pins, pinmapping[newname], True)
pin["name"] = "P"+newname
pin["sortingname"] = newname[0] + newname[1:].rjust(2,'0')
newpins.append(pin)
# Because 'pinmapping' is NOT stored in order!!!
newpins = sorted(newpins, key=lambda pin: pin["sortingname"])
# print(json.dumps(newpins, sort_keys=True, indent=2))
return newpins

View File

@ -21,12 +21,17 @@ info = {
'variables': 3250,
'binary_name': 'espruino_%v_olimexino_stm32_re.bin',
'build' : {
'defines' : [
'USE_NET',
'USE_GRAPHICS',
'USE_FILESYSTEM',
'USE_TV',
'USE_HASHLIB'
'optimizeflags' : '-Os',
'libraries' : [
'NET',
'GRAPHICS',
'FILESYSTEM',
'TV',
'HASHLIB'
],
'makefile' : [
'STLIB=STM32F10X_HD',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o'
]
}
}
@ -99,7 +104,7 @@ board["_css"] = """
#left {
top: 155px;
right: 520px;
}
#left2 {
top:155px;

View File

@ -21,11 +21,17 @@ info = {
'variables' : 1720,
'binary_name' : 'espruino_%v_stm32f3discovery.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-O3',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'STLIB=STM32F3XX',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f3/lib/startup_stm32f30x.o'
]
}
}
};
chip = {
'part' : "STM32F303VCT6",
@ -83,15 +89,15 @@ devices = {
'pin_sda' : 'B9',
'pin_scl' : 'B6',
'pin_mclk' : 'C7',
'pin_sclk' : 'C10',
'pin_sdin' : 'C12',
'pin_sclk' : 'C10',
'pin_sdin' : 'C12',
'pin_lrck' : 'A4',
'pin_nrst' : 'D4',
'pin_nrst' : 'D4',
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
};
@ -133,6 +139,6 @@ board["_css"] = """
def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f303.csv', 3, 6, 7)
pins = pinutils.scan_pin_af_file(pins, 'stm32f303_af.csv', 1, 2)
# print(json.dumps(pins, sort_keys=True, indent=2))
# print(json.dumps(pins, sort_keys=True, indent=2))
# return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])
return pinutils.fill_gaps_in_pin_list(pins)

View File

@ -21,11 +21,19 @@ info = {
'variables' : 3040,
'binary_name' : 'espruino_%v_stm32f401cdiscovery.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-Os',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'SAVE_ON_FLASH=1',
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32F401xE',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o'
]
}
}
};
chip = {
'part' : "STM32F401VCT6",
@ -84,10 +92,10 @@ devices = {
'pin_sda' : 'B9',
'pin_scl' : 'B6',
'pin_mclk' : 'C7',
'pin_sclk' : 'C10',
'pin_sdin' : 'C12',
'pin_sclk' : 'C10',
'pin_sdin' : 'C12',
'pin_lrck' : 'A4',
'pin_nrst' : 'D4',
'pin_nrst' : 'D4',
},
};
@ -131,5 +139,3 @@ def get_pins():
pins = pinutils.scan_pin_file([], 'stm32f401.csv', 5, 8, 9)
pins = pinutils.scan_pin_af_file(pins, 'stm32f401_af.csv', 0, 1)
return pinutils.only_from_package(pinutils.fill_gaps_in_pin_list(pins), chip["package"])

View File

@ -21,11 +21,18 @@ info = {
'variables' : 5450,
'binary_name' : 'espruino_%v_stm32f411discovery.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-O3',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32F411xE',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f401xx.o'
]
}
}
};
chip = {
'part' : "STM32F411RET6",

View File

@ -21,12 +21,19 @@ info = {
'variables' : 5450,
'binary_name' : 'espruino_%v_stm32f429idiscovery.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-Os',
'libraries' : [
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32F429xx',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f429_439xx.o'
]
}
}
};
chip = {
'part' : "STM32F429ZIT6",
'family' : "STM32F4",
@ -52,7 +59,7 @@ devices = {
'USB' : { 'pin_dm' : 'B14',
'pin_dp' : 'B15',
'pin_vbus' : 'B13',
'pin_id' : 'B12',
'pin_id' : 'B12',
'pin_pso' : 'C4', # Power supply enable
'pin_oc' : 'C5', # Overcurrent
},
@ -91,7 +98,7 @@ devices = {
'pin_d16' : 'G6',
'pin_rd' : 'D12', # RDX
'pin_wr' : 'D13',# WRQ (or SPI DC - data=1/command=0)
'pin_cs' : 'C2', # SPI CS (enable=0)
'pin_cs' : 'C2', # SPI CS (enable=0)
'pin_en' : 'F10',
'pin_vsync' : 'A4',
'pin_hsync' : 'C6',
@ -104,7 +111,7 @@ devices = {
'pin_im3' : 'D7', # solder bridge normally open, pulled to 0
},
'SDRAM' : {
'pin_sdcke1' : 'B5',
'pin_sdcke1' : 'B5',
'pin_sdne1' : 'B6',
'pin_sdnwe' : 'C0',
'pin_d2' : 'D0',
@ -145,8 +152,8 @@ devices = {
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
};

View File

@ -21,12 +21,20 @@ info = {
'variables' : 5450,
'binary_name' : 'espruino_%v_stm32f4discovery.bin',
'build' : {
'defines' : [
'USE_GRAPHICS',
'USE_NET',
'optimizeflags' : '-O3',
'libraries' : [
'NET',
'GRAPHICS',
'NEOPIXEL'
],
'makefile' : [
'DEFINES+=-DUSE_USB_OTG_FS=1',
'STLIB=STM32F407xx',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f4/lib/startup_stm32f40_41xxx.o'
]
}
}
};
chip = {
'part' : "STM32F407VGT6",
'family' : "STM32F4",
@ -70,15 +78,15 @@ devices = {
'pin_sda' : 'B9',
'pin_scl' : 'B6',
'pin_mclk' : 'C7',
'pin_sclk' : 'C10',
'pin_sdin' : 'C12',
'pin_sclk' : 'C10',
'pin_sdin' : 'C12',
'pin_lrck' : 'A4',
'pin_nrst' : 'D4',
'pin_nrst' : 'D4',
},
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
};

View File

@ -20,12 +20,19 @@ info = {
'variables' : 500,
'binary_name' : 'espruino_%v_stm32vldiscovery.bin',
'build' : {
'defines' : [
'optimizeflags' : '-Os',
'libraries' : [
'NEOPIXEL'
],
'makefile' : [
'SAVE_ON_FLASH=1',
'STLIB=STM32F10X_MD_VL',
'PRECOMPILED_OBJS+=$(ROOT)/targetlibs/stm32f1/lib/startup_stm32f10x_md_vl.o'
]
}
};
chip = {
'part' : "STM32F100RBT6",
'part' : "STM32F100RBT6",
'family' : "STM32F1",
'package' : "LQFP64",
'ram' : 8,
@ -47,8 +54,8 @@ devices = {
'BTN1' : { 'pin' : 'A0' },
'JTAG' : {
'pin_MS' : 'A13',
'pin_CK' : 'A14',
'pin_DI' : 'A15'
'pin_CK' : 'A14',
'pin_DI' : 'A15'
},
};

View File

@ -1,72 +0,0 @@
include ARM.make
EFM32=1
ARCHFLAGS += -mcpu=cortex-m3 -mthumb
GECKO_SDK_PATH=$(ROOT)/targetlibs/Gecko_SDK
ARM_HAS_OWN_CMSIS = 1
INCLUDE += -I$(GECKO_SDK_PATH)/cmsis/Include
LINKER_FILE = $(GECKO_SDK_PATH)/Device/SiliconLabs/EFM32GG/Source/GCC/efm32gg.ld
INCLUDE += -I$(ROOT)/targets/efm32
SOURCES += \
targets/efm32/main.c \
targets/efm32/jshardware.c
INCLUDE += -I$(GECKO_SDK_PATH)/Device/SiliconLabs/EFM32GG/Include
INCLUDE += -I$(GECKO_SDK_PATH)/emdrv/gpiointerrupt/inc
# INCLUDE += -I$(GECKO_SDK_PATH)/emdrv/ustimer/inc
INCLUDE += -I$(GECKO_SDK_PATH)/emdrv/rtcdrv/inc
INCLUDE += -I$(GECKO_SDK_PATH)/emdrv/nvm/inc
INCLUDE += -I$(GECKO_SDK_PATH)/emdrv/common/inc
INCLUDE += -I$(GECKO_SDK_PATH)/emlib/inc
TARGETSOURCES += \
$(GECKO_SDK_PATH)/Device/SiliconLabs/EFM32GG/Source/GCC/startup_efm32gg.c \
$(GECKO_SDK_PATH)/Device/SiliconLabs/EFM32GG/Source/system_efm32gg.c \
$(GECKO_SDK_PATH)/emlib/src/em_gpio.c \
$(GECKO_SDK_PATH)/emlib/src/em_cmu.c \
$(GECKO_SDK_PATH)/emlib/src/em_assert.c \
$(GECKO_SDK_PATH)/emlib/src/em_emu.c \
$(GECKO_SDK_PATH)/emlib/src/em_msc.c \
$(GECKO_SDK_PATH)/emlib/src/em_rtc.c \
$(GECKO_SDK_PATH)/emlib/src/em_int.c \
$(GECKO_SDK_PATH)/emlib/src/em_system.c \
$(GECKO_SDK_PATH)/emlib/src/em_timer.c \
$(GECKO_SDK_PATH)/emlib/src/em_usart.c \
$(GECKO_SDK_PATH)/emdrv/gpiointerrupt/src/gpiointerrupt.c \
$(GECKO_SDK_PATH)/emdrv/rtcdrv/src/rtcdriver.c \
$(GECKO_SDK_PATH)/emdrv/nvm/src/nvm_hal.c
# $(GECKO_SDK_PATH)/emdrv/ustimer/src/ustimer.c
# $(GECKO_SDK_PATH)/emdrv/nvm/src/nvm.c \
# $(GECKO_SDK_PATH)/emdrv/nvm/src/nvm_hal.c \
# $(GECKO_SDK_PATH)/emlib/src/em_acmp.c \
# $(GECKO_SDK_PATH)/emlib/src/em_adc.c \
# $(GECKO_SDK_PATH)/emlib/src/em_aes.c \
# $(GECKO_SDK_PATH)/emlib/src/em_burtc.c \
# $(GECKO_SDK_PATH)/emlib/src/em_crc.c \
# $(GECKO_SDK_PATH)/emlib/src/em_cryotimer.c \
# $(GECKO_SDK_PATH)/emlib/src/em_crypto.c \
# $(GECKO_SDK_PATH)/emlib/src/em_dac.c \
# $(GECKO_SDK_PATH)/emlib/src/em_dbg.c \
# $(GECKO_SDK_PATH)/emlib/src/em_dma.c \
# $(GECKO_SDK_PATH)/emlib/src/em_ebi.c \
# $(GECKO_SDK_PATH)/emlib/src/em_i2c.c \
# $(GECKO_SDK_PATH)/emlib/src/em_idac.c \
# $(GECKO_SDK_PATH)/emlib/src/em_lcd.c \
# $(GECKO_SDK_PATH)/emlib/src/em_ldma.c \
# $(GECKO_SDK_PATH)/emlib/src/em_lesense.c \
# $(GECKO_SDK_PATH)/emlib/src/em_letimer.c \
# $(GECKO_SDK_PATH)/emlib/src/em_leuart.c \
# $(GECKO_SDK_PATH)/emlib/src/em_mpu.c \
# $(GECKO_SDK_PATH)/emlib/src/em_opamp.c \
# $(GECKO_SDK_PATH)/emlib/src/em_pcnt.c \
# $(GECKO_SDK_PATH)/emlib/src/em_prs.c \
# $(GECKO_SDK_PATH)/emlib/src/em_rmu.c \
# $(GECKO_SDK_PATH)/emlib/src/em_rtcc.c \
# $(GECKO_SDK_PATH)/emlib/src/em_vcmp.c \
# $(GECKO_SDK_PATH)/emlib/src/em_wdog.c

View File

@ -1,5 +1,3 @@
include make/common/STM32_LL.make
ARCHFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp
DEFINES += -DSTM32L4
DEFINES += -DSTM32L476xx
@ -54,3 +52,5 @@ targetlibs/stm32l4/lib/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c
ifdef USB
include make/common/STM32_USB.make
endif
include make/common/STM32_LL.make

View File

@ -3,12 +3,15 @@
ifdef PUCKJS
$(error You now need to build with 'BOARD=PUCKJS make')
endif
ifdef ESPRUINO_1V3
$(error You now need to build with 'BOARD=ESPRUINOBOARD make')
endif
ifdef PICO_1V3
$(error You now need to build with 'BOARD=PICO make')
endif
ifdef ESPRUINOWIFI
$(error You now need to build with 'BOARD=ESPRUINOWIFI make')
endif
@ -16,6 +19,7 @@ endif
ifdef ESP8266
$(error You now need to build with 'BOARD=ESP8266 make')
endif
ifdef ESP32
$(error You now need to build with 'BOARD=ESP32 make')
endif