picoco/scripts/install_tiny_usb.bash
2025-03-05 15:44:21 +01:00

67 lines
1.8 KiB
Bash
Executable File

#!/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 <version> (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}"