#!/bin/bash ############################################### # # Download and install Tiny USB. # src: https://github.com/hathach/tinyusb # # ex: ./install_tiny_usb.bash 0.17.0 # ############################################### TINY_USB_VERSION=$1 REGEX_VERSION="^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}$" if [[ -z ${INSTALL_PATH} ]] then INSTALL_PATH=${PWD} fi usage() { echo "usage:" echo "./install_tiny_usb.bash (ex: ./install_tiny_usb.bash 2.1.0)" } if [[ ! "${TINY_USB_VERSION}" =~ ${REGEX_VERSION} ]] then echo "error: unable to parse the version: '${TINY_USB_VERSION}'" usage exit 1 fi if [[ ! -d ${INSTALL_PATH}/tinyusb/${TINY_USB_VERSION} ]] then echo "installing Tiny USB ${TINY_USB_VERSION}" tar_file="${TINY_USB_VERSION}.tar.gz" wget https://github.com/hathach/tinyusb/archive/refs/tags/${TINY_USB_VERSION}.tar.gz -P ${INSTALL_PATH} if [[ $? != 0 ]] then echo "error: unable to get tiny USB VERSION: ${TINY_USB_VERSION}" exit 1 fi mkdir -p ${INSTALL_PATH}/tinyusb tar xzvf ${INSTALL_PATH}/${tar_file} -C ${INSTALL_PATH}/tinyusb rm ${INSTALL_PATH}/${tar_file} mv ${INSTALL_PATH}/tinyusb/tinyusb-${TINY_USB_VERSION} ${INSTALL_PATH}/tinyusb/${TINY_USB_VERSION} echo "find Pico SDK to add TinyUSB support on compilation..." tiny_usb_dir=$(find ${INSTALL_PATH}/sdk -name tinyusb -type d | grep lib | head -1) if [[ ! -z ${tiny_usb_dir} ]] then cd ${tiny_usb_dir}/.. lib_dir=${PWD} rmdir ${tiny_usb_dir} ln -s ${INSTALL_PATH}/tinyusb/${TINY_USB_VERSION} tinyusb echo "Tiny USB soft link added to Pico SDK: $(ls -lrt ${lib_dir}/tinyusb)" fi echo "Tiny USB installed successfully: ${INSTALL_PATH}/tinyusb/${TINY_USB_VERSION}" exit 0 fi echo "Tiny USB already exists: ${INSTALL_PATH}/tinyusb/${TINY_USB_VERSION}"