?? makedefs
字號(hào):
#******************************************************************************
#
# makedefs - Definitions common to all makefiles.
#
# Copyright (c) 2005,2006 Luminary Micro, Inc. All rights reserved.
#
# Software License Agreement
#
# Luminary Micro, Inc. (LMI) is supplying this software for use solely and
# exclusively on LMI's Stellaris Family of microcontroller products.
#
# The software is owned by LMI and/or its suppliers, and is protected under
# applicable copyright laws. All rights are reserved. Any use in violation
# of the foregoing restrictions may subject the user to criminal sanctions
# under applicable laws, as well as to civil liability for the breach of the
# terms and conditions of this license.
#
# THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
# OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
# LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
# CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
#
# This is part of revision 920 of the Stellaris Driver Library.
#
#******************************************************************************
#******************************************************************************
#
# Variables for use string substitution functions
#
#******************************************************************************
comma:=,
empty:=
space:=$(empty) $(empty)
#******************************************************************************
#
# The compiler to be used.
#
#******************************************************************************
ifndef COMPILER
#COMPILER=ewarm
COMPILER=gcc
#COMPILER=rvmdk
endif
#******************************************************************************
#
# The debugger to be used.
#
#******************************************************************************
ifndef DEBUGGER
ifeq (${COMPILER}, ewarm)
DEBUGGER=cspy
else
ifeq (${COMPILER}, gcc)
DEBUGGER=gdb
else
ifeq (${COMPILER}, rvmdk)
DEBUGGER=uvision
else
DEBUGGER=gdb
endif
endif
endif
endif
#******************************************************************************
#
# Definitions for using IAR's Embedded Workbench.
#
#******************************************************************************
ifeq (${COMPILER}, ewarm)
#
# The command for calling the compiler.
#
CC=iccarm
#
# The flags passed to the compiler.
#
CFLAGS=--cpu cortex-m3 \
--cpu_mode thumb \
--dependencies=m . \
--diag_suppress Pa050 \
-e \
--endian little \
--silent
#
# The command for calling the assembler.
#
AS=aarm
#
# The flags passed to the assembler.
#
AFLAGS=--cpu cortex-m3 \
-S
#
# The command for calling the library archiver.
#
AR=xar
#
# The command for calling the linker.
#
LD=xlink
#
# The flags passed to the linker.
#
LDFLAGS=-S
#
# Get the location of the C library.
#
LIBC:=${shell sh -c "which ${CC}"}
LIBC:=${shell dirname '${LIBC}'}
LIBC:=${shell dirname '${LIBC}'}
INC:=-I'${LIBC}/inc'
LIBC:=${LIBC}/lib/dl7mptnnl8n.r79
CFLAGS+=${INC}
#
# Tell the compiler to include debugging information if the DEBUG environment
# variable is set.
#
ifdef DEBUG
CFLAGS+=-r -D DEBUG
endif
#
# Add tool-specific CFLAGS
#
CFLAGS+=${CFLAGSewarm}
#
# Add Include File Path, if defined
#
CFLAGS+=$(if ${IPATH},-I $(subst ${space},${space}-I${space},${IPATH}))
#
# The rule for building the object file from each C source file.
#
${COMPILER}/%.o: %.c
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " CC ${<}"; \
else \
echo ${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}; \
fi
@${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}
@sed -e "s,.*\.o:,${@}:,g" -e "s,\\\\,/,g" -e "s, ,\\\\ ,g" \
-e "s,:\\\\ ,: ,g" ${notdir ${<:.c=.d}} > ${@:.o=.d}
@rm ${notdir ${<:.c=.d}}
#
# The rule for building the object file from each assembly source file.
#
${COMPILER}/%.o: %.S
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " AS ${<}"; \
else \
echo ${AS} ${AFLAGS} -D${COMPILER} -o ${@} ${<}; \
fi
@${CC} ${CFLAGS} -D${COMPILER} --preprocess=n ${notdir ${<:.S=.i}} ${<}
@$(AS) ${AFLAGS} -o ${@} ${notdir ${<:.S=.i}}
@sed -e "s,.*\.r79:,${@}:,g" -e "s,\\\\,/,g" -e "s, ,\\\\ ,g" \
-e "s,:\\\\ ,: ,g" ${notdir ${<:.S=.d}} > ${@:.o=.d}
@rm ${notdir ${<:.S=.d}} ${notdir ${<:.S=.i}}
#
# The rule for creating an object library.
#
${COMPILER}/%.a:
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " AR ${@}"; \
else \
echo ${AR} -o ${@} ${^}; \
fi
@${AR} -o ${@} ${^}
#
# The rule for linking the application.
#
${COMPILER}/%.axf:
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " LD ${@}"; \
else \
echo ${LD} ${LFLAGS} -Felf -yas -l ${@:.axf=.map} -o ${@} \
-f ${SCATTERewarm_${notdir ${@:.axf=}}} \
-s ${ENTRY_${notdir ${@:.axf=}}} ${^} \
'${LIBC}'; \
fi
@${LD} -Felf -yas -l ${@:.axf=.map} -o ${@} \
-f ${SCATTERewarm_${notdir ${@:.axf=}}} \
${LDFLAGSewarm_${notdir ${@:.axf=}}} \
${LDFLAGS} -s ${ENTRY_${notdir ${@:.axf=}}} ${^} '${LIBC}'
endif
#******************************************************************************
#
# Definitions for using GCC.
#
#******************************************************************************
ifeq (${COMPILER}, gcc)
#
# The command for calling the compiler.
#
CC=arm-stellaris-eabi-gcc
#
# The flags passed to the assembler.
#
AFLAGS=-mthumb \
-mcpu=cortex-m3 \
-MD
#
# The flags passed to the compiler.
#
CFLAGS=-mthumb \
-mcpu=cortex-m3 \
-O2 \
-MD \
-c
#
# The command for calling the library archiver.
#
AR=arm-stellaris-eabi-ar
#
# The command for calling the linker.
#
LD=arm-stellaris-eabi-ld
#
# The flags passed to the linker.
#
LDFLAGS=
#
# Get the location of libgcc.a from the GCC front-end.
#
LIBGCC=${shell ${CC} ${CFLAGS} -print-libgcc-file-name}
#
# Get the location of libc.a from the GCC front-end.
#
LIBC=${shell ${CC} ${CFLAGS} -print-file-name=libc.a}
#
# The command for extracting images from the linked executables.
#
OBJCOPY=arm-stellaris-eabi-objcopy
#
# Tell the compiler to include debugging information if the DEBUG environment
# variable is set.
#
ifdef DEBUG
CFLAGS+=-g -D DEBUG
endif
#
# Add tool-specific CFLAGS
#
CFLAGS+=${CFLAGSgcc}
#
# Add Include File Path, if defined
#
CFLAGS+=$(if ${IPATH},-I $(subst ${space},${space}-I${space},${IPATH}))
#
# The rule for building the object file from each C source file.
#
${COMPILER}/%.o: %.c
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " CC ${<}"; \
else \
echo ${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}; \
fi
@${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}
#
# The rule for building the object file from each assembly source file.
#
${COMPILER}/%.o: %.S
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " AS ${<}"; \
else \
echo ${CC} ${AFLAGS} -D${COMPILER} -o ${@} -c ${<}; \
fi
@${CC} ${AFLAGS} -D${COMPILER} -o ${@} -c ${<}
#
# The rule for creating an object library.
#
${COMPILER}/%.a:
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " AR ${@}"; \
else \
echo ${AR} -cr ${@} ${^}; \
fi
@${AR} -cr ${@} ${^}
#
# The rule for linking the application.
#
${COMPILER}/%.axf:
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " LD ${@}"; \
else \
echo ${LD} -T ${SCATTERgcc_${notdir ${@:.axf=}}} \
--entry ${ENTRY_${notdir ${@:.axf=}}} \
${LDFLAGSgcc_${notdir ${@:.axf=}}} \
${LDFLAGS} -o ${@} ${^} \
'${LIBC}' '${LIBGCC}'; \
fi
@${LD} -T ${SCATTERgcc_${notdir ${@:.axf=}}} \
--entry ${ENTRY_${notdir ${@:.axf=}}} \
${LDFLAGSgcc_${notdir ${@:.axf=}}} \
${LDFLAGS} -o ${@} ${^} \
'${LIBC}' '${LIBGCC}'
@${OBJCOPY} -O binary ${@} ${@:.axf=.bin}
endif
#******************************************************************************
#
# Definitions for using Keil's RV-MDK.
#
#******************************************************************************
ifeq (${COMPILER}, rvmdk)
#
# The command for calling the compiler.
#
CC=armcc
#
# The flags passed to the assembler.
#
AFLAGS=--device dlm
#
# The flags passed to the compiler.
#
CFLAGS=--device dlm \
-O2 \
-Otime \
-Ono_inline \
-Oloopref \
--enum_is_int \
--md \
-c
#
# The command for calling the library archiver.
#
AR=armar
#
# The command for calling the linker.
#
LD=armlink
#
# The flags passed to the linker.
#
LDFLAGS=
ifneq (${shell armcc 2>&1 | grep Evaluation}, )
LDFLAGS += --first Reset_Handler
endif
#
# The command for extracting images from the linked executables.
#
FROMELF=fromelf
#
# Tell the compiler to include debugging information if the DEBUG environment
# variable is set.
#
ifdef DEBUG
CFLAGS+=-g -D DEBUG
endif
#
# Add tool-specific CFLAGS
#
CFLAGS+=${CFLAGSrvmdk}
#
# Add Include File Path, if defined
#
CFLAGS+=$(if ${IPATH},-I $(subst ${space},${space}-I${space},${IPATH}))
#
# The rule for building the object file from each C source file.
#
${COMPILER}/%.o: %.c
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " CC ${<}"; \
else \
echo ${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}; \
fi
@${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}
@sed -e 's,\\,/,g' -e 's,\([^:]\) ,\1\\ ,g' < ${notdir ${<:.c=.d}} \
> ${COMPILER}/${notdir ${<:.c=.d}}
@rm -f ${notdir ${<:.c=.d}}
#
# The rule for building the object file from each assembly source file.
#
${COMPILER}/%.o: %.S
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " AS ${<}"; \
else \
echo ${CC} ${AFLAGS} -D${COMPILER} -o ${@} -c ${<}; \
fi
@${CC} ${AFLAGS} -D${COMPILER} -E ${<} > ${@:.o=_.S}
@${CC} ${AFLAGS} -o ${@} -c ${@:.o=_.S}
@rm ${@:.o=_.S}
@${CC} ${AFLAGS} -D${COMPILER} --md -E ${<}
@sed -e 's,<stdout>,${@},g' -e 's,\\,/,g' ${notdir ${<:.S=.d}} > ${@:.o=.d}
@rm ${notdir ${<:.S=.d}}
#
# The rule for creating an object library.
#
${COMPILER}/%.a:
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " AR ${@}"; \
else \
echo ${AR} -cr ${@} ${^}; \
fi
@${AR} -cr ${@} ${^}
#
# The rule for linking the application.
#
${COMPILER}/%.axf:
@if [ 'x${VERBOSE}' = x ]; \
then \
echo " LD ${@}"; \
else \
echo ${LD} --entry Reset_Handler \
--ro-base 0 --rw-base 0x20000000 \
${LDFLAGSrvmdk_${notdir ${@:.axf=}}} \
${LDFLAGS} -o ${@} ${^}; \
fi
@${LD} --entry Reset_Handler \
--ro-base 0 --rw-base 0x20000000 \
${LDFLAGSrvmdk_${notdir ${@:.axf=}}} \
${LDFLAGS} -o ${@} ${^}
@${FROMELF} --bin --output ${@:.axf=.bin} ${@}
endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -