⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 LPC2148的USB口固件升级代码
💻
字号:
# =============================================================================
#
# Make file for USB Firmware Upgrader
#
# Processor: LPC214x (LPC2146)
#
# Output:    usb_fwu
#
# Compiler: GCC ARM  3.4.3 (GNUARM + Cygwin) or 4.10
#
# !!!! Do not use  GCC ARM 4.0.1. It makes a few problems  !!!!
#
#  No dependencies support. Call 'make clean' and than 'make' to rebuild all
#
# =============================================================================

# =========  General =============

FORMAT = ihex

# =========  Pathes ==============

ROOTDIR  = D:/CYGWIN
INCLUDES =

TOOLSROOT = D:/GNUARM
TOOLS     = $(TOOLSROOT)/bin/arm-elf-

PRJROOTPATH = F:/TNKernel_v21/LPC214X_USB_FWU
PRJPATH   = $(PRJROOTPATH)/GCC
FILESPATH = $(PRJROOTPATH)/usb_fwu

DEBUG         = $(PRJPATH)/DEBUG
OBJ           = $(PRJPATH)/OBJ


#===========  Files  ==============

#--  Project target file name (without extension).

IMAGE = usb_fwu

#--  Linker script

LDSCRIPT = $(PRJPATH)/fwu_lpc2146_gcc.ld

#-- List of objects

OBJECTS = \
  $(OBJ)/startup_hardware_init.o\
  $(OBJ)/fwu_utils.o\
  $(OBJ)/fwu.o\
  $(OBJ)/fwu_int.o\
  $(OBJ)/fwu_queue.o\
  $(OBJ)/fwu_usb_descr.o\
  $(OBJ)/fwu_usb_ep.o\
  $(OBJ)/fwu_usb_hw.o\
  $(OBJ)/fwu_usb_req.o\
  $(OBJ)/fwu_asm.o\
  $(OBJ)/fwu_init.o\
  $(OBJ)/fwu_usb_thumb.o\
  $(OBJ)/fwu_startup_gcc.o

# ---------------------------------------------------------------------------
#  Tools, tools options(flags)
# ---------------------------------------------------------------------------

SHELL   = D:/cygwin/bin/sh
CC      = $(TOOLS)gcc
AS      = $(TOOLS)as
CPP     = $(TOOLS)g++
LD      = $(TOOLS)ld
OBJCOPY = $(TOOLS)objcopy
OBJDUMP = $(TOOLS)objdump
SIZE    = $(TOOLS)size
NM      = $(TOOLS)nm
REMOVE  = rm -f
COPY    = cp


OPTFLAGS = -mcpu=arm7tdmi -mhard-float
# //-mfpu=hard
# -mfpu=soft -msoft-float
DEBUG =

#-- Assembler flags

ADEFS =
ASMOPTS  =  --traditional-format -march=armv4t -mthumb-interwork -EL

#-- Compiler  flags

CDEF =

CCOPTS  = $(OPTFLAGS) $(INCLUDES) $(CDEF) -c \
     -mlittle-endian -Wall -gdwarf-2 -std=c99 \
     -Os -march=armv4t -mthumb-interwork -mlittle-endian -fno-builtin

CCOPTSTH  = $(OPTFLAGS) $(INCLUDES) $(CDEF) -c \
     -mlittle-endian -Wall -gdwarf-2 -std=c99 \
     -Os -march=armv4t -mthumb -mthumb-interwork -mlittle-endian -fno-builtin

#-- Linker    flags

LDFLAGS =  -nostartfiles -Wl,-Map=$(OBJ)/$(IMAGE).map,--cref  -lc \
           $(NEWLIBLPC) -lm -lc -lgcc  -T$(LDSCRIPT)


#-- Combine all necessary flags and optional flags.

ALL_CFLAGS =  -I. $(CFLAGS)
ALL_ASFLAGS = -I. $(ASFLAGS)

# ---------------------------------------------------------------------------
#  Build
# ---------------------------------------------------------------------------

all: $(PRJPATH)/$(IMAGE).elf  sizeafter


#--- Compiling/Assembling ---

#  Asm

$(OBJ)/startup_hardware_init.o: $(PRJPATH)/startup_hardware_init.s
	$(AS) $(ASMOPTS) $(PRJPATH)/startup_hardware_init.s -o $(OBJ)/startup_hardware_init.o
$(OBJ)/fwu_startup_gcc.o: $(PRJPATH)/fwu_startup_gcc.s
	$(AS) $(ASMOPTS) $(PRJPATH)/fwu_startup_gcc.s -o $(OBJ)/fwu_startup_gcc.o
$(OBJ)/fwu_asm.o: $(FILESPATH)/fwu_asm.s
	$(AS) $(ASMOPTS) $(FILESPATH)/fwu_asm.s -o $(OBJ)/fwu_asm.o

# C ARM

$(OBJ)/fwu_utils.o: $(FILESPATH)/fwu_utils.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_utils.c -o $(OBJ)/fwu_utils.o
$(OBJ)/fwu.o: $(FILESPATH)/fwu.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu.c -o $(OBJ)/fwu.o
$(OBJ)/fwu_int.o: $(FILESPATH)/fwu_int.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_int.c -o $(OBJ)/fwu_int.o
$(OBJ)/fwu_queue.o: $(FILESPATH)/fwu_queue.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_queue.c -o $(OBJ)/fwu_queue.o
$(OBJ)/fwu_usb_descr.o: $(FILESPATH)/fwu_usb_descr.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_usb_descr.c -o $(OBJ)/fwu_usb_descr.o
$(OBJ)/fwu_usb_ep.o: $(FILESPATH)/fwu_usb_ep.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_usb_ep.c -o $(OBJ)/fwu_usb_ep.o
$(OBJ)/fwu_usb_hw.o: $(FILESPATH)/fwu_usb_hw.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_usb_hw.c -o $(OBJ)/fwu_usb_hw.o
$(OBJ)/fwu_usb_req.o: $(FILESPATH)/fwu_usb_req.c
	$(CC) $(CCOPTS) $(FILESPATH)/fwu_usb_req.c -o $(OBJ)/fwu_usb_req.o

# C THUMB

$(OBJ)/fwu_init.o: $(FILESPATH)/fwu_init.c
	$(CC) $(CCOPTSTH) $(FILESPATH)/fwu_init.c -o $(OBJ)/fwu_init.o
$(OBJ)/fwu_usb_thumb.o: $(FILESPATH)/fwu_usb_thumb.c
	$(CC) $(CCOPTSTH) $(FILESPATH)/fwu_usb_thumb.c -o $(OBJ)/fwu_usb_thumb.o


#-- Linking ---

$(PRJPATH)/$(IMAGE).elf: $(OBJECTS)

	$(REMOVE)  $(OBJ)/$(IMAGE).elf
	$(REMOVE)  $(OBJ)/$(IMAGE).hex
	$(REMOVE)  $(OBJ)/$(IMAGE).lst
	$(REMOVE)  $(OBJ)/$(IMAGE).map

	$(CC) $(ALL_CFLAGS) $(OBJECTS) --output $(OBJ)/$(notdir $@) $(LDFLAGS)

	$(OBJCOPY) -O$(FORMAT)    $(OBJ)/$(IMAGE).elf  $(OBJ)/$(IMAGE).hex
#	$(NM) -n $(OBJ)/$(IMAGE).elf

#--- Display size of file.

#HEXSIZE = $(SIZE) --target=$(FORMAT) $(OBJ)/$(IMAGE).hex
ELFSIZE = $(SIZE) -A $(OBJ)/$(IMAGE).elf

sizeafter:
	@if [ -f $(OBJ)/$(IMAGE).elf ]; then echo; $(ELFSIZE); echo; fi


# ===========================================================================

.PHONY:   clean

clean:

	$(REMOVE) $(OBJECTS)

# ===========================================================================
# ===========================================================================
# ===========================================================================



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -