mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-01-21 17:20:32 -05:00
* Revert "Remove coroutines (#874)"
This reverts commit 569c78fd8c.
* Update freertos Kernel submodule to latest head
* Remove temporary files
* Fix MingW demos and spell check
* Fix manifest version; fix headers
* Add ignore files and paths to core-checker.py
* Fix copyright in remaining files
* Fix PR check build failure
1. Remove defining `inline` in Makefile. This was causing build
warnings.
2. Ensure that the linker removed unused functions from various
compilation units.
3. Update the linker script so that all the functions are correctly
placed in FLASH section.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
---------
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
195 lines
6 KiB
Text
195 lines
6 KiB
Text
#******************************************************************************
|
|
#
|
|
# 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.
|
|
#
|
|
#******************************************************************************
|
|
|
|
#******************************************************************************
|
|
#
|
|
# The compiler to be used.
|
|
#
|
|
#******************************************************************************
|
|
ifndef COMPILER
|
|
COMPILER=gcc
|
|
endif
|
|
|
|
#******************************************************************************
|
|
#
|
|
# The debugger to be used.
|
|
#
|
|
#******************************************************************************
|
|
ifndef DEBUGGER
|
|
DEBUGGER=gdb
|
|
endif
|
|
|
|
#******************************************************************************
|
|
#
|
|
# Definitions for using GCC.
|
|
#
|
|
#******************************************************************************
|
|
ifeq (${COMPILER}, gcc)
|
|
|
|
#
|
|
# The command for calling the compiler.
|
|
#
|
|
CC=arm-none-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 \
|
|
-fdata-sections \
|
|
-ffunction-sections \
|
|
-MD
|
|
|
|
#
|
|
# The command for calling the library archiver.
|
|
#
|
|
AR=arm-none-eabi-ar
|
|
|
|
#
|
|
# The command for calling the linker.
|
|
#
|
|
LD=arm-none-eabi-ld
|
|
|
|
#
|
|
# The flags passed to the linker.
|
|
#
|
|
LDFLAGS= -Map gcc/out.map --gc-sections
|
|
|
|
#
|
|
# Get the location of libgcc.a from the GCC front-end.
|
|
#
|
|
LIBGCC=${shell ${CC} -mthumb -march=armv6t2 -print-libgcc-file-name}
|
|
|
|
#
|
|
# Get the location of libc.a from the GCC front-end.
|
|
#
|
|
LIBC=${shell ${CC} -mthumb -march=armv6t2 -print-file-name=libc.a}
|
|
|
|
#
|
|
# The command for extracting images from the linked executables.
|
|
#
|
|
OBJCOPY=arm-none-eabi-objcopy
|
|
|
|
endif
|
|
|
|
#******************************************************************************
|
|
#
|
|
# Tell the compiler to include debugging information if the DEBUG environment
|
|
# variable is set.
|
|
#
|
|
#******************************************************************************
|
|
ifdef DEBUG
|
|
CFLAGS += -g
|
|
endif
|
|
|
|
#******************************************************************************
|
|
#
|
|
# 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 ${@} -c ${<}; \
|
|
fi
|
|
@${CC} ${CFLAGS} -D${COMPILER} -o ${@} -c ${<}
|
|
ifeq (${COMPILER}, rvds)
|
|
@mv -f ${notdir ${@:.o=.d}} ${COMPILER}
|
|
endif
|
|
|
|
#******************************************************************************
|
|
#
|
|
# The rule for building the object file from each assembly source file.
|
|
#
|
|
#******************************************************************************
|
|
${COMPILER}/%.o: %.S
|
|
@if [ 'x${VERBOSE}' = x ]; \
|
|
then \
|
|
echo " CC ${<}"; \
|
|
else \
|
|
echo ${CC} ${AFLAGS} -D${COMPILER} -o ${@} -c ${<}; \
|
|
fi
|
|
ifeq (${COMPILER}, rvds)
|
|
@${CC} ${AFLAGS} -D${COMPILER} -E ${<} > ${@:.o=_.S}
|
|
@${CC} ${AFLAGS} -o ${@} -c ${@:.o=_.S}
|
|
@rm ${@:.o=_.S}
|
|
@${CC} ${AFLAGS} -D${COMPILER} --md -E ${<}
|
|
@sed 's,<stdout>,${@},g' ${notdir ${<:.S=.d}} > ${@:.o=.d}
|
|
@rm ${notdir ${<:.S=.d}}
|
|
endif
|
|
ifeq (${COMPILER}, gcc)
|
|
@${CC} ${AFLAGS} -D${COMPILER} -o ${@} -c ${<}
|
|
endif
|
|
|
|
#******************************************************************************
|
|
#
|
|
# 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 ${@}"; \
|
|
fi
|
|
ifeq (${COMPILER}, gcc)
|
|
@if [ 'x${VERBOSE}' != x ]; \
|
|
then \
|
|
echo ${LD} -T ${SCATTER_${notdir ${@:.axf=}}} \
|
|
--entry ${ENTRY_${notdir ${@:.axf=}}} \
|
|
${LDFLAGSgcc_${notdir ${@:.axf=}}} \
|
|
${LDFLAGS} -o ${@} ${^} \
|
|
'${LIBC}' '${LIBGCC}'; \
|
|
fi
|
|
@${LD} -T ${SCATTER_${notdir ${@:.axf=}}} \
|
|
--entry ${ENTRY_${notdir ${@:.axf=}}} \
|
|
${LDFLAGSgcc_${notdir ${@:.axf=}}} \
|
|
${LDFLAGS} -o ${@} ${^} \
|
|
'${LIBC}' '${LIBGCC}'
|
|
@${OBJCOPY} -O binary ${@} ${@:.axf=.bin}
|
|
endif
|