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

📄 general.mk

📁 enc28j60的驱动
💻 MK
📖 第 1 页 / 共 2 页
字号:
ifeq ($(CPU_VARIANT),LPC2146)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_32k_256k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_32k_256k_rom.ld
      else
LD_SCRIPT = build_files/link_32k_256k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2148)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_32k_512k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_32k_512k_rom.ld
      else
LD_SCRIPT = build_files/link_32k_512k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2194)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_256k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_256k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_256k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2210)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_0k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_0k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_0k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2220)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_64k_0k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_64k_0k_rom.ld
      else
LD_SCRIPT = build_files/link_64k_0k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2212)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_128k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_128k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_128k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2214)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_256k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_256k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_256k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2290)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_0k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_0k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_0k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2292)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_256k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_256k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_256k_ram.ld
      endif
    endif
  endif
else

ifeq ($(CPU_VARIANT),LPC2294)
  ifndef LD_SCRIPT
    ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_256k_rom.ld
    else
      ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_256k_rom.ld
      else
LD_SCRIPT = build_files/link_16k_256k_ram.ld
      endif
    endif
  endif
else
.PHONY: error_message2
error_message2:
	$(error ERROR: You must specify CPU_VARIANT in the makefile)
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

ifndef LD_SCRIPT_PATH
LD_OPTS   = $(OPTS) $(EFLAGS) -nostartfiles -T $(LD_SCRIPT) -o $(NAME).elf -Wl,-Map=$(NAME).map,--cref
else
LD_OPTS   = $(OPTS) $(EFLAGS) -nostartfiles -T $(LD_SCRIPT_PATH)/$(LD_SCRIPT) -o $(NAME).elf -Wl,-Map=$(NAME).map,--cref
endif

#----------------------------------------------------------------------
# LIST ALL OBJECT FILES
#----------------------------------------------------------------------
OBJS ?= $(CSRCS:.c=.o) $(ASRCS:.S=.o)

#----------------------------------------------------------------------
# BUILD RULES
#----------------------------------------------------------------------
export LD_RAMROM

all: pre_all depend $(TARGET)

pre_all:
ifdef SUBDIRS
	@for dir in $(SUBDIRS) ; do \
	  (cd $$dir && $(MAKE) $(MAKEFLAGS) all) || exit 1; \
	done
endif

depend:
	$(RM) .depend 
	@for f in $(CSRCS) ; do \
		$(CC) -MM $(CC_OPTS) $$f >> .depend ; \
	done
	@for f in $(ASRCS) ; do \
		$(AS) -MM $(CC_OPTS) $$f >> .depend ; \
	done

ifneq (clean, $(MAKECMDGOALS))
-include .depend
endif

%.o: %.c
	$(CC) -c $(CC_OPTS) -o $@ $<
%.o: %.S
	$(AS) -c $(CC_OPTS_A) -o $@ $<

# Always recompile all if makefile changes
$(OBJS): ./makefile

clean:
ifdef SUBDIRS
	@for dir in $(SUBDIRS) ; do \
		(cd $$dir && $(MAKE) $(MAKEFLAGS) clean) || exit 1; \
	done
endif
	$(RM) .depend $(TARGET) $(OBJS) $(OBJS:.o=.lst) 
ifeq (0, $(MAKELEVEL))
ifeq (true, $(PROGRAM_MK))
	$(RM) $(NAME).hex $(NAME).elf $(NAME).map $(NAME).obj
endif
endif


#----------------------------------------------------------------------
# CODE SIZE
#----------------------------------------------------------------------
ifeq (0, $(MAKELEVEL))
all: codesize
endif

codesize: $(TARGET)
	@echo ""
	@echo "=== Result ==============================================="
	@echo ""
	@echo " TEXT: Code size"
	@echo " DATA: Initialized data"
	@echo " BSS:  Uninitialized data"
	@echo " ROM:  Size in non-volatile program memory (TEXT + DATA)"
	@echo " RAM:  Size in volatile data memory (DATA + BSS)"
ifdef LIBS
	@echo ""
	@echo "=== Component sizes ======================================"
	@echo ""
	@echo "   TEXT    DATA     BSS     ROM     RAM FILENAME"
	@echo "   ====    ====     ===     ===     === ========"
# ifdef LIBS
	@for f in $(LIBS) ; do \
	  $(SIZE) "$$f" \
	  | $(AWK) "NR > 1 { t+=\$$1; d+=\$$2; b+=\$$3; } \
		    END { ro=t+d; ra=d+b; printf \"%7d %7d %7d %7d %7d %s\n\", \
						 t,d,b,ro,ra,\"$$f\" }" ; \
	done
endif
	@echo ""
	@echo ""
ifeq (true, $(PROGRAM_MK))
	@echo "=== Total size (including external libraries) ============"
	@echo ""
	@echo "   Code compiled with optimization switch: " $(OFLAGS)
	@echo "   (other settings may produce different sizes)"
	@echo "   (external libraries may be compiled with different settings)"
	@echo ""
	@echo "   TEXT    DATA     BSS     ROM     RAM FILENAME"
	@echo "   ====    ====     ===     ===     === ========"
	@$(SIZE) $(NAME).elf \
	| $(AWK) 'NR > 1 { printf "%7d %7d %7d %7d %7d %s\n", \
			   $$1,$$2,$$3,$$1+$$2,$$2+$$3,"$(NAME).elf" }'
	@echo ""
ifeq (RAM, $(LD_RAMROM))
	@echo "                          |===========|"
	@echo "                               ^^^"
	@echo "   Everything placed in RAM since LD_RAMROM = RAM"
	@echo ""
endif

else
	@echo "=== Total size ==========================================="
	@echo ""
	@echo "   Code compiled with optimization switch: " $(OFLAGS)
	@echo "   (other settings may produce different sizes)"
	@echo ""
	@echo "   TEXT    DATA     BSS     ROM     RAM FILENAME"
	@echo "   ====    ====     ===     ===     === ========"
	@$(SIZE) $(TARGET) \
	| $(AWK) 'NR > 1 { t+=$$1; d+=$$2; b+=$$3; } \
		  END { ro=t+d; ra=d+b; printf "%7d %7d %7d %7d %7d %s\n", \
					t,d,b,ro,ra,"$(TARGET)" }'
endif

#----------------------------------------------------------------------
# BUILD RULES FOR EXECUTABLE PROGRAM
#----------------------------------------------------------------------
ifeq (true, $(PROGRAM_MK))
$(TARGET): $(OBJS) $(LIBS)
	$(LD) $(OBJS) $(LIBS) $(INC) $(LD_OPTS)
	$(OBJCOPY) -O $(HEX_FORMAT) $(NAME).elf $(TARGET)
endif

#----------------------------------------------------------------------
# BUILD RULES FOR LIBRARY
#----------------------------------------------------------------------
ifeq (true, $(LIBRARY_MK))
$(TARGET): $(OBJS) $(LIBS)
	$(AR) cr $@ $(OBJS)
ifdef LIBS
	set -x ; \
	for lib in $(LIBS) ; do \
	  contents=`$(AR) t $$lib` ; \
	  $(AR) x $$lib ; \
	  $(AR) r $@ $$contents ; \
	  $(RM) $$contents ; \
	done
endif
	$(RANLIB) $@
endif

#----------------------------------------------------------------------
# RULES FOR STARTING PROGRAM DOWNLOAD
#----------------------------------------------------------------------
deploy: all
	@echo ""
	@echo "=== Start program download ==============================="
	@echo ""
	$(DOWNLOAD) -hex -term -control $(TARGET) $(DL_COMPORT) $(DL_BAUDRATE) $(DL_CRYSTAL)

#----------------------------------------------------------------------
# RULES FOR STARTING TERMINAL PROGRAM
#----------------------------------------------------------------------
terminal:
	@echo ""
	@echo "=== Start terminal ======================================="
	@echo ""
	$(DOWNLOAD) -hex -termonly $(TARGET) $(DL_COMPORT) $(DL_BAUDRATE) $(DL_CRYSTAL)

⌨️ 快捷键说明

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