Add Nano 2040 to release build.

This commit is contained in:
iabdalkader 2021-06-17 15:37:58 +02:00
parent 21f4c0e0da
commit 626440713e
4 changed files with 49 additions and 34 deletions

View File

@ -1,5 +1,5 @@
os: linux os: linux
dist: xenial dist: bionic
sudo: required sudo: required
language: c language: c
stage: build stage: build
@ -21,21 +21,25 @@ cache:
- "${HOME}/persist" - "${HOME}/persist"
script: script:
# update submodules # Update submodules.
- git submodule update --init --depth=1 --no-single-branch - git submodule update --init --depth=1 --no-single-branch
- git -C src/micropython/ submodule update --init --depth=1 - git -C src/micropython/ submodule update --init --depth=1
# install ARM GCC # Install ARM GCC.
- pushd . - |
- cd ~ && mkdir gcc && cd gcc mkdir ${HOME}/gcc
- GCC_URL="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" GCC_URL="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2"
- wget -O gcc.tar.bz2 ${GCC_URL} wget --no-check-certificate -O - ${GCC_URL} | tar --strip-components=1 -jx -C ${HOME}/gcc
- tar -jxf gcc.tar.bz2 --strip 1 export PATH=${HOME}/gcc/bin:${PATH}
- exportline="export PATH=\$HOME/gcc/bin:\$PATH"
- if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
- . ~/.profile
- popd
- arm-none-eabi-gcc --version - arm-none-eabi-gcc --version
# build firmware # Install recent cmake if needed.
- |
if [[ ${TARGET} == ARDUINO_NANO_RP2040_CONNECT ]]; then
mkdir ${HOME}/cmake
CMAKE_URL="https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.tar.gz"
wget --no-check-certificate -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${HOME}/cmake
export PATH=${HOME}/cmake/bin:${PATH}
fi
# Build the firmware.
- make -j$(nproc) -C src/micropython/mpy-cross - make -j$(nproc) -C src/micropython/mpy-cross
- make -j$(nproc) TARGET=$TARGET -C src - make -j$(nproc) TARGET=$TARGET -C src
- mkdir ~/build/$TARGET - mkdir ~/build/$TARGET
@ -92,6 +96,13 @@ jobs:
name: NANO33_WORKSPACE # workspace names are escaped. name: NANO33_WORKSPACE # workspace names are escaped.
paths: ~/build/$TARGET paths: ~/build/$TARGET
- stage: build
env: TARGET=ARDUINO_NANO_RP2040_CONNECT
workspaces:
create:
name: ARDUINO_NANO_RP2040_CONNECT_WORKSPACE # workspace names are escaped.
paths: ~/build/$TARGET
- stage: build - stage: build
env: TARGET=WINC1500 env: TARGET=WINC1500
workspaces: workspaces:
@ -122,10 +133,11 @@ jobs:
- PORTENTA_WORKSPACE - PORTENTA_WORKSPACE
- OPENMVPT_WORKSPACE - OPENMVPT_WORKSPACE
- NANO33_WORKSPACE - NANO33_WORKSPACE
- ARDUINO_NANO_RP2040_CONNECT_WORKSPACE
- WINC1500_WORKSPACE - WINC1500_WORKSPACE
- CYW4343_WORKSPACE - CYW4343_WORKSPACE
script: script:
- zip -r firmware_${TRAVIS_TAG}.zip OPENMV2 OPENMV3 OPENMV4 OPENMV4P PORTENTA OPENMVPT NANO33 WINC1500 CYW4343 - zip -r firmware_${TRAVIS_TAG}.zip OPENMV2 OPENMV3 OPENMV4 OPENMV4P PORTENTA OPENMVPT NANO33 ARDUINO_NANO_RP2040_CONNECT WINC1500 CYW4343
deploy: deploy:
provider: releases provider: releases
api_key: api_key:

@ -1 +1 @@
Subproject commit 1ebfb96b1ae3acd8d8aecf08339403f9016d6cc2 Subproject commit ade673c7e1acaf50ff8d2b68fed61b1468fea764

View File

@ -2,8 +2,8 @@
set(TOP_DIR $ENV{TOP_DIR}) set(TOP_DIR $ENV{TOP_DIR})
set(TARGET $ENV{TARGET}) set(TARGET $ENV{TARGET})
set(PORT rp2) set(PORT rp2)
set(BUILD ${TOP_DIR}/build) set(BUILD ${TOP_DIR}/build/rp2)
set(FW_DIR ${BUILD}/bin) set(BIN_DIR ${TOP_DIR}/build/bin)
set(OMV_DIR omv) set(OMV_DIR omv)
set(UVC_DIR uvc) set(UVC_DIR uvc)
set(CM4_DIR cm4) set(CM4_DIR cm4)
@ -34,28 +34,20 @@ target_compile_definitions(${MICROPY_TARGET} PRIVATE
${OMV_BOARD_MODULES_DEFINITIONS} ${OMV_BOARD_MODULES_DEFINITIONS}
) )
#target_compile_options(${MICROPY_TARGET} PRIVATE
#)
# Generate DCMI PIO header
pico_generate_pio_header(${MICROPY_TARGET}
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/dcmi.pio
)
# Linker script # Linker script
add_custom_command( add_custom_command(
OUTPUT ${FW_DIR}/rp2.ld OUTPUT ${BUILD}/rp2.ld
COMMENT "Preprocessing linker script" COMMENT "Preprocessing linker script"
COMMAND "${CMAKE_C_COMPILER}" -P -E -I ${OMV_BOARD_CONFIG_DIR} -DLINKER_SCRIPT ${PORT_DIR}/rp2.ld.S > ${FW_DIR}/rp2.ld COMMAND "${CMAKE_C_COMPILER}" -P -E -I ${OMV_BOARD_CONFIG_DIR} -DLINKER_SCRIPT ${PORT_DIR}/rp2.ld.S > ${BUILD}/rp2.ld
DEPENDS ${OMV_BOARD_CONFIG_DIR}/omv_boardconfig.h ${PORT_DIR}/rp2.ld.S DEPENDS ${OMV_BOARD_CONFIG_DIR}/omv_boardconfig.h ${PORT_DIR}/rp2.ld.S
VERBATIM VERBATIM
) )
add_custom_target( add_custom_target(
LinkerScript LinkerScript
ALL DEPENDS ${FW_DIR}/rp2.ld ALL DEPENDS ${BUILD}/rp2.ld
VERBATIM VERBATIM
) )
pico_set_linker_script(${MICROPY_TARGET} ${FW_DIR}/rp2.ld) pico_set_linker_script(${MICROPY_TARGET} ${BUILD}/rp2.ld)
# Add OMV qstr sources # Add OMV qstr sources
file(GLOB OMV_SRC_QSTR1 ${TOP_DIR}/${OMV_DIR}/modules/*.c) file(GLOB OMV_SRC_QSTR1 ${TOP_DIR}/${OMV_DIR}/modules/*.c)
@ -188,6 +180,11 @@ if(MICROPY_PY_SENSOR)
target_compile_definitions(${MICROPY_TARGET} PRIVATE target_compile_definitions(${MICROPY_TARGET} PRIVATE
MICROPY_PY_SENSOR=1 MICROPY_PY_SENSOR=1
) )
# Generate DCMI PIO header
pico_generate_pio_header(${MICROPY_TARGET}
${TOP_DIR}/${OMV_DIR}/ports/${PORT}/dcmi.pio
)
endif() endif()
if(MICROPY_PY_AUDIO) if(MICROPY_PY_AUDIO)
@ -251,3 +248,10 @@ if(MICROPY_PY_ULAB)
ULAB_CONFIG_FILE="${OMV_BOARD_CONFIG_DIR}/ulab_config.h" ULAB_CONFIG_FILE="${OMV_BOARD_CONFIG_DIR}/ulab_config.h"
) )
endif() endif()
add_custom_command(TARGET ${MICROPY_TARGET}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${BIN_DIR}
COMMAND ${CMAKE_COMMAND} -E copy firmware.elf firmware.bin firmware.uf2 ${BIN_DIR}
VERBATIM
)

View File

@ -11,16 +11,15 @@
export PORT export PORT
export TARGET export TARGET
export TOP_DIR export TOP_DIR
export CC=
export CXX=
MICROPY_ARGS += BOARD=$(TARGET) BUILD=$(FW_DIR) OMV_CMAKE=$(TOP_DIR)/$(OMV_DIR)/ports/$(PORT)/omv_portconfig.cmake MICROPY_ARGS += BOARD=$(TARGET) BUILD=$(BUILD)/rp2 OMV_CMAKE=$(TOP_DIR)/$(OMV_DIR)/ports/$(PORT)/omv_portconfig.cmake
################################################### ###################################################
all: $(OPENMV) all: $(OPENMV)
$(BUILD): $(FIRMWARE):
$(MKDIR) -p $@
$(FIRMWARE): | $(BUILD)
$(MAKE) -C $(MICROPY_DIR)/ports/$(PORT) $(MICROPY_ARGS) $(MAKE) -C $(MICROPY_DIR)/ports/$(PORT) $(MICROPY_ARGS)
# This target generates the firmware image. # This target generates the firmware image.