blob: e987cfecf5801279af5d2eaa44325e01b8e6602a [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#
# Which build artifact should be loaded to target
#
common_file_to_load () {
if [ "$MFG_IMAGE" ]; then
FILE_NAME=$BIN_BASENAME.bin
elif [ "$BOOT_LOADER" ]; then
FILE_NAME=$BIN_BASENAME.elf.bin
else
FILE_NAME=$BIN_BASENAME.img
fi
}
#
# Check if this is executing in Windows. If so, set variable WINDOWS to 1.
# Also check if $COMSPEC is set or not.
#
windows_detect() {
WINDOWS=0
if [ "$OS" = "Windows_NT" ]; then
WINDOWS=1
fi
if [ $WINDOWS -eq 1 -a -z "$COMSPEC" ]; then
COMSPEC=cmd.exe
fi
}
#
# Check if known parameters are set in EXTRA_JTAG_CMD. Filter these
# parameters out of the arguments passed to jtag emulator software.
# Only special parameter is -port <portnumber>
#
parse_extra_jtag_cmd() {
PORT=3333
NEW_EXTRA_JTAG_CMD=""
while [ "$1" != "" ]; do
case $1 in
-port)
shift
# Many BSP scripts append their own things additional
# parameters. This is done in a way where openocd delimeter is
# immediatelly adjacent to parameters passed via newt.
# The following is to filter out the delimeter from
# PORT, but keep it present within the string passed
# to openocd.
PORT=`echo $1 | tr -c -d 0-9`
ADDITIONAL_CHARS=`echo $1 | tr -d 0-9`
NEW_EXTRA_JTAG_CMD="$NEW_EXTRA_JTAG_CMD $ADDITIONAL_CHARS"
shift
;;
*)
NEW_EXTRA_JTAG_CMD="$NEW_EXTRA_JTAG_CMD $1"
shift
;;
esac
done
echo $NEW_EXTRA_JTAG_CMD
EXTRA_JTAG_CMD=$NEW_EXTRA_JTAG_CMD
}
# Try to detect connected programmers
detect_programmer() {
DETECTED_PROGRAMMER='none'
# check if lsusb command is available
if [ $(which lsusb) ] ; then
# extract the VID:PID list for connected USB devices
USB_DEV=$(lsusb | cut -f6 -d' ')
echo "$USB_DEV" | grep -q -i 'c251:f001'
[ $? -eq 0 ] && DETECTED_PROGRAMMER='cmsis-dap'
echo "$USB_DEV" | grep -q -i '0483:3748'
[ $? -eq 0 ] && DETECTED_PROGRAMMER='stlink-v2'
echo "$USB_DEV" | grep -q -i '0483:374b'
[ $? -eq 0 ] && DETECTED_PROGRAMMER='stlink-v2-1'
echo "$USB_DEV" | grep -q -i '1366:1015'
[ $? -eq 0 ] && DETECTED_PROGRAMMER='jlink'
fi
echo "Detected programmer: $DETECTED_PROGRAMMER"
}