mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-31 05:52:55 +08:00
Merge pull request #606 from hathach/upload-binary-artifacts
Upload binary artifacts
This commit is contained in:
commit
40870f9037
16
.github/workflows/build.yml
vendored
16
.github/workflows/build.yml
vendored
@ -1,6 +1,12 @@
|
||||
name: Build
|
||||
|
||||
on: [pull_request, push, repository_dispatch]
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
repository_dispatch:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
|
||||
jobs:
|
||||
# Unit testing with Ceedling
|
||||
@ -27,6 +33,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
family:
|
||||
# Alphabetical order
|
||||
- 'imxrt'
|
||||
- 'nrf'
|
||||
- 'rp2040'
|
||||
@ -62,6 +69,11 @@ jobs:
|
||||
- name: Build
|
||||
run: python3 tools/build_family.py ${{ matrix.family }}
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.family }}-tinyusb-examples
|
||||
path: _bin/
|
||||
|
||||
# Build all no-family (opharned) boards
|
||||
build-board:
|
||||
runs-on: ubuntu-latest
|
||||
@ -69,6 +81,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
example:
|
||||
# Alphabetical order
|
||||
- 'device/audio_test'
|
||||
- 'device/board_test'
|
||||
- 'device/cdc_dual_ports'
|
||||
@ -145,6 +158,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
board:
|
||||
# Alphabetical order
|
||||
- 'espressif_kaluga_1'
|
||||
- 'espressif_saola_1'
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
# use BOARD-Directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,18 +1,18 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
# use directory name for project id
|
||||
# use BOARD-Directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
get_filename_component(TOP "${TOP}" REALPATH)
|
||||
|
||||
# Check for -DFAMILY=
|
||||
if(NOT DEFINED FAMILY)
|
||||
if(FAMILY STREQUAL "esp32s2")
|
||||
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
|
||||
project(${PROJECT})
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "Invalid FAMILY specified")
|
||||
endif()
|
||||
|
||||
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
|
||||
project(${PROJECT})
|
||||
|
||||
project(cdc_msc_freertos)
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,18 +1,18 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
# use directory name for project id
|
||||
# use BOARD-Directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
get_filename_component(TOP "${TOP}" REALPATH)
|
||||
|
||||
# Check for -DFAMILY=
|
||||
if(NOT DEFINED FAMILY)
|
||||
if(FAMILY STREQUAL "esp32s2")
|
||||
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
|
||||
project(${PROJECT})
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "Invalid FAMILY specified")
|
||||
endif()
|
||||
|
||||
include(${TOP}/hw/bsp/${FAMILY}/family.cmake)
|
||||
project(${PROJECT})
|
||||
|
||||
project(hid_composite_freertos)
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -1,5 +1,6 @@
|
||||
# use directory name for project id
|
||||
get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME)
|
||||
set(PROJECT ${BOARD}-${PROJECT})
|
||||
|
||||
# TOP is absolute path to root directory of TinyUSB git repo
|
||||
set(TOP "../../..")
|
||||
|
@ -3,7 +3,10 @@
|
||||
# ---------------------------------------
|
||||
|
||||
# Build directory
|
||||
BUILD = _build/build-$(BOARD)
|
||||
BUILD := _build/$(BOARD)
|
||||
|
||||
PROJECT := $(BOARD)-$(notdir $(CURDIR))
|
||||
BIN := $(TOP)/_bin/$(BOARD)/$(notdir $(CURDIR))
|
||||
|
||||
# Handy check parameter function
|
||||
check_defined = \
|
||||
@ -13,6 +16,12 @@ __check_defined = \
|
||||
$(if $(value $1),, \
|
||||
$(error Undefined make flag: $1$(if $2, ($2))))
|
||||
|
||||
# TODO Check if submodule haven't checkout yet
|
||||
fetch_submodule_if_empty = \
|
||||
ifeq ($(wildcard $(TOP)/$1/*),) \
|
||||
$(info $(shell git -C $(TOP) submodule update --init)) \
|
||||
endif
|
||||
|
||||
#-------------- Select the board to build for. ------------
|
||||
#BOARD_LIST = $(sort $(subst /.,,$(subst $(TOP)/hw/bsp/,,$(wildcard $(TOP)/hw/bsp/*/.))))
|
||||
#ifeq ($(filter $(BOARD),$(BOARD_LIST)),)
|
||||
@ -45,6 +54,8 @@ else
|
||||
SRC_C += $(subst $(TOP)/,,$(wildcard $(TOP)/$(FAMILY_PATH)/*.c))
|
||||
endif
|
||||
|
||||
#TODO $(call fetch_submodule_if_empty,lib/sct_neopixel)
|
||||
|
||||
#-------------- Cross Compiler ------------
|
||||
# Can be set by board, default to ARM GCC
|
||||
CROSS_COMPILE ?= arm-none-eabi-
|
||||
|
@ -2,11 +2,13 @@
|
||||
# Common make rules for all examples
|
||||
# ---------------------------------------
|
||||
|
||||
# Set all as default goal
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
ifeq ($(FAMILY),esp32s2)
|
||||
# Espressif IDF use CMake build system, this add wrapper target to call idf.py
|
||||
|
||||
.PHONY: all clean flash
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
all:
|
||||
idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) build
|
||||
@ -34,6 +36,11 @@ erase:
|
||||
monitor:
|
||||
idf.py -B$(BUILD) -DFAMILY=$(FAMILY) -DBOARD=$(BOARD) monitor
|
||||
|
||||
UF2_FAMILY_ID = 0xbfdd4eee
|
||||
$(BUILD)/$(PROJECT).uf2: $(BUILD)/$(PROJECT).hex
|
||||
@echo CREATE $@
|
||||
$(PYTHON) $(TOP)/tools/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $^
|
||||
|
||||
else ifeq ($(FAMILY),rp2040)
|
||||
|
||||
all:
|
||||
@ -98,11 +105,9 @@ $(info LDFLAGS $(LDFLAGS)) $(info )
|
||||
$(info ASFLAGS $(ASFLAGS)) $(info )
|
||||
endif
|
||||
|
||||
# Set all as default goal
|
||||
.DEFAULT_GOAL := all
|
||||
all: $(BUILD)/$(BOARD)-firmware.bin $(BUILD)/$(BOARD)-firmware.hex size
|
||||
all: $(BUILD)/$(PROJECT).bin $(BUILD)/$(PROJECT).hex size
|
||||
|
||||
uf2: $(BUILD)/$(BOARD)-firmware.uf2
|
||||
uf2: $(BUILD)/$(PROJECT).uf2
|
||||
|
||||
OBJ_DIRS = $(sort $(dir $(OBJ)))
|
||||
$(OBJ): | $(OBJ_DIRS)
|
||||
@ -113,22 +118,31 @@ else
|
||||
@$(MKDIR) -p $@
|
||||
endif
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.elf: $(OBJ)
|
||||
$(BUILD)/$(PROJECT).elf: $(OBJ)
|
||||
@echo LINK $@
|
||||
@$(CC) -o $@ $(LDFLAGS) $^ -Wl,--start-group $(LIBS) -Wl,--end-group
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.bin: $(BUILD)/$(BOARD)-firmware.elf
|
||||
$(BUILD)/$(PROJECT).bin: $(BUILD)/$(PROJECT).elf
|
||||
@echo CREATE $@
|
||||
@$(OBJCOPY) -O binary $^ $@
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.hex: $(BUILD)/$(BOARD)-firmware.elf
|
||||
$(BUILD)/$(PROJECT).hex: $(BUILD)/$(PROJECT).elf
|
||||
@echo CREATE $@
|
||||
@$(OBJCOPY) -O ihex $^ $@
|
||||
|
||||
UF2_FAMILY ?= 0x00
|
||||
$(BUILD)/$(BOARD)-firmware.uf2: $(BUILD)/$(BOARD)-firmware.hex
|
||||
# UF2 generation, iMXRT need to strip to text only before conversion
|
||||
ifeq ($(FAMILY),imxrt)
|
||||
$(BUILD)/$(PROJECT).uf2: $(BUILD)/$(PROJECT).elf
|
||||
@echo CREATE $@
|
||||
$(PYTHON) $(TOP)/tools/uf2/utils/uf2conv.py -f $(UF2_FAMILY) -c -o $@ $^
|
||||
@$(OBJCOPY) -O ihex -R .flash_config -R .ivt $^ $(BUILD)/$(PROJECT)-textonly.hex
|
||||
$(PYTHON) $(TOP)/tools/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $(BUILD)/$(PROJECT)-textonly.hex
|
||||
else
|
||||
$(BUILD)/$(PROJECT).uf2: $(BUILD)/$(PROJECT).hex
|
||||
@echo CREATE $@
|
||||
$(PYTHON) $(TOP)/tools/uf2/utils/uf2conv.py -f $(UF2_FAMILY_ID) -c -o $@ $^
|
||||
endif
|
||||
|
||||
copy-artifact: $(BUILD)/$(PROJECT).bin $(BUILD)/$(PROJECT).hex $(BUILD)/$(PROJECT).uf2
|
||||
|
||||
# We set vpath to point to the top of the tree so that the source files
|
||||
# can be located. By following this scheme, it allows a single build rule
|
||||
@ -150,7 +164,7 @@ $(BUILD)/obj/%.o: %.S
|
||||
@echo AS $(notdir $@)
|
||||
@$(CC) -x assembler-with-cpp $(ASFLAGS) -c -o $@ $<
|
||||
|
||||
size: $(BUILD)/$(BOARD)-firmware.elf
|
||||
size: $(BUILD)/$(PROJECT).elf
|
||||
-@echo ''
|
||||
@$(SIZE) $<
|
||||
-@echo ''
|
||||
@ -178,7 +192,7 @@ endif
|
||||
JLINK_IF ?= swd
|
||||
|
||||
# Flash using jlink
|
||||
flash-jlink: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash-jlink: $(BUILD)/$(PROJECT).hex
|
||||
@echo halt > $(BUILD)/$(BOARD).jlink
|
||||
@echo r > $(BUILD)/$(BOARD).jlink
|
||||
@echo loadfile $^ >> $(BUILD)/$(BOARD).jlink
|
||||
@ -188,12 +202,27 @@ flash-jlink: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(JLINKEXE) -device $(JLINK_DEVICE) -if $(JLINK_IF) -JTAGConf -1,-1 -speed auto -CommandFile $(BUILD)/$(BOARD).jlink
|
||||
|
||||
# flash STM32 MCU using stlink with STM32 Cube Programmer CLI
|
||||
flash-stlink: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash-stlink: $(BUILD)/$(PROJECT).elf
|
||||
STM32_Programmer_CLI --connect port=swd --write $< --go
|
||||
|
||||
# flash with pyocd
|
||||
flash-pyocd: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash-pyocd: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t $(PYOCD_TARGET) $<
|
||||
pyocd reset -t $(PYOCD_TARGET)
|
||||
|
||||
endif # Make target
|
||||
endif # GNU Make
|
||||
|
||||
#-------------- Artifacts --------------
|
||||
|
||||
# Create binary directory
|
||||
$(BIN):
|
||||
@$(MKDIR) -p $@
|
||||
|
||||
# Copy binaries .elf, .bin, .hex, .uf2 to BIN for upload
|
||||
# due to large size of combined artifacts, only uf2 is uploaded for now
|
||||
copy-artifact: $(BIN)
|
||||
@$(CP) $(BUILD)/$(PROJECT).uf2 $(BIN)
|
||||
#@$(CP) $(BUILD)/$(PROJECT).bin $(BIN)
|
||||
#@$(CP) $(BUILD)/$(PROJECT).hex $(BIN)
|
||||
#@$(CP) $(BUILD)/$(PROJECT).elf $(BIN)
|
||||
|
||||
|
@ -42,10 +42,10 @@ JLINK_DEVICE = DA14695
|
||||
# flash using jlink but with some twists
|
||||
flash: flash-dialog
|
||||
|
||||
flash-dialog: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash-dialog: $(BUILD)/$(PROJECT).bin
|
||||
@echo '#define SW_VERSION "v_1.0.0.1"' >$(BUILD)/version.h
|
||||
@echo '#define SW_VERSION_DATE "'`date +"%Y-%m-%d %H:%M"`'"' >>$(BUILD)/version.h
|
||||
mkimage da1469x $(BUILD)/$(BOARD)-firmware.bin $(BUILD)/version.h $^.img
|
||||
mkimage da1469x $(BUILD)/$(PROJECT).bin $(BUILD)/version.h $^.img
|
||||
cp $(TOP)/hw/bsp/$(BOARD)/product_header.dump $(BUILD)/$(BOARD)-image.bin
|
||||
cat $^.img >> $(BUILD)/$(BOARD)-image.bin
|
||||
@echo r > $(BUILD)/$(BOARD).jlink
|
||||
|
@ -42,10 +42,10 @@ JLINK_DEVICE = DA14699
|
||||
# flash using jlink but with some twists
|
||||
flash: flash-dialog
|
||||
|
||||
flash-dialog: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash-dialog: $(BUILD)/$(PROJECT).bin
|
||||
@echo '#define SW_VERSION "v_1.0.0.1"' >$(BUILD)/version.h
|
||||
@echo '#define SW_VERSION_DATE "'`date +"%Y-%m-%d %H:%M"`'"' >>$(BUILD)/version.h
|
||||
mkimage da1469x $(BUILD)/$(BOARD)-firmware.bin $(BUILD)/version.h $^.img
|
||||
mkimage da1469x $(BUILD)/$(PROJECT).bin $(BUILD)/version.h $^.img
|
||||
cp $(TOP)/hw/bsp/$(BOARD)/product_header.dump $(BUILD)/$(BOARD)-image.bin
|
||||
cat $^.img >> $(BUILD)/$(BOARD)-image.bin
|
||||
@echo r > $(BUILD)/$(BOARD).jlink
|
||||
|
@ -51,5 +51,5 @@ FREERTOS_PORT = ARM_CM33_NTZ/non_secure
|
||||
JLINK_DEVICE = LPC55S69
|
||||
|
||||
# flash using pyocd
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t LPC55S69 $<
|
||||
|
@ -27,9 +27,9 @@ CHIP_FAMILY = eptri
|
||||
FREERTOS_PORT = RISC-V
|
||||
|
||||
# flash using dfu-util
|
||||
$(BUILD)/$(BOARD)-firmware.dfu: $(BUILD)/$(BOARD)-firmware.bin
|
||||
$(BUILD)/$(PROJECT).dfu: $(BUILD)/$(PROJECT).bin
|
||||
@echo "Create $@"
|
||||
python $(TOP)/hw/bsp/$(BOARD)/dfu.py -b $^ -D 0x1209:0x5bf0 $@
|
||||
|
||||
flash: $(BUILD)/$(BOARD)-firmware.dfu
|
||||
flash: $(BUILD)/$(PROJECT).dfu
|
||||
dfu-util -D $^
|
||||
|
@ -6,5 +6,5 @@ JLINK_DEVICE = MIMXRT1062xxx6A
|
||||
|
||||
# flash by using teensy_loader_cli https://github.com/PaulStoffregen/teensy_loader_cli
|
||||
# Make sure it is in your PATH
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
teensy_loader_cli --mcu=imxrt1062 -v -w $<
|
||||
|
@ -1,3 +1,5 @@
|
||||
UF2_FAMILY_ID = 0x4fb2d5bd
|
||||
|
||||
include $(TOP)/$(BOARD_PATH)/board.mk
|
||||
|
||||
CFLAGS += \
|
||||
|
@ -42,5 +42,5 @@ FREERTOS_PORT = ARM_CM0
|
||||
JLINK_DEVICE = LPC11U37/401
|
||||
|
||||
# flash using pyocd
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t lpc11u37 $<
|
||||
|
@ -39,5 +39,5 @@ FREERTOS_PORT = ARM_CM0
|
||||
JLINK_DEVICE = LPC11U68
|
||||
|
||||
# flash using pyocd
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t lpc11u68 $<
|
||||
|
@ -43,5 +43,5 @@ FREERTOS_PORT = ARM_CM0
|
||||
JLINK_DEVICE = LPC51U68
|
||||
|
||||
# flash using pyocd (51u68 is not supported yet)
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t LPC51U68 $<
|
||||
|
@ -45,5 +45,5 @@ FREERTOS_PORT = ARM_CM4F
|
||||
JLINK_DEVICE = LPC54114J256_M4
|
||||
|
||||
# flash using pyocd
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t LPC54114 $<
|
||||
|
@ -45,5 +45,5 @@ FREERTOS_PORT = ARM_CM33_NTZ/non_secure
|
||||
JLINK_DEVICE = LPC55S69
|
||||
|
||||
# flash using pyocd
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t LPC55S69 $<
|
||||
|
@ -41,6 +41,6 @@ FREERTOS_PORT = ARM_CM3
|
||||
JLINK_DEVICE = LPC1768
|
||||
|
||||
# flash using pyocd
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
pyocd flash -t lpc1768 $<
|
||||
|
||||
|
@ -28,9 +28,9 @@ endif
|
||||
# flash target using TI MSP430-Flasher
|
||||
# http://www.ti.com/tool/MSP430-FLASHER
|
||||
# Please add its installation dir to PATH
|
||||
flash: $(BUILD)/$(BOARD)-firmware.hex
|
||||
flash: $(BUILD)/$(PROJECT).hex
|
||||
MSP430Flasher -w $< -z [VCC]
|
||||
|
||||
# flash target using mspdebug.
|
||||
flash-mspdebug: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash-mspdebug: $(BUILD)/$(PROJECT).elf
|
||||
$(MSPDEBUG) tilib "prog $<" --allow-fw-update
|
||||
|
@ -1,10 +1,10 @@
|
||||
MCU_VARIANT = nrf52840
|
||||
CFLAGS += -DNRF52840_XXAA
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --sd-req 0xFFFE --application $^ $@
|
||||
|
||||
# flash using adafruit-nrfutil dfu
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
adafruit-nrfutil --verbose dfu serial --package $^ -p $(SERIAL) -b 115200 --singlebank --touch 1200
|
||||
|
@ -8,6 +8,6 @@ LD_FILE = $(BOARD_PATH)/$(BOARD).ld
|
||||
# Add it to your PATH or change BOSSAC variable to match your installation
|
||||
BOSSAC = bossac
|
||||
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
$(BOSSAC) --port=$(SERIAL) -U -i -e -w $^ -R
|
||||
|
@ -1,10 +1,10 @@
|
||||
MCU_VARIANT = nrf52840
|
||||
CFLAGS += -DNRF52840_XXAA
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --sd-req 0xFFFE --application $^ $@
|
||||
|
||||
# flash using adafruit-nrfutil dfu
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
adafruit-nrfutil --verbose dfu serial --package $^ -p $(SERIAL) -b 115200 --singlebank --touch 1200
|
||||
|
@ -1,10 +1,10 @@
|
||||
MCU_VARIANT = nrf52840
|
||||
CFLAGS += -DNRF52840_XXAA
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --sd-req 0xFFFE --application $^ $@
|
||||
|
||||
# flash using adafruit-nrfutil dfu
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
adafruit-nrfutil --verbose dfu serial --package $^ -p $(SERIAL) -b 115200 --singlebank --touch 1200
|
||||
|
@ -1,10 +1,10 @@
|
||||
MCU_VARIANT = nrf52840
|
||||
CFLAGS += -DNRF52840_XXAA
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --sd-req 0xFFFE --application $^ $@
|
||||
|
||||
# flash using adafruit-nrfutil dfu
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
adafruit-nrfutil --verbose dfu serial --package $^ -p $(SERIAL) -b 115200 --singlebank --touch 1200
|
||||
|
@ -1,10 +1,10 @@
|
||||
MCU_VARIANT = nrf52840
|
||||
CFLAGS += -DNRF52840_XXAA
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --sd-req 0xFFFE --application $^ $@
|
||||
|
||||
# flash using adafruit-nrfutil dfu
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
adafruit-nrfutil --verbose dfu serial --package $^ -p $(SERIAL) -b 115200 --singlebank --touch 1200
|
||||
|
@ -7,9 +7,9 @@ LD_FILE = $(BOARD_PATH)/$(BOARD).ld
|
||||
# make BOARD=nrf52840_mdk_dongle SERIAL=/dev/ttyACM0 all flash
|
||||
NRFUTIL = nrfutil
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
$(NRFUTIL) pkg generate --hw-version 52 --sd-req 0x0000 --debug-mode --application $^ $@
|
||||
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
$(NRFUTIL) dfu usb-serial --package $^ -p $(SERIAL) -b 115200
|
@ -7,9 +7,9 @@ LD_FILE = $(BOARD_PATH)/$(BOARD).ld
|
||||
# make BOARD=pca10059 SERIAL=/dev/ttyACM0 all flash
|
||||
NRFUTIL = nrfutil
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.zip: $(BUILD)/$(BOARD)-firmware.hex
|
||||
$(BUILD)/$(PROJECT).zip: $(BUILD)/$(PROJECT).hex
|
||||
$(NRFUTIL) pkg generate --hw-version 52 --sd-req 0x0000 --debug-mode --application $^ $@
|
||||
|
||||
flash: $(BUILD)/$(BOARD)-firmware.zip
|
||||
flash: $(BUILD)/$(PROJECT).zip
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
$(NRFUTIL) dfu usb-serial --package $^ -p $(SERIAL) -b 115200
|
||||
|
@ -1,3 +1,5 @@
|
||||
UF2_FAMILY_ID = 0xADA52840
|
||||
|
||||
include $(TOP)/$(BOARD_PATH)/board.mk
|
||||
|
||||
CFLAGS += \
|
||||
@ -58,6 +60,3 @@ FREERTOS_PORT = ARM_CM4F
|
||||
|
||||
# For flash-jlink target
|
||||
JLINK_DEVICE = $(MCU_VARIANT)_xxaa
|
||||
|
||||
# For uf2 conversion
|
||||
UF2_FAMILY = 0xADA52840
|
||||
|
@ -52,5 +52,5 @@ JLINK_DEVICE = NUC121SC2AE
|
||||
|
||||
# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton
|
||||
# Please compile and install it from github source
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit"
|
||||
|
@ -36,5 +36,5 @@ JLINK_DEVICE = NUC125SC2AE
|
||||
|
||||
# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton
|
||||
# Please compile and install it from github source
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit"
|
||||
|
@ -56,5 +56,5 @@ JLINK_DEVICE = NUC126VG4AE
|
||||
|
||||
# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton
|
||||
# Please compile and install it from github source
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit"
|
||||
|
@ -52,5 +52,5 @@ JLINK_DEVICE = NUC120LE3
|
||||
|
||||
# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton
|
||||
# Please compile and install it from github source
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit"
|
||||
|
@ -57,5 +57,5 @@ JLINK_DEVICE = NUC505YO13Y
|
||||
|
||||
# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton
|
||||
# Please compile and install it from github source
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
openocd -f interface/nulink.cfg -f target/numicroM4.cfg -c "program $< reset exit"
|
||||
|
@ -42,5 +42,5 @@ FREERTOS_PORT = ARM_CM0
|
||||
JLINK_DEVICE = ATSAMD11D14
|
||||
|
||||
# flash using edbg
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
edbg -b -t samd11 -e -pv -f $<
|
||||
|
@ -6,6 +6,6 @@ LD_FILE = $(BOARD_PATH)/samd21g18a_flash.ld
|
||||
JLINK_DEVICE = ATSAMD21G18
|
||||
|
||||
# flash using dfu-util
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
dfu-util -a 0 -d 1d50:615c -D $< || dfu-util -a 0 -d 16d0:05a5 -D $<
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
UF2_FAMILY_ID = 0x68ed2b88
|
||||
|
||||
include $(TOP)/$(BOARD_PATH)/board.mk
|
||||
|
||||
CFLAGS += \
|
||||
@ -41,6 +43,6 @@ FREERTOS_PORT = ARM_CM0
|
||||
# Add it to your PATH or change BOSSAC variable to match your installation
|
||||
BOSSAC = bossac
|
||||
|
||||
flash-bossac: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash-bossac: $(BUILD)/$(PROJECT).bin
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
$(BOSSAC) --port=$(SERIAL) -U -i --offset=0x2000 -e -w $^ -R
|
||||
|
@ -1,3 +1,5 @@
|
||||
UF2_FAMILY_ID = 0x55114460
|
||||
|
||||
include $(TOP)/$(BOARD_PATH)/board.mk
|
||||
|
||||
CFLAGS += \
|
||||
@ -44,6 +46,6 @@ FREERTOS_PORT = ARM_CM4F
|
||||
# Add it to your PATH or change BOSSAC variable to match your installation
|
||||
BOSSAC = bossac
|
||||
|
||||
flash-bossac: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash-bossac: $(BUILD)/$(PROJECT).bin
|
||||
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
|
||||
$(BOSSAC) --port=$(SERIAL) -U -i --offset=0x4000 -e -w $^ -R
|
||||
|
@ -54,5 +54,5 @@ JLINK_DEVICE = SAME70Q21B
|
||||
# flash using edbg from https://github.com/ataradov/edbg
|
||||
# Note: SAME70's GPNVM1 must be set to 1 to boot from flash with
|
||||
# edbg -t same70 -F w0,1,1
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
edbg --verbose -t same70 -pv -f $<
|
||||
|
@ -49,5 +49,5 @@ FREERTOS_PORT = ARM_CM4F
|
||||
JLINK_DEVICE = ATSAMG55J19
|
||||
|
||||
# flash using edbg from https://github.com/ataradov/edbg
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
edbg --verbose -t samg55 -pv -f $<
|
||||
|
@ -61,13 +61,13 @@ LDFLAGS += \
|
||||
VENDOR = sony
|
||||
CHIP_FAMILY = cxd56
|
||||
|
||||
$(MKSPK): $(BUILD)/$(BOARD)-firmware.elf
|
||||
$(MKSPK): $(BUILD)/$(PROJECT).elf
|
||||
$(MAKE) -C $(TOP)/hw/mcu/sony/cxd56/mkspk
|
||||
|
||||
$(BUILD)/$(BOARD)-firmware.spk: $(MKSPK)
|
||||
$(BUILD)/$(PROJECT).spk: $(MKSPK)
|
||||
@echo CREATE $@
|
||||
@$(MKSPK) -c 2 $(BUILD)/$(BOARD)-firmware.elf nuttx $@
|
||||
@$(MKSPK) -c 2 $(BUILD)/$(PROJECT).elf nuttx $@
|
||||
|
||||
# flash
|
||||
flash: $(BUILD)/$(BOARD)-firmware.spk
|
||||
flash: $(BUILD)/$(PROJECT).spk
|
||||
@$(TOP)/hw/mcu/sony/cxd56/tools/flash_writer.py -s -c $(SERIAL) -d -b 115200 -n $<
|
||||
|
@ -46,5 +46,5 @@ FREERTOS_PORT = ARM_CM3
|
||||
JLINK_DEVICE = stm32f103c8
|
||||
|
||||
# flash target ROM bootloader
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
dfu-util -R -a 0 --dfuse-address 0x08000000 -D $<
|
||||
|
@ -8,5 +8,5 @@ SRC_S += $(ST_CMSIS)/Source/Templates/gcc/startup_stm32f405xx.s
|
||||
JLINK_DEVICE = stm32f405rg
|
||||
|
||||
# flash target ROM bootloader
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
dfu-util -R -a 0 --dfuse-address 0x08000000 -D $<
|
||||
|
@ -8,5 +8,5 @@ SRC_S += $(ST_CMSIS)/Source/Templates/gcc/startup_stm32f401xc.s
|
||||
JLINK_DEVICE = stm32f401cc
|
||||
|
||||
# flash target ROM bootloader
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
dfu-util -R -a 0 --dfuse-address 0x08000000 -D $<
|
||||
|
@ -8,5 +8,5 @@ SRC_S += $(ST_CMSIS)/Source/Templates/gcc/startup_stm32f411xe.s
|
||||
JLINK_DEVICE = stm32f411ce
|
||||
|
||||
# flash target ROM bootloader
|
||||
flash: $(BUILD)/$(BOARD)-firmware.bin
|
||||
flash: $(BUILD)/$(PROJECT).bin
|
||||
dfu-util -R -a 0 --dfuse-address 0x08000000 -D $<
|
||||
|
@ -1,3 +1,5 @@
|
||||
UF2_FAMILY_ID = 0x57755a57
|
||||
|
||||
include $(TOP)/$(BOARD_PATH)/board.mk
|
||||
|
||||
CFLAGS += \
|
||||
|
@ -1,3 +1,5 @@
|
||||
UF2_FAMILY_ID = 0x53b80f00
|
||||
|
||||
include $(TOP)/$(BOARD_PATH)/board.mk
|
||||
|
||||
CFLAGS += \
|
||||
|
@ -50,5 +50,5 @@ JLINK_DEVICE = STM32L053R8
|
||||
STM32Prog = STM32_Programmer_CLI
|
||||
|
||||
# flash target using on-board stlink
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
$(STM32Prog) --connect port=swd --write $< --go
|
||||
|
@ -53,5 +53,5 @@ JLINK_DEVICE = stm32l476vg
|
||||
STM32Prog = STM32_Programmer_CLI
|
||||
|
||||
# flash target using on-board stlink
|
||||
flash: $(BUILD)/$(BOARD)-firmware.elf
|
||||
flash: $(BUILD)/$(PROJECT).elf
|
||||
$(STM32Prog) --connect port=swd --write $< --go
|
||||
|
@ -74,8 +74,8 @@ def build_board(example, board):
|
||||
print(build_result.stdout.decode("utf-8"))
|
||||
|
||||
def build_size(example, board):
|
||||
#elf_file = 'examples/device/{}/_build/build-{}/{}-firmware.elf'.format(example, board, board)
|
||||
elf_file = 'examples/{}/_build/build-{}/*.elf'.format(example, board)
|
||||
#elf_file = 'examples/device/{}/_build/{}/{}-firmware.elf'.format(example, board, board)
|
||||
elf_file = 'examples/{}/_build/{}/*.elf'.format(example, board)
|
||||
size_output = subprocess.run('size {}'.format(elf_file), shell=True, stdout=subprocess.PIPE).stdout.decode("utf-8")
|
||||
size_list = size_output.split('\n')[1].split('\t')
|
||||
flash_size = int(size_list[0])
|
||||
|
@ -72,8 +72,8 @@ def build_board(example, board):
|
||||
print(build_result.stdout.decode("utf-8"))
|
||||
|
||||
def build_size(example, board):
|
||||
#elf_file = 'examples/device/{}/_build/build-{}/{}-firmware.elf'.format(example, board, board)
|
||||
elf_file = 'examples/device/{}/_build/build-{}/*.elf'.format(example, board)
|
||||
#elf_file = 'examples/device/{}/_build/{}/{}-firmware.elf'.format(example, board, board)
|
||||
elf_file = 'examples/device/{}/_build/{}/*.elf'.format(example, board)
|
||||
size_output = subprocess.run('size {}'.format(elf_file), shell=True, stdout=subprocess.PIPE).stdout.decode("utf-8")
|
||||
size_list = size_output.split('\n')[1].split('\t')
|
||||
flash_size = int(size_list[0])
|
||||
|
@ -66,13 +66,14 @@ def build_board(example, board):
|
||||
skip_count += 1
|
||||
print(build_format.format(example, board, success, '-', flash_size, sram_size))
|
||||
else:
|
||||
subprocess.run("make -C examples/{} BOARD={} clean".format(example, board), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
#subprocess.run("make -C examples/{} BOARD={} clean".format(example, board), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
build_result = subprocess.run("make -j -C examples/{} BOARD={} all".format(example, board), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
|
||||
if build_result.returncode == 0:
|
||||
success = SUCCEEDED
|
||||
success_count += 1
|
||||
(flash_size, sram_size) = build_size(example, board)
|
||||
subprocess.run("make -j -C examples/{} BOARD={} copy-artifact".format(example, board), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
else:
|
||||
exit_status = build_result.returncode
|
||||
success = FAILED
|
||||
@ -85,8 +86,8 @@ def build_board(example, board):
|
||||
print(build_result.stdout.decode("utf-8"))
|
||||
|
||||
def build_size(example, board):
|
||||
#elf_file = 'examples/device/{}/_build/build-{}/{}-firmware.elf'.format(example, board, board)
|
||||
elf_file = 'examples/{}/_build/build-{}/*.elf'.format(example, board)
|
||||
#elf_file = 'examples/device/{}/_build/{}/{}-firmware.elf'.format(example, board, board)
|
||||
elf_file = 'examples/{}/_build/{}/*.elf'.format(example, board)
|
||||
size_output = subprocess.run('size {}'.format(elf_file), shell=True, stdout=subprocess.PIPE).stdout.decode("utf-8")
|
||||
size_list = size_output.split('\n')[1].split('\t')
|
||||
flash_size = int(size_list[0])
|
||||
|
Loading…
x
Reference in New Issue
Block a user