diff --git a/configs/README.txt b/configs/README.txt index 5986f9c608..6c0cf7768a 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -981,6 +981,11 @@ configs/lm3s6965-ek an ARM Cortex-M3 MCU, the Luminary/TI LM3S6965. This OS is built with the arm-elf toolchain*. STATUS: This port is complete and mature. +configs/lpcxpresso-lpc1768 + Embedded Artists base board with NXP LPCExpresso LPC1768. This board + is based on the NXP LPC1768. The Code Red toolchain is used by default. + STATUS: Under development. + configs/m68322evb This is a work in progress for the venerable m68322evb board from Motorola. This OS is also built with the arm-elf toolchain*. STATUS: diff --git a/configs/lpcxpresso-lpc1768/README.txt b/configs/lpcxpresso-lpc1768/README.txt index 11bb0cc6e4..403864aa64 100755 --- a/configs/lpcxpresso-lpc1768/README.txt +++ b/configs/lpcxpresso-lpc1768/README.txt @@ -215,6 +215,60 @@ Code Red IDE /cygdrive/c/nxp/lpcxpreeso_3.6/bin, and /cygdrive/c/nxp/lpcxpreeso_3.6/Tools/bin + Command Line Flash Programming + ------------------------------ + + If using LPCLink as your debug connection, first of all boot the LPC-Link using + the script: + + bin\Scripts\bootLPCXpresso type + + where type = winusb for Windows XP, or type = hid for Windows Vista / 7. + + Now run the flash programming utility with the following options + + flash_utility wire -ptarget -flash-load[-exec]=filename [-load-base=base_address] + + Where flash_utility is one of: + + crt_emu_lpc11_13 (for LPC11xx or LPC13xx parts) + crt_emu_cm3_nxp (for LPC17xx parts) + crt_emu_a7_nxp (for LPC21/22/23/24 parts) + crt_emu_a9_nxp (for LPC31/32 and LPC29xx parts) + crt_emu_cm3_lmi (for TI Stellaris LM3S parts + + wire is one of: + + (empty) (for Red Probe+, Red Probe, RDB1768v1, or TI Stellaris evaluation boards) + -wire=hid (for RDB1768v2 without upgraded firmware) + -wire=winusb (for RDB1768v2 with upgraded firmware) + -wire=winusb (for LPC-Link on Windows XP) + -wire=hid (for LPC-Link on Windows Vista/ Windows 7) + + target is the target chip name. For example LPC1343, LPC1114/301, LPC1768 etc. + + filename is the file to flash program. It may be an executable (axf) or a binary + (bin) file. If using a binary file, the base_address must be specified. + + base_address is the base load address when flash programming a binary file. It + should be specified as a hex value with a leading 0x. + + Note: + - flash-load will leave the processor in a stopped state + - flash-load-exec will start execution of application as soon as download has + completed. + + Examples + To load the executable file app.axf and start it executing on an LPC1758 + target using Red Probe, use the following command line: + + crt_emu_cm3_nxp -pLPC1758 -flash-load-exec=app.axf + + To load the binary file binary.bin to address 0x1000 to an LPC1343 target + using LPC-Link on Windows XP, use the following command line: + + crt_emu_lpc11_13_nxp -wire=hid -pLPC1343 -flash-load=binary.bin -load-base=0x1000 + NuttX buildroot Toolchain ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/configs/lpcxpresso-lpc1768/tools/flash.sh b/configs/lpcxpresso-lpc1768/tools/flash.sh new file mode 100755 index 0000000000..4d9f0b777e --- /dev/null +++ b/configs/lpcxpresso-lpc1768/tools/flash.sh @@ -0,0 +1,127 @@ +#!/bin/bash +#################################################################################### +# flash.sh +# +# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# 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. +# +#################################################################################### + +USAGE="$0 " +echo "Assumptions:" +echo "" +echo " - Windows 7" +echo " - LPCXpresso 4.6 installed at /cygdrive/c/nxp/lpcxpresso_3.6" +echo " - AXF image built with Code Red" +echo " - LPC17xx" +echo "" +echo "You will need to edit this is any of the above are false" + +# This is the default install location for binaries on Linux +#BINDIR=/usr/local/LPCXpresso/bin/dfu-util + +# This is the default install location for binaries on Windows (note that this +# path could change with the Code Red version number +BINDIR=/cygdrive/c/nxp/lpcxpresso_3.6/bin + +# This is the default install location for DFUAPP.exe on Windows +DFUAPP="$BINDIR/DFUAPP.exe" + +# ROM image for resetting LPC-Link +# ROM=LPCXpressoWIN.enc # WinUSB +# ROM=LPCXpressoFS.enc # Win2000 +# ROM=LPCXpressoFS.enc # WinXP +# ROM=LPCXpressoFS.enc # Win2003 +# ROM=LPCXpressoHS.enc # WinVista +ROM=LPCXpressoHS.enc # Win7 + +ROMPATH=`cygpath -w "$BINDIR/$ROM"` + +# FLASHUTIL="$BINDIR/crt_emu_lpc11_13" # for LPC11xx or LPC13xx parts) +FLASHUTIL="$BINDIR/crt_emu_cm3_nxp" # for LPC17xx parts +# FLASHUTIL="$BINDIR/crt_emu_a7_nxp" # for LPC21/22/23/24 parts) +# FLASHUTIL="$BINDIR/crt_emu_a9_nxp" # for LPC31/32 and LPC29xx parts) +# FLASHUTIL="$BINDIR/crt_emu_cm3_lmi" # for TI Stellaris LM3S parts + +if [ ! -x "$FLASHUTIL" ]; then + echo "No executable file at ${FLASHUTIL}" + exit 1 +fi + +# unset WIRE # for Red Probe+, Red Probe, RDB1768v1, or TI Stellaris evaluation boards +# WIRE="-wire=hi" # for RDB1768v2 without upgraded firmware) +# WIRE="-wire=winusb" # for RDB1768v2 with upgraded firmware) +# WIRE="-wire=winusb" # for LPC-Link on Windows XP) +WIRE="-wire=hid" # for LPC-Link on Windows Vista/ Windows 7) + +TARGET=LPC1768 +#TARGET=NXP_dir_part_LPC17 + +# 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 + +# First of all boot the LPC-Link using the script: + +#${DFUAPP} /f ${ROMPATH} /tl 250 dfuapp.log + +# Then program the FLASH + +#${FLASHUTIL} ${WIRE} -p${TARGET} -flash-load="${NUTTX}/nuttx.axf" +${FLASHUTIL} -p${TARGET} -flash-load="${NUTTX}/nuttx.axf" +