am64x/am243x/am263x : initial commit for motor control sdk setup scripts
Initial commit for motor control sdk setup scripts Fixes: PINDSW-5641 Signed-off-by: Naresh A <nareshk@ti.com>
This commit is contained in:
commit
9d77903d58
1
LICENSE.md
Normal file
1
LICENSE.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
Please refer to docs/manifest.html for license information.
|
||||||
27
README.md
Normal file
27
README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<div align="center">
|
||||||
|
|
||||||
|
<img src="https://upload.wikimedia.org/wikipedia/commons/b/ba/TexasInstruments-Logo.svg" width="150">
|
||||||
|
|
||||||
|
# Motor Control SDK SETUP
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Motor Control SDK SETUP is an auxiliary repository to help setup the [Motor Control SDK](https://github.com/TexasInstruments/motor-control-sdk)
|
||||||
|
for build. This repo mainly contains shell scripts which will download and install the dependencies
|
||||||
|
for Motor Control SDK which includes but are not limited to:
|
||||||
|
|
||||||
|
- Code Composer Studio
|
||||||
|
- TI ARM CLANG
|
||||||
|
- SysConfig
|
||||||
|
- NodeJS and required packages
|
||||||
|
|
||||||
|
Currently the scripts only support a Linux / Git Bash environment. Support will
|
||||||
|
be added soon for Windows native environment.
|
||||||
|
|
||||||
|
## Usage in Motor Control SDK
|
||||||
|
|
||||||
|
This repo is meant to be used with Motor Control SDK repo for installing the dependencies.
|
||||||
|
Refer [Motor Control SDK Core repository](https://github.com/TexasInstruments/motor-control-sdk) for
|
||||||
|
more details regarding the Motor Control SDK.
|
||||||
54
am243x/download_components.sh
Normal file
54
am243x/download_components.sh
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to download and install Motor Control SDK baselined components
|
||||||
|
#
|
||||||
|
POSITIONAL=()
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
case $key in
|
||||||
|
--motor_control_folder=*)
|
||||||
|
motor_control_folder="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--install_dir=*)
|
||||||
|
install_dir="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_nodejs=*)
|
||||||
|
skip_nodejs="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_doxygen=*)
|
||||||
|
skip_doxygen="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo Usage: $0 [options]
|
||||||
|
echo
|
||||||
|
echo Options
|
||||||
|
echo "--motor_control_folder Path to the Motor Control SDK folder. Default value is motor_control_sdk"
|
||||||
|
echo "--install_dir Path where the tools should be installed. Default value is "${HOME}/ti""
|
||||||
|
echo "--skip_nodejs Pass "--skip_nodejs=true" to skip nodejs installation. Default value is false."
|
||||||
|
echo "--skip_doxygen Pass "--skip_doxygen=true" to skip doxygen installation. Default value is false."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
|
||||||
|
: ${motor_control_folder:="motor_control_sdk"}
|
||||||
|
: ${install_dir:="${HOME}/ti"}
|
||||||
|
: ${skip_nodejs:="false"}
|
||||||
|
: ${skip_doxygen:="false"}
|
||||||
|
|
||||||
|
release_version=09_00_00
|
||||||
|
product_family="am243x"
|
||||||
|
THIS_DIR=$(dirname $(realpath $0))
|
||||||
|
BASE_DIR=$(realpath ${THIS_DIR}/..)
|
||||||
|
script=${BASE_DIR}/releases/${release_version}/${product_family}/download_components.sh
|
||||||
|
|
||||||
|
#Reuse current release version download script
|
||||||
|
echo "Invoking ${script}"
|
||||||
|
${script} --motor_control_folder="${motor_control_folder}" --install_dir="${install_dir}" --skip_nodejs="${skip_nodejs}" --skip_doxygen="${skip_doxygen}"
|
||||||
54
am263x/download_components.sh
Normal file
54
am263x/download_components.sh
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to download and install Motor Control SDK baselined components
|
||||||
|
#
|
||||||
|
POSITIONAL=()
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
case $key in
|
||||||
|
--motor_control_folder=*)
|
||||||
|
motor_control_folder="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--install_dir=*)
|
||||||
|
install_dir="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_nodejs=*)
|
||||||
|
skip_nodejs="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_doxygen=*)
|
||||||
|
skip_doxygen="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo Usage: $0 [options]
|
||||||
|
echo
|
||||||
|
echo Options
|
||||||
|
echo "--motor_control_folder Path to the Motor Control SDK folder. Default value is motor_control_sdk"
|
||||||
|
echo "--install_dir Path where the tools should be installed. Default value is "${HOME}/ti""
|
||||||
|
echo "--skip_nodejs Pass "--skip_nodejs=true" to skip nodejs installation. Default value is false."
|
||||||
|
echo "--skip_doxygen Pass "--skip_doxygen=true" to skip doxygen installation. Default value is false."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
|
||||||
|
: ${motor_control_folder:="motor_control_sdk"}
|
||||||
|
: ${install_dir:="${HOME}/ti"}
|
||||||
|
: ${skip_nodejs:="false"}
|
||||||
|
: ${skip_doxygen:="false"}
|
||||||
|
|
||||||
|
release_version=09_00_00
|
||||||
|
product_family="am263x"
|
||||||
|
THIS_DIR=$(dirname $(realpath $0))
|
||||||
|
BASE_DIR=$(realpath ${THIS_DIR}/..)
|
||||||
|
script=${BASE_DIR}/releases/${release_version}/${product_family}/download_components.sh
|
||||||
|
|
||||||
|
#Reuse current release version download script
|
||||||
|
echo "Invoking ${script}"
|
||||||
|
${script} --motor_control_folder="${motor_control_folder}" --install_dir="${install_dir}" --skip_nodejs="${skip_nodejs}" --skip_doxygen="${skip_doxygen}"
|
||||||
55
am64x/download_components.sh
Normal file
55
am64x/download_components.sh
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to download and install Motor Control SDK baselined components
|
||||||
|
#
|
||||||
|
|
||||||
|
POSITIONAL=()
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
case $key in
|
||||||
|
--motor_control_folder=*)
|
||||||
|
motor_control_folder="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--install_dir=*)
|
||||||
|
install_dir="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_nodejs=*)
|
||||||
|
skip_nodejs="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_doxygen=*)
|
||||||
|
skip_doxygen="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo Usage: $0 [options]
|
||||||
|
echo
|
||||||
|
echo Options
|
||||||
|
echo "--motor_control_folder Path to the Motor Control SDK folder. Default value is motor_control_sdk"
|
||||||
|
echo "--install_dir Path where the tools should be installed. Default value is "${HOME}/ti""
|
||||||
|
echo "--skip_nodejs Pass "--skip_nodejs=true" to skip nodejs installation. Default value is false."
|
||||||
|
echo "--skip_doxygen Pass "--skip_doxygen=true" to skip doxygen installation. Default value is false."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
|
||||||
|
: ${motor_control_folder:="motor_control_sdk"}
|
||||||
|
: ${install_dir:="${HOME}/ti"}
|
||||||
|
: ${skip_nodejs:="false"}
|
||||||
|
: ${skip_doxygen:="false"}
|
||||||
|
|
||||||
|
release_version=09_00_00
|
||||||
|
product_family="am64x"
|
||||||
|
THIS_DIR=$(dirname $(realpath $0))
|
||||||
|
BASE_DIR=$(realpath ${THIS_DIR}/..)
|
||||||
|
script=${BASE_DIR}/releases/${release_version}/${product_family}/download_components.sh
|
||||||
|
|
||||||
|
#Reuse current release version download script
|
||||||
|
echo "Invoking ${script}"
|
||||||
|
${script} --motor_control_folder="${motor_control_folder}" --install_dir="${install_dir}" --skip_nodejs="${skip_nodejs}" --skip_doxygen="${skip_doxygen}"
|
||||||
21
releases/09_00_00/.component_versions
Normal file
21
releases/09_00_00/.component_versions
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
#CCS
|
||||||
|
CCS_VERSION="12.1.0.00007"
|
||||||
|
|
||||||
|
#TI Compilers
|
||||||
|
CGT_TI_ARM_CLANG_VERSION="2.1.2"
|
||||||
|
CGT_TI_ARM_CLANG_VERSION_SUFFIX="LTS"
|
||||||
|
|
||||||
|
NODEJS_VERSION="12.18.4"
|
||||||
|
SYSCFG_VERSION="1.14.0_2667"
|
||||||
|
DOXYGEN_VERSION="1.8.20"
|
||||||
|
|
||||||
|
#GCC Compilers
|
||||||
|
GCC_AARCH64_VERSION="9.2-2019.12"
|
||||||
|
GCC_ARM_VERSION="7-2017-q4-major"
|
||||||
|
GCC_ARM_VERSION_FOLDER="7-2017q4"
|
||||||
|
|
||||||
|
#MCU PLUS SDK
|
||||||
|
MCU_PLUS_SDK_AM64X="09.00.00.01"
|
||||||
|
MCU_PLUS_SDK_AM243X="09.00.00.01"
|
||||||
|
MCU_PLUS_SDK_AM263X="09.00.00.01"
|
||||||
92
releases/09_00_00/am243x/download_components.sh
Normal file
92
releases/09_00_00/am243x/download_components.sh
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to download and install current baselined components
|
||||||
|
#
|
||||||
|
|
||||||
|
install_win_package_on_linux="false"
|
||||||
|
POSITIONAL=()
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
case $key in
|
||||||
|
--install_win_package_on_linux)
|
||||||
|
install_win_package_on_linux="true"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--motor_control_folder=*)
|
||||||
|
motor_control_folder="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--install_dir=*)
|
||||||
|
install_dir="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_nodejs=*)
|
||||||
|
skip_nodejs="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_doxygen=*)
|
||||||
|
skip_doxygen="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo Usage: $0 [options]
|
||||||
|
echo
|
||||||
|
echo Options
|
||||||
|
echo --install_win_package_on_linux Used to install windows packages in linux environment for release packaging
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
THIS_DIR=$(dirname $(realpath $0))
|
||||||
|
BASE_DIR=${THIS_DIR}/../../..
|
||||||
|
COMPONENT_DIR=${BASE_DIR}/../..
|
||||||
|
: ${motor_control_folder:="motor_control_sdk"}
|
||||||
|
: ${install_dir:="${HOME}/ti"}
|
||||||
|
: ${skip_nodejs:="false"}
|
||||||
|
: ${skip_doxygen:="false"}
|
||||||
|
|
||||||
|
#Source common component versions
|
||||||
|
source ${THIS_DIR}/../.component_versions
|
||||||
|
source ${BASE_DIR}/scripts/common.sh
|
||||||
|
|
||||||
|
gcc_arm_install_folder="gcc-arm-none-eabi-${GCC_ARM_VERSION}"
|
||||||
|
gcc_arm_download_file="gcc-arm-none-eabi-${GCC_ARM_VERSION}-linux.tar.bz2"
|
||||||
|
|
||||||
|
if [ "$install_win_package_on_linux" == "true" ]; then
|
||||||
|
echo "Installing windows packages on linux machine...."
|
||||||
|
#Nothing yet!!
|
||||||
|
fi
|
||||||
|
|
||||||
|
clang_url_folder="${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}"
|
||||||
|
clang_install_folder="ti-cgt-armllvm_${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}"
|
||||||
|
clang_install_file="ti_cgt_armllvm_${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}_linux-x64_installer.bin"
|
||||||
|
|
||||||
|
|
||||||
|
# MCU + SDK
|
||||||
|
mcu_sdk_version="${MCU_PLUS_SDK_AM243X}"
|
||||||
|
platform="am243x"
|
||||||
|
|
||||||
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
|
echo "Installing windows packages"
|
||||||
|
#TODO
|
||||||
|
else
|
||||||
|
install_ccs ${CCS_VERSION} ${install_dir}
|
||||||
|
#install_clang ${CGT_TI_ARM_CLANG_VERSION} ${clang_url_folder} ${clang_install_folder} ${clang_install_file} ${install_dir}
|
||||||
|
install_gcc_arm ${GCC_ARM_VERSION} ${gcc_arm_install_folder} ${gcc_arm_download_file} ${install_dir} ${GCC_ARM_VERSION_FOLDER}
|
||||||
|
install_syscfg ${SYSCFG_VERSION} ${install_dir}
|
||||||
|
install_mcu_plus_sdk ${mcu_sdk_version} ${platform} ${install_dir}
|
||||||
|
if [ "$skip_nodejs" == "false" ]; then
|
||||||
|
install_nodejs ${NODEJS_VERSION} ${motor_control_folder}
|
||||||
|
fi
|
||||||
|
if [ "$skip_doxygen" == "false" ]; then
|
||||||
|
install_doxygen ${DOXYGEN_VERSION}
|
||||||
|
fi
|
||||||
|
ccs_discover_tools ${CCS_VERSION} ${install_dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# PC OS agnostic installer packages
|
||||||
|
#
|
||||||
|
#None
|
||||||
88
releases/09_00_00/am263x/download_components.sh
Normal file
88
releases/09_00_00/am263x/download_components.sh
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to download and install current baselined components
|
||||||
|
#
|
||||||
|
|
||||||
|
install_win_package_on_linux="false"
|
||||||
|
POSITIONAL=()
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
case $key in
|
||||||
|
--install_win_package_on_linux)
|
||||||
|
install_win_package_on_linux="true"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--motor_control_folder=*)
|
||||||
|
motor_control_folder="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--install_dir=*)
|
||||||
|
install_dir="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_nodejs=*)
|
||||||
|
skip_nodejs="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_doxygen=*)
|
||||||
|
skip_doxygen="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo Usage: $0 [options]
|
||||||
|
echo
|
||||||
|
echo Options
|
||||||
|
echo --install_win_package_on_linux Used to install windows packages in linux environment for release packaging
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
THIS_DIR=$(dirname $(realpath $0))
|
||||||
|
BASE_DIR=${THIS_DIR}/../../..
|
||||||
|
COMPONENT_DIR=${BASE_DIR}/../..
|
||||||
|
: ${motor_control_folder:="motor_control_sdk"}
|
||||||
|
: ${install_dir:="${HOME}/ti"}
|
||||||
|
: ${skip_nodejs:="false"}
|
||||||
|
: ${skip_doxygen:="false"}
|
||||||
|
|
||||||
|
#Source common component versions
|
||||||
|
source ${THIS_DIR}/../.component_versions
|
||||||
|
source ${BASE_DIR}/scripts/common.sh
|
||||||
|
|
||||||
|
if [ "$install_win_package_on_linux" == "true" ]; then
|
||||||
|
echo "Installing windows packages on linux machine...."
|
||||||
|
#Nothing yet!!
|
||||||
|
fi
|
||||||
|
|
||||||
|
clang_url_folder="${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}"
|
||||||
|
clang_install_folder="ti-cgt-armllvm_${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}"
|
||||||
|
clang_install_file="ti_cgt_armllvm_${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}_linux-x64_installer.bin"
|
||||||
|
|
||||||
|
|
||||||
|
# MCU + SDK
|
||||||
|
mcu_sdk_version="${MCU_PLUS_SDK_AM263X}"
|
||||||
|
platform="am263x"
|
||||||
|
|
||||||
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
|
echo "Installing windows packages"
|
||||||
|
#TODO
|
||||||
|
else
|
||||||
|
install_ccs ${CCS_VERSION} ${install_dir}
|
||||||
|
#install_clang ${CGT_TI_ARM_CLANG_VERSION} ${clang_url_folder} ${clang_install_folder} ${clang_install_file} ${install_dir}
|
||||||
|
install_syscfg ${SYSCFG_VERSION} ${install_dir}
|
||||||
|
install_mcu_plus_sdk ${mcu_sdk_version} ${platform} ${install_dir}
|
||||||
|
if [ "$skip_nodejs" == "false" ]; then
|
||||||
|
install_nodejs ${NODEJS_VERSION} ${motor_control_folder}
|
||||||
|
fi
|
||||||
|
if [ "$skip_doxygen" == "false" ]; then
|
||||||
|
install_doxygen ${DOXYGEN_VERSION}
|
||||||
|
fi
|
||||||
|
ccs_discover_tools ${CCS_VERSION} ${install_dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# PC OS agnostic installer packages
|
||||||
|
#
|
||||||
|
#None
|
||||||
95
releases/09_00_00/am64x/download_components.sh
Normal file
95
releases/09_00_00/am64x/download_components.sh
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to download and install current baselined components
|
||||||
|
#
|
||||||
|
|
||||||
|
install_win_package_on_linux="false"
|
||||||
|
POSITIONAL=()
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
key="$1"
|
||||||
|
case $key in
|
||||||
|
--install_win_package_on_linux)
|
||||||
|
install_win_package_on_linux="true"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--motor_control_folder=*)
|
||||||
|
motor_control_folder="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--install_dir=*)
|
||||||
|
install_dir="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_nodejs=*)
|
||||||
|
skip_nodejs="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
--skip_doxygen=*)
|
||||||
|
skip_doxygen="${1#*=}"
|
||||||
|
shift # past argument
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo Usage: $0 [options]
|
||||||
|
echo
|
||||||
|
echo Options
|
||||||
|
echo --install_win_package_on_linux Used to install windows packages in linux environment for release packaging
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
set -- "${POSITIONAL[@]}" # restore positional parameters
|
||||||
|
THIS_DIR=$(dirname $(realpath $0))
|
||||||
|
BASE_DIR=${THIS_DIR}/../../..
|
||||||
|
COMPONENT_DIR=${BASE_DIR}/../..
|
||||||
|
: ${motor_control_folder:="motor_control_sdk"}
|
||||||
|
: ${install_dir:="${HOME}/ti"}
|
||||||
|
: ${skip_nodejs:="false"}
|
||||||
|
: ${skip_doxygen:="false"}
|
||||||
|
|
||||||
|
#Source common component versions
|
||||||
|
source ${THIS_DIR}/../.component_versions
|
||||||
|
source ${BASE_DIR}/scripts/common.sh
|
||||||
|
|
||||||
|
gcc_aarch64_install_folder="gcc-arm-${GCC_AARCH64_VERSION}-x86_64-aarch64-none-elf"
|
||||||
|
gcc_aarch64_download_file="gcc-arm-${GCC_AARCH64_VERSION}-x86_64-aarch64-none-elf.tar.xz"
|
||||||
|
gcc_arm_install_folder="gcc-arm-none-eabi-${GCC_ARM_VERSION}"
|
||||||
|
gcc_arm_download_file="gcc-arm-none-eabi-${GCC_ARM_VERSION}-linux.tar.bz2"
|
||||||
|
|
||||||
|
if [ "$install_win_package_on_linux" == "true" ]; then
|
||||||
|
echo "Installing windows packages on linux machine...."
|
||||||
|
#Nothing yet!!
|
||||||
|
fi
|
||||||
|
|
||||||
|
clang_url_folder="${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}"
|
||||||
|
clang_install_folder="ti-cgt-armllvm_${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}"
|
||||||
|
clang_install_file="ti_cgt_armllvm_${CGT_TI_ARM_CLANG_VERSION}.${CGT_TI_ARM_CLANG_VERSION_SUFFIX}_linux-x64_installer.bin"
|
||||||
|
|
||||||
|
|
||||||
|
# MCU + SDK
|
||||||
|
mcu_sdk_version="${MCU_PLUS_SDK_AM64X}"
|
||||||
|
platform="am64x"
|
||||||
|
|
||||||
|
if [ "${OS}" = "Windows_NT" ]; then
|
||||||
|
echo "Installing windows packages"
|
||||||
|
#TODO
|
||||||
|
else
|
||||||
|
install_ccs ${CCS_VERSION} ${install_dir}
|
||||||
|
#install_clang ${CGT_TI_ARM_CLANG_VERSION} ${clang_url_folder} ${clang_install_folder} ${clang_install_file} ${install_dir}
|
||||||
|
install_gcc_aarch64 ${GCC_AARCH64_VERSION} ${gcc_aarch64_install_folder} ${gcc_aarch64_download_file} ${install_dir}
|
||||||
|
install_gcc_arm ${GCC_ARM_VERSION} ${gcc_arm_install_folder} ${gcc_arm_download_file} ${install_dir} ${GCC_ARM_VERSION_FOLDER}
|
||||||
|
install_syscfg ${SYSCFG_VERSION} ${install_dir}
|
||||||
|
install_mcu_plus_sdk ${mcu_sdk_version} ${platform} ${install_dir}
|
||||||
|
if [ "$skip_nodejs" == "false" ]; then
|
||||||
|
install_nodejs ${NODEJS_VERSION} ${motor_control_folder}
|
||||||
|
fi
|
||||||
|
if [ "$skip_doxygen" == "false" ]; then
|
||||||
|
install_doxygen ${DOXYGEN_VERSION}
|
||||||
|
fi
|
||||||
|
ccs_discover_tools ${CCS_VERSION} ${install_dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# PC OS agnostic installer packages
|
||||||
|
#
|
||||||
|
#None
|
||||||
330
scripts/common.sh
Normal file
330
scripts/common.sh
Normal file
@ -0,0 +1,330 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to have common download, install and utility functions
|
||||||
|
#
|
||||||
|
|
||||||
|
: ${quiet_mode:="true"}
|
||||||
|
if [ "$quiet_mode" == "true" ]; then
|
||||||
|
quiet_mode_flag="-q"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# This function downloads a installer using wget
|
||||||
|
#
|
||||||
|
# $1 is the install folder name, used as tag for log
|
||||||
|
# $2 is the installer executable name
|
||||||
|
# $3 is the web path from which to download (wget) the installer
|
||||||
|
# $4 is additional options to pass to 'wget'
|
||||||
|
#
|
||||||
|
wget_download() {
|
||||||
|
if [ ! -e $2 ]
|
||||||
|
then
|
||||||
|
echo "[$1] Downloading ..."
|
||||||
|
wget $quiet_mode_flag $3/$2 $4
|
||||||
|
chmod +x $2
|
||||||
|
echo "[$1] Done"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_ccs() {
|
||||||
|
local ccs_version=$1
|
||||||
|
local install_dir=$2
|
||||||
|
local ccs_version_major=`echo ${ccs_version} | cut -d "." -f 1`
|
||||||
|
local ccs_version_short=`echo ${ccs_version} | cut -d "." -f -3 | sed -e "s|\.|_|g"`
|
||||||
|
local ccs_version_short_dot=`echo ${ccs_version_short} | sed -e "s|\_|.|g"`
|
||||||
|
local ccs_folder=ccs`echo ${ccs_version} | cut -d "." -f -3 | sed -e "s|\.||g"`
|
||||||
|
local ccs_install_file="CCS${ccs_version}_linux-x64.tar.gz"
|
||||||
|
local ccs_url="https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-J1VdearkvK/${ccs_version_short_dot}"
|
||||||
|
|
||||||
|
local ccs_untar_folder=`echo ${ccs_install_file} | sed -e "s|\.tar\.gz||g"`
|
||||||
|
|
||||||
|
echo "[ccs $1] Checking ..."
|
||||||
|
if [ ! -d "${install_dir}/${ccs_folder}" ]
|
||||||
|
then
|
||||||
|
wget_download ${ccs_folder} ${ccs_install_file} ${ccs_url}
|
||||||
|
mkdir -p "${install_dir}"
|
||||||
|
tar xf ${ccs_install_file} -C "${install_dir}"
|
||||||
|
echo "[${ccs_folder}] Installing ..."
|
||||||
|
${install_dir}/${ccs_untar_folder}/ccs_setup_${ccs_version}.run --mode unattended --prefix "${install_dir}/${ccs_folder}"
|
||||||
|
|
||||||
|
#Clean-up
|
||||||
|
rm -f ${ccs_install_file}
|
||||||
|
rm -rf "${install_dir}/${ccs_untar_folder}"
|
||||||
|
fi
|
||||||
|
echo "[${ccs_folder}] Done "
|
||||||
|
}
|
||||||
|
|
||||||
|
ccs_discover_tools() {
|
||||||
|
local ccs_version=$1
|
||||||
|
local install_dir=$2
|
||||||
|
local ccs_folder=ccs`echo ${ccs_version} | cut -d "." -f -3 | sed -e "s|\.||g"`
|
||||||
|
|
||||||
|
if [ -d "${install_dir}/${ccs_folder}" ]
|
||||||
|
then
|
||||||
|
echo "[ccs $1] Discover installed tools ..."
|
||||||
|
pushd ${install_dir}/${ccs_folder}/ccs/eclipse 1>/dev/null
|
||||||
|
|
||||||
|
./eclipse -nosplash -application com.ti.common.core.initialize -data ~/workspace 2>>ccs_log.txt
|
||||||
|
cat ./configuration/com.ti.common.project.core/compilerProperties.cache.log
|
||||||
|
|
||||||
|
popd 1>/dev/null
|
||||||
|
echo "[ccs $1] Discover installed tools ... Done "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_nodejs() {
|
||||||
|
local version=$1
|
||||||
|
local motor_control_folder=$2
|
||||||
|
local nvm_pass=1
|
||||||
|
|
||||||
|
echo "[nodejs ${version}] Installing ..."
|
||||||
|
|
||||||
|
# Check for possible node folders
|
||||||
|
if [ ! -d ~/.nvm/versions/node/v${version} ] && [ ! -d ~/node-v${version} ] && ! command -v node &> /dev/null; then
|
||||||
|
# node is not installed. Try using NVM first
|
||||||
|
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh -o install_nvm.sh
|
||||||
|
if [ -e install_nvm.sh ]; then
|
||||||
|
if grep -q "nvm" install_nvm.sh; then
|
||||||
|
bash install_nvm.sh
|
||||||
|
export NVM_DIR="${HOME}/.nvm"
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||||
|
nvm install ${version}
|
||||||
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
||||||
|
rm -f install_nvm.sh
|
||||||
|
echo "export PATH=$HOME/.nvm/versions/node/v${version}/bin:\$PATH" >> ~/.bashrc
|
||||||
|
export PATH=~/.nvm/versions/node/v${version}/bin:$PATH
|
||||||
|
else
|
||||||
|
echo "INFO: Installation of NodeJS using NVM script v${version} failed (NVM script Error)"
|
||||||
|
nvm_pass=0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "INFO: Installation of NodeJS using NVM script v${version} failed (Couldn't download NVM script)"
|
||||||
|
nvm_pass=0
|
||||||
|
fi
|
||||||
|
# Check if NVM was successful
|
||||||
|
if [ $nvm_pass == 0 ]; then
|
||||||
|
# NVM script has failed, try downloading from NodeJS website directly
|
||||||
|
echo "INFO: Trying NodeJS v${version} installation directly"
|
||||||
|
wget -q https://nodejs.org/download/release/v${version}/node-v${version}-linux-x64.tar.xz
|
||||||
|
mkdir -p ~/node-v${version}
|
||||||
|
tar -xf node-v${version}-linux-x64.tar.xz -C ~/node-v${version} --strip-components=1
|
||||||
|
echo "export PATH=$HOME/node-v${version}/bin:\$PATH" >> ~/.bashrc
|
||||||
|
export PATH=~/node-v${version}/bin:$PATH
|
||||||
|
rm -rf node-v${version}-linux-x64.tar.xz
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
export PATH=~/.nvm/versions/node/v${version}/bin:$PATH
|
||||||
|
export PATH=~/node-v${version}/bin:$PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[nodejs ${version}] Done "
|
||||||
|
|
||||||
|
#Install required nodejs packages
|
||||||
|
if [ ! -d ${motor_control_folder}/node_modules ]; then
|
||||||
|
echo "[nodejs packages] Installing required nodejs packages ..."
|
||||||
|
cd ${motor_control_folder}
|
||||||
|
npm install lodash
|
||||||
|
npm install yargs
|
||||||
|
cd - 1>/dev/null
|
||||||
|
echo "[nodejs packages] Done "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_syscfg() {
|
||||||
|
local version=$1
|
||||||
|
local install_dir=$2
|
||||||
|
local version_dot=`echo ${version} | sed -e "s|\_|.|g"`
|
||||||
|
local syscfg_install_file="sysconfig-${version}-setup.run"
|
||||||
|
local syscfg_build_version=`echo ${version} | cut -d "_" -f 2`
|
||||||
|
local syscfg_folder=sysconfig_`echo ${version} | cut -d "_" -f 1`
|
||||||
|
local syscfg_url="https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-nsUM6f7Vvb/${version_dot}"
|
||||||
|
|
||||||
|
echo "[syscfg ${version}] Checking ..."
|
||||||
|
if [ ! -d "${install_dir}/${syscfg_folder}" ]
|
||||||
|
then
|
||||||
|
echo "[syscfg ${version}] Installing ..."
|
||||||
|
|
||||||
|
wget_download ${syscfg_folder} ${syscfg_install_file} ${syscfg_url}
|
||||||
|
./${syscfg_install_file} --mode unattended --prefix "${install_dir}/${syscfg_folder}"
|
||||||
|
|
||||||
|
# Clean-up
|
||||||
|
rm -f ${syscfg_install_file}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[syscfg ${version}] Done "
|
||||||
|
}
|
||||||
|
|
||||||
|
install_clang() {
|
||||||
|
local version=$1
|
||||||
|
local clang_url_folder=$2
|
||||||
|
local clang_install_folder=$3
|
||||||
|
local clang_install_file=$4
|
||||||
|
local install_dir=$5
|
||||||
|
|
||||||
|
echo "[ti-cgt-armllvm ${version}] Checking ..."
|
||||||
|
if [ ! -d "${install_dir}"/${clang_install_folder} ]
|
||||||
|
then
|
||||||
|
wget -q https://dr-download.ti.com/software-development/ide-configuration-compiler-or-debugger/MD-ayxs93eZNN/${clang_url_folder}/${clang_install_file}
|
||||||
|
chmod +x ${clang_install_file}
|
||||||
|
./${clang_install_file} --mode unattended --prefix "${install_dir}"
|
||||||
|
|
||||||
|
#Clean-up
|
||||||
|
rm -f ${clang_install_file}
|
||||||
|
fi
|
||||||
|
echo "[ti-cgt-armllvm ${version}] Done "
|
||||||
|
}
|
||||||
|
|
||||||
|
install_gcc_aarch64() {
|
||||||
|
local version=$1
|
||||||
|
local gcc_install_folder=$2
|
||||||
|
local gcc_download_file=$3
|
||||||
|
local install_dir=$4
|
||||||
|
local gcc_url="https://developer.arm.com/-/media/Files/downloads/gnu-a/${version}/binrel"
|
||||||
|
|
||||||
|
echo "[gcc-arm-none-eabi ${version}] Checking ..."
|
||||||
|
|
||||||
|
if [ ! -d "${install_dir}"/${gcc_install_folder} ]
|
||||||
|
then
|
||||||
|
wget_download ${gcc_install_folder} ${gcc_download_file} ${gcc_url}
|
||||||
|
tar -C ${install_dir} -xf ${gcc_download_file}
|
||||||
|
|
||||||
|
#Clean-up
|
||||||
|
rm ${gcc_download_file}
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
install_gcc_arm() {
|
||||||
|
local version=$1
|
||||||
|
local gcc_install_folder=$2
|
||||||
|
local gcc_download_file=$3
|
||||||
|
local install_dir=$4
|
||||||
|
local version_folder=$5
|
||||||
|
local gcc_url="https://developer.arm.com/-/media/Files/downloads/gnu-rm/${version_folder}"
|
||||||
|
|
||||||
|
echo "[gcc-arm-none-eabi ${version}] Checking ..."
|
||||||
|
|
||||||
|
if [ ! -d "${install_dir}"/${gcc_install_folder} ]
|
||||||
|
then
|
||||||
|
wget_download ${gcc_install_folder} ${gcc_download_file} ${gcc_url}
|
||||||
|
tar -C ${install_dir} -xf ${gcc_download_file}
|
||||||
|
|
||||||
|
#Clean-up
|
||||||
|
rm ${gcc_download_file}
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
install_doxygen() {
|
||||||
|
local version=$1
|
||||||
|
local version_underscore=`echo ${version} | sed -e "s|\.|_|g"`
|
||||||
|
|
||||||
|
sudo apt-get install -y cmake flex bison
|
||||||
|
sudo apt-get remove -y doxygen
|
||||||
|
|
||||||
|
if ! command -v doxygen &> /dev/null
|
||||||
|
then
|
||||||
|
echo "[doxygen ${version}] Installing ..."
|
||||||
|
pushd ${HOME} 1>/dev/null
|
||||||
|
git clone -q https://github.com/doxygen/doxygen.git
|
||||||
|
cd doxygen
|
||||||
|
git checkout Release_${version_underscore} 1>/dev/null
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -G "Unix Makefiles" .. 1>/dev/null
|
||||||
|
make -j8 1>/dev/null
|
||||||
|
sudo make install
|
||||||
|
echo "[doxygen ${version}] Done"
|
||||||
|
popd 1>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_mcu_plus_sdk() {
|
||||||
|
local version=$1
|
||||||
|
local platform=$2
|
||||||
|
local install_dir=$3
|
||||||
|
local version_underscore=`echo ${version} | sed -e "s|\.|_|g"`
|
||||||
|
local mcu_plus_sdk_url="http://mcupnas.dhcp.ti.com/release_area/nightly_builds/mcu_plus_sdk_${platform}_nightly/latest/artifacts/output/webgen/exports"
|
||||||
|
local mcu_plus_sdk_download_file="mcu_plus_sdk_${platform}_${version_underscore}-linux-x64-installer.run"
|
||||||
|
|
||||||
|
echo "[mcu_plus_sdk_${platform}_${version_underscore}] Checking ..."
|
||||||
|
|
||||||
|
if [ ! -d "${install_dir}"/mcu_plus_sdk_${platform}_${version_underscore} ]
|
||||||
|
then
|
||||||
|
echo "[ mcu_plus_sdk_${platform}_${version_underscore} ] Downloading ..."
|
||||||
|
pwd
|
||||||
|
wget ${mcu_plus_sdk_url}/${mcu_plus_sdk_download_file}
|
||||||
|
ls -l
|
||||||
|
chmod +x ${mcu_plus_sdk_download_file}
|
||||||
|
echo "[ mcu_plus_sdk_${platform}_${version_underscore} ] Installing ..."
|
||||||
|
./${mcu_plus_sdk_download_file} --mode unattended --prefix "${install_dir}"
|
||||||
|
#Clean-up
|
||||||
|
rm ${mcu_plus_sdk_download_file} 1>/dev/null
|
||||||
|
echo "[ mcu_plus_sdk_${platform}_${version_underscore} ] Done ..."
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# This function is used to replace the tag/reference in a repo manifest file
|
||||||
|
#
|
||||||
|
# $1 is the repo manifest file path
|
||||||
|
# $2 is the repo name to grep
|
||||||
|
# $3 is the tag to replace
|
||||||
|
#
|
||||||
|
tag_replace() {
|
||||||
|
if [ $# -ge 3 ] && [ -n "$3" ]; then
|
||||||
|
#For Branches or Tags
|
||||||
|
local find_str="$2\"[ \t]*revision=\"[0-9A-Za-z_\-\.\/]*\""
|
||||||
|
local replace_str="$2\" revision=\"$3\" clone-depth=\"1\""
|
||||||
|
sed -i -e "s|$find_str|$replace_str|g" $1
|
||||||
|
else
|
||||||
|
local find_str="$2\"[ \t]*revision=(\"[0-9A-Za-z_\-]*\")"
|
||||||
|
local replace_str="$2\" revision=\1 clone-depth=\"1\""
|
||||||
|
sed -r -i -e "s|$find_str|$replace_str|g" $1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# This function is used to print the time difference
|
||||||
|
#
|
||||||
|
# $1 is the start time
|
||||||
|
#
|
||||||
|
print_time_diff() {
|
||||||
|
local end_time=`date +%s`
|
||||||
|
local start_time=$1
|
||||||
|
local deltatime=$((end_time-start_time))
|
||||||
|
local hours=$((deltatime/3600))
|
||||||
|
local minutes=$((deltatime/60))
|
||||||
|
local minutes=$((minutes%60))
|
||||||
|
local seconds=$((deltatime%60))
|
||||||
|
LC_NUMERIC="en_US.UTF-8" printf "$2: %d:%02d:%02d\n" $hours $minutes $seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
# find highest numbered file with pattern $1, strip filename and extension and keep only the version
|
||||||
|
get_version_file() {
|
||||||
|
if [ -d $3 ]; then
|
||||||
|
cd $3
|
||||||
|
find . -maxdepth 1 -name "$1*" | sort -r -n | head -n1 | sed "s/.\///" | sed "s/$2//" | sed "s/$1//"
|
||||||
|
cd - > /dev/null
|
||||||
|
else
|
||||||
|
# file not found, script will give a error later, return a reasonable file name here, i.e $1$2
|
||||||
|
echo $1$2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
recur_copy() {
|
||||||
|
#echo "Copying files of type $1 from $2 to $3 ..."
|
||||||
|
find ./ -iname $1 | \
|
||||||
|
while read filepath; do
|
||||||
|
cp --parent --target-directory=$2 "$filepath"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
tar_xz() {
|
||||||
|
tar -cJf ${2}.tar.xz ${1}
|
||||||
|
}
|
||||||
|
|
||||||
|
untar_xz() {
|
||||||
|
tar -xf ${1} ${2}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user