Makefile 将我自己的头文件添加到ATSAMA5D36开发板库的代码中

Makefile 将我自己的头文件添加到ATSAMA5D36开发板库的代码中,makefile,usb,atmel,Makefile,Usb,Atmel,我正在通过SAMA5D36开发板开发USB CDC串行发送和接收数据。我需要将我创建的头文件集成到代码中 我可以将自己的头文件和.c文件添加到make文件中吗。 我在下面给出make文件文本。 在这个make文件中添加到何处比较混乱 #---------------------------------------------------------------------------- # SAM Software Package License # ------------

我正在通过SAMA5D36开发板开发USB CDC串行发送和接收数据。我需要将我创建的头文件集成到代码中

我可以将自己的头文件和.c文件添加到make文件中吗。 我在下面给出make文件文本。 在这个make文件中添加到何处比较混乱

#----------------------------------------------------------------------------

#         SAM Software Package License  
# ----------------------------------------------------------------------------
# Copyright (c) 2013, Atmel Corporation
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# - Redistributions of source code must retain the above copyright notice,
# this list of conditions and the disclaimer below.
#
# Atmel's name may not be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
# DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
# ----------------------------------------------------------------------------       
    #   Makefile for compiling the USB CDC Serial Converter Example project

#-------------------------------------------------------------------------------
#        User-modifiable options
#-------------------------------------------------------------------------------

# Chip & board used for compilation
# (can be overriden by adding CHIP=chip and BOARD=board to the command-line)
CHIP  = sama5d3x
BOARD = sama5d3x_ek

# Defines which are the available memory targets for the sama5d3x-EK board.
MEMORIES = ddram 

# Trace level used for compilation
# (can be overriden by adding TRACE_LEVEL=#number to the command-line)
# TRACE_LEVEL_DEBUG      5
# TRACE_LEVEL_INFO       4
# TRACE_LEVEL_WARNING    3
# TRACE_LEVEL_ERROR      2
# TRACE_LEVEL_FATAL      1
# TRACE_LEVEL_NO_TRACE   0
TRACE_LEVEL = 4

# Optimization level, put in comment for debugging
OPTIMIZATION = 

# Output file basename
OUTPUT = usb_cdc_serial_$(BOARD)_$(CHIP)

# Output directories
BIN = bin
OBJ = obj

#-------------------------------------------------------------------------------
#       Tools
#-------------------------------------------------------------------------------

# Tool suffix when cross-compiling
CROSS_COMPILE = arm-none-eabi-

# Libraries
LIBRARIES = ../../../../libraries
# Chip library directory
CHIP_LIB = $(LIBRARIES)/libchip_sama5d3x
# Board library directory
BOARD_LIB = $(LIBRARIES)/libboard_sama5d3x-ek
# storageMedia library directory
STORAGEMEDIA_LIB = $(LIBRARIES)/libstoragemedia
# Sdmmc library directory
SDMMC_LIB = $(LIBRARIES)/libsdmmc

# USB library directory
USB_LIB = $(LIBRARIES)/usb

LIBS = -Wl,--start-group -lgcc -lc -lchip_$(CHIP)_gcc_rel -lboard_$(BOARD)_gcc_rel -lsdmmc_gcc_rel -lstoragemedia_gcc_rel -lusb_gcc_rel -Wl,--end-group

LIB_PATH = -L$(CHIP_LIB)/lib
LIB_PATH += -L$(BOARD_LIB)/lib
LIB_PATH += -L$(STORAGEMEDIA_LIB)/lib
LIB_PATH += -L$(SDMMC_LIB)/lib
LIB_PATH += -L$(USB_LIB)/lib
LIB_PATH+=-L=/lib
LIB_PATH+=-L=/../lib/gcc/arm-none-eabi/4.4.1

# Compilation tools
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
SIZE = $(CROSS_COMPILE)size
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
GDB = $(CROSS_COMPILE)gdb
NM = $(CROSS_COMPILE)nm

# Flags
INCLUDES  = -I$(CHIP_LIB)
INCLUDES += -I$(BOARD_LIB)
INCLUDES += -I$(STORAGEMEDIA_LIB)
INCLUDES += -I$(SDMMC_LIB)
INCLUDES += -I$(USB_LIB)/include
INCLUDES += -I$(LIBRARIES)

CFLAGS += -Wall -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
CFLAGS += -Werror-implicit-function-declaration -Wmain -Wparentheses
CFLAGS += -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
CFLAGS += -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef
CFLAGS += -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
CFLAGS += -Wsign-compare -Waggregate-return -Wstrict-prototypes
CFLAGS += -Wmissing-prototypes -Wmissing-declarations
CFLAGS += -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
CFLAGS += -Wredundant-decls -Wnested-externs -Wlong-long
CFLAGS += -Wunreachable-code

# To reduce application size use only integer printf function.
CFLAGS += -Dprintf=iprintf

# -mlong-calls  -Wall
CFLAGS += -ffunction-sections
CFLAGS += -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -DTRACE_LEVEL=$(TRACE_LEVEL)
ASFLAGS = -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__
LDFLAGS= -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=entry -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols
LD_OPTIONAL=-Wl,--print-gc-sections -Wl,--stats

#-------------------------------------------------------------------------------
#       Files
#-------------------------------------------------------------------------------

# Directories where source files can be found

VPATH += ../..

# Objects built from C source files
C_OBJECTS += main.o
C_OBJECTS += USBDDriverDescriptors.o

# Append OBJ and BIN directories to output filename
OUTPUT := $(BIN)/$(OUTPUT)

#-------------------------------------------------------------------------------
#       Rules
#-------------------------------------------------------------------------------

all: $(BIN) $(OBJ) $(MEMORIES)

$(BIN) $(OBJ):
    mkdir $@

define RULES
C_OBJECTS_$(1) = $(addprefix $(OBJ)/$(1)_, $(C_OBJECTS))
ASM_OBJECTS_$(1) = $(addprefix $(OBJ)/$(1)_, $(ASM_OBJECTS))

$(1): $$(ASM_OBJECTS_$(1)) $$(C_OBJECTS_$(1))
    $(CC) $(LIB_PATH) $(LDFLAGS) $(LD_OPTIONAL) -T"$(BOARD_LIB)/resources/gcc/$(CHIP)/$$@.ld" -Wl,-Map,$(OUTPUT)-$$@.map -o $(OUTPUT)-$$@.elf $$^ $(LIBS)
    $(NM) $(OUTPUT)-$$@.elf >$(OUTPUT)-$$@.elf.txt
    $(OBJCOPY) -O binary $(OUTPUT)-$$@.elf $(OUTPUT)-$$@.bin
    $(SIZE) $$^ $(OUTPUT)-$$@.elf

$$(C_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.c Makefile $(OBJ) $(BIN)
    $(CC) $(CFLAGS) -D$(1) -c -o $$@ $$<

$$(ASM_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.S Makefile $(OBJ) $(BIN)
    $(CC) $(ASFLAGS) -D$(1) -c -o $$@ $$<

debug_$(1): $(1)
    $(GDB) -x "$(BOARD_LIB)/resources/gcc/sama5d3x-ek-$(1).gdb" -ex "reset" -readnow -se $(OUTPUT)-$(1).elf
endef

$(foreach MEMORY, $(MEMORIES), $(eval $(call RULES,$(MEMORY))))

clean:
    -cs-rm -fR $(OBJ) $(BIN)
#SAM软件包许可证
# ----------------------------------------------------------------------------
#版权所有(c)2013,阿特梅尔公司
#
#版权所有。
#
#以源代码和二进制形式重新分发和使用,带或不带
#如果满足以下条件,则允许进行修改:
#
#-源代码的重新分发必须保留上述版权声明,
#此条件列表和下面的免责声明。
#
#Atmel的名称不得用于支持或推广源自以下产品的产品:
#本软件未经事先书面许可。
#
#免责声明:本软件由ATMEL“按原样”和任何明示或书面形式提供
#默示保证,包括但不限于
#适销性、特定用途适用性和非侵权性
#否认。在任何情况下,ATMEL均不对任何直接、间接、,
#附带、特殊、惩戒性或后果性损害(包括但不限于
#仅限于采购替代货物或服务;使用损失、数据、,
#或利润;或业务中断),无论是何种原因造成的
#责任,无论是合同责任、严格责任还是侵权责任(包括
#因使用本软件而引起的任何疏忽或其他原因,
#即使被告知可能发生此类损坏。
# ----------------------------------------------------------------------------       
#用于编译USB CDC串行转换器示例项目的Makefile
#-------------------------------------------------------------------------------
#用户可修改选项
#-------------------------------------------------------------------------------
#用于编译的芯片和电路板
#(可以通过将CHIP=CHIP和BOARD=BOARD添加到命令行来覆盖)
芯片=5d3x
板=sama5d3x_ek
#定义sama5d3x EK板的可用内存目标。
内存=ddram
#用于编译的跟踪级别
#(可以通过将TRACE_LEVEL=#number添加到命令行来覆盖)
#跟踪级调试5
#跟踪级别信息4
#跟踪级别警告3
#跟踪级别错误2
#跟踪\u级别\u致命1
#跟踪\u级别\u否\u跟踪0
跟踪_级别=4
#优化级别,放入注释以进行调试
优化=
#输出文件基名称
输出=usb\U cdc\U串行\u$(板)\u$(芯片)
#输出目录
BIN=BIN
OBJ=OBJ
#-------------------------------------------------------------------------------
#工具
#-------------------------------------------------------------------------------
#交叉编译时的工具后缀
交叉编译=arm none eabi-
#图书馆
库=../../../../../LIBRARIES
#芯片库目录
CHIP_LIB=$(库)/libchip_sama5d3x
#板库目录
BOARD_LIB=$(库)/libboard_sama5d3x-ek
#存储媒体库目录
STORAGEMEDIA_LIB=$(库)/libstoragemedia
#Sdmmc库目录
SDMMC_LIB=$(库)/libsdmmc
#USB库目录
USB_LIB=$(库)/USB
LIBS=-Wl,-start group-lgcc-lc-lchip_$(芯片)\u gcc_rel-lboard_$(板)\u gcc_rel-lsdmmc_gcc_rel-lstoragemedia_gcc_rel-lusb_gcc_rel-Wl,--终端组
LIB_PATH=-L$(芯片库)/LIB
LIB_PATH+=-L$(BOARD_LIB)/LIB
LIB_PATH+=-L$(STORAGEMEDIA_LIB)/LIB
LIB_PATH+=-L$(SDMMC_LIB)/LIB
LIB_PATH+=-L$(USB_LIB)/LIB
LIB_PATH+=-L=/LIB
LIB_PATH+=-L=/../LIB/gcc/arm none-eabi/4.4.1
#编译工具
CC=$(交叉编译)gcc
LD=$(交叉编译)LD
大小=$(交叉编译)大小
STRIP=$(交叉编译)STRIP
OBJCOPY=$(交叉编译)OBJCOPY
GDB=$(交叉编译)GDB
NM=$(交叉编译)NM
#旗帜
包括=-I$(芯片库)
包括+=-I$(电路板库)
包括+=-I$(存储媒体库)
包括+=-I$(SDMMC_库)
包含+=-I$(USB_-LIB)/包含
包括+=-I$(库)
CFLAGS+=-Wall-Wchar下标-Wcomment-Wformat=2-Wimplicit int
CFLAGS+=-Werror隐式函数声明-Wmain-wparenthesis
CFLAGS+=-Wsequence point-Wreturn type-Wswitch-Wtrigraphs-Wunused
CFLAGS+=-Wuninitialized-Wunknown pragmas-Wfloat equal-Wundef
CFLAGS+=-Wshadow-Wpointer arith-Wbad函数强制转换-Wwrite字符串
CFLAGS+=-Wsign比较-Waggregate返回-Wstrict原型
CFLAGS+=-Wmissing原型-Wmissing声明
CFLAGS+=-Wformat-Wmissing格式属性-Wno不推荐的声明
CFLAGS+=-Wrendundant decls-业主外部-长
CFLAGS+=-Wunreachable代码
#要减小应用程序大小,请仅使用整数printf函数。
CFLAGS+=-Dprintf=iprintf
#-mlong呼叫-墙
CFLAGS+=-f功能部分
CFLAGS+=-g$(优化)$(包括)-D$(芯片)-DTRACE\u级别=$(跟踪级别)
ASFLAGS=-Wall-g$(优化)$(包括)-D$(芯片)-D_u组装__
LDFLAGS=-Wl,--cref-Wl,--check sections-Wl,--gc sections-Wl,--entry=entry-Wl,--unresolved symbols=report all-Wl,--warn common-Wl,--warn section align-Wl,--warn unresolved symbols
LD_可选=-Wl,--print gc sections-Wl,--stats
#-------------------------------------------------------------------------------
#档案
#-------------------------------------------------------------------------------
#可以找到源文件的目录
VPATH+=../。。
#从C源文件构建的对象
C_OBJECTS+=main.o
C_OBJECTS+=USBDDriverDescriptors.o
#将OBJ和BIN目录附加到输出文件名
输出:=$(BIN)/$(输出)
#-------------------------------------------------------------------------------
#规则
#-------------------------------------------------------------------------------