123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #!/bin/bash
- ####################################################################################
- # flash.sh
- #
- # Copyright (C) 2012 Gregory Nutt. All rights reserved.
- # Author: Gregory Nutt <gnutt@nuttx.org>
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met:
- #
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- # 2. Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in
- # the documentation and/or other materials provided with the
- # distribution.
- # 3. Neither the name NuttX nor the names of its contributors may be
- # used to endorse or promote products derived from this software
- # without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- # POSSIBILITY OF SUCH DAMAGE.
- #
- ####################################################################################
- set -x
- USAGE="$0 <nuttx-path>"
- # LPCXpresso 3.6 installed at /cygdrive/c/nxp/lpcxpresso_3.6"
- BINDIR="/cygdrive/c/nxp/LPCXpresso_4.2.3_292/lpcxpresso/bin"
- # RedSuite with LPC4330 support installed at /cygdrive/c/code_red/RedSuite_4.2.3_379 "
- #BINDIR="/cygdrive/c/code_red/RedSuite_4.2.3_379/redsuite/bin"
- TARGET=LPC4330
- echo "############################################################################"
- echo "# Assumptions:"
- echo "#"
- echo "# - Windows 7"
- echo "# - Binaries installed at ${BINDIR}"
- echo "# - AXF image built with Code Red"
- echo "# - ${TARGET}"
- echo "#"
- echo "# You will need to edit this is any of the above are false"
- echo "#"
- echo "############################################################################"
- echo ""
- # This is the default install location for binaries on Windows (note that this
- # path could change with the Code Red version number)
- if [ ! -d "${BINDIR}" ]; then
- echo "Directory ${BINDIR} does not exist"
- exit 1
- fi
- # This is the relative path to the booLPCXpresso utility.
- BOOTLPC="Scripts/bootLPCXpresso.cmd"
- if [ ! -x "${BINDIR}/${BOOTLPC}" ]; then
- echo "No executable at ${BINDIR}/${BOOTLPC}"
- exit 1
- fi
- # bootLPCXpresso arguments
- BOOTLPC_ARG=winusb # Win7
- # Use the LPC18xx/LPC43xx flash utility
- FLASHUTIL="crt_emu_lpc18_43_nxp" # for LPC18xx/LPC43xx parts
- if [ ! -x "${BINDIR}/${FLASHUTIL}" ]; then
- echo "No executable file at ${BINDIR}/${FLASHUTIL}"
- exit 1
- fi
- # FLUSHUTIL arguements
- WIRE="-wire=winusb" # for LPC-Link on Windows Vista/Windows 7)
- # The nuttx directory must be provided as an argument
- NUTTX=$1
- if [ -z "${NUTTX}" ]; then
- echo "Missing argument"
- echo $USAGE
- exit 1
- fi
- if [ ! -d "${NUTTX}" ]; then
- echo "Directory ${NUTTX} does not exist"
- echo $USAGE
- exit 1
- fi
- # The binary to download:
- if [ ! -f "${NUTTX}/nuttx.axf" ]; then
- if [ -f "${NUTTX}/nuttx" ]; then
- echo "Renaming ${NUTTX}/nuttx to ${NUTTX}/nuttx.axf"
- mv ${NUTTX}/nuttx ${NUTTX}/nuttx.axf
- fi
- else
- if [ -f "${NUTTX}/nuttx" ]; then
- echo "Both ${NUTTX}/nuttx ${NUTTX}/nuttx.axf exist.."
- echo " Deleting ${NUTTX}/nuttx.axf"
- rm -f ${NUTTX}/nuttx.axf
- echo "Renaming ${NUTTX}/nuttx to ${NUTTX}/nuttx.axf"
- mv ${NUTTX}/nuttx ${NUTTX}/nuttx.axf
- fi
- fi
- NUTTXPATH=`cygpath -w "${NUTTX}/nuttx.axf"`
- # First of all boot the LPC-Link using the script: ${BINDIR}/${BOOTLPC}
- cd ${BINDIR} || \
- { echo "Failed to CD to ${BINDIR}"; exit 1; }
- ./${BOOTLPC} ${BOOTLPC_ARG} || \
- { echo "'${BOOTLPC} ${BOOTLPC_ARG}' Failed"; }
- echo ""
- echo "Wait a bit"
- echo "5..."
- sleep 1
- echo "4..."
- sleep 1
- echo "3..."
- sleep 1
- echo "2..."
- sleep 1
- echo "1..."
- sleep 1
- echo "0..."
- echo ""
- # Then program the FLASH
- cd ${BINDIR} || \
- { echo "Failed to CD to ${BINDIR}"; exit 1; }
- ./${FLASHUTIL} ${WIRE} -p${TARGET} -flash-load-exec="${NUTTXPATH}"
|