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

📄 makefile

📁 can转以太网网关
💻
字号:
#
# Makefile for XNUT-100/XNUT-105 Ethernet Bootloader
#
# FOCUS Software Engineering Pty Ltd, Australia. <www.focus-sw.com>
#
# $Id: Makefile,v 1.5 2007/11/09 01:17:59 henrik Exp $
#


## General Flags and settings
CC = avr-gcc
SIZE = avr-size --format=avr
JTAGICE = "C:\Program Files\Atmel\AVR Tools\JTAGICEmkII\jtagiceii"
BOOTPAGE=0x1F000

## Project Directories
SRC_DIR        = .
OBJ_DIR        = ../obj
BIN_DIR        = ../bin
SHARED_DIRS    = shared:hmlib/common
VPATH          = $(SRC_DIR):$(SHARED_DIRS):$(OBJ_DIR):$(BIN_DIR)

## Include Directories
INCLUDES = -I. -I.. -I$(subst :, -I,$(SHARED_DIRS)) -I$(SRC_DIR)
INCLUDES_100 = $(INCLUDES)
INCLUDES_105 = $(INCLUDES)

## Library Directories
LIBDIRS =
LIBDIRS_100 =
LIBDIRS_105 =

## Options common to compile, link and assembly rules
FLAGS =
FLAGS_100 = -mmcu=atmega128 $(FLAGS)
FLAGS_105 = -mmcu=at90can128 $(FLAGS)

## Compile options common for all C compilation units.
CFLAGS = -Wall -fno-delete-null-pointer-checks -D__HARVARD_ARCH__ -Os
CFLAGS += -mno-interrupts -mtiny-stack # Special optimisations only suitable for bootloader
CFLAGS += -Wp,-M,-MP,-MT,$(*F).o,-MF,.dep/$(@F).d
CFLAGS_100 = $(CFLAGS) -DXNUT_100 -DF_CPU=14745600 -DBOOTPAGE=$(BOOTPAGE)
CFLAGS_105 = $(CFLAGS) -DXNUT_105 -DF_CPU=12000000 -DBOOTPAGE=$(BOOTPAGE)

## Assembler flags
ASFLAGS = -x assembler-with-cpp

## Linker flags
LDFLAGS = -Wl,--defsym,__stack=0x10FF -nostartfiles -nodefaultlibs -Ttext=$(BOOTPAGE) -Wl,-Map=$@.map,--cref
LDFLAGS_100 = $(LDFLAGS)
LDFLAGS_105 = $(LDFLAGS)

## Libraries
LIBS =
LIBS_100 =
LIBS_105 =

## Source files
ASRCS = flash.s
SRCS = eboot.c \
	tftp.c \
	dhcp.c \
	udp.c \
	ip.c \
	arp.c \
	ether.c \
	util.c

## Build
all: xnut105eboot.hex xnut100eboot.hex

xnut100eboot.elf: $(SRCS) $(ASRCS) settings.h
	$(CC) -c $(FLAGS_100) $(INCLUDES_100) $(ASFLAGS) $(ASRCS)
	$(CC) $(FLAGS_100) $(CFLAGS_100) $(INCLUDES_100) $(SRCS) $(ASRCS:%.s=%.o) $(LDFLAGS_100) $(LIBDIRS_100) $(LIBS_100) -o $(BIN_DIR)/$(@F)
	$(SIZE) $(BIN_DIR)/$(@F)
	$(RM) $(ASRCS:%.s=%.o)

xnut105eboot.elf: $(SRCS) $(ASRCS) settings.h
	$(CC) -c $(FLAGS_105) $(INCLUDES_105) $(ASFLAGS) $(ASRCS)
	$(CC) $(FLAGS_105) $(CFLAGS_105) $(INCLUDES_105) $(SRCS) $(ASRCS:%.s=%.o) $(LDFLAGS_105) $(LIBDIRS_105) $(LIBS_105) -o $(BIN_DIR)/$(@F)
	$(SIZE) $(BIN_DIR)/$(@F)
	$(RM) $(ASRCS:%.s=%.o)

## Program w/ JTAG
.PHONY: jtag100
jtag100: xnut100eboot.hex
	$(JTAGICE) -j0x7970203f -datmega128 -e -pf -if$(BIN_DIR)/$(^F)

.PHONY: jtag105
jtag105: xnut105eboot.hex
	$(JTAGICE) -j0x0978103f -dat90can128 -e -pf -if$(BIN_DIR)/$(^F)

## Rules for various binary formats
%.hex: %.elf
	avr-objcopy -O ihex -R .eeprom $(BIN_DIR)/$(<F) $(BIN_DIR)/$(@F)

%.bin: %.elf
	avr-objcopy -O binary $(BIN_DIR)/$(<F) $(BIN_DIR)/$(@F)

## Clean target
.PHONY: clean
clean:
	-rm -rf .dep/ $(OBJ_DIR)/*.o $(BIN_DIR)/*.elf $(BIN_DIR)/*.hex $(BIN_DIR)/*.bin $(BIN_DIR)/*.eep

## Build target
.PHONY: build
build:
	$(MAKE) clean
	$(MAKE)

# Reset target
reset:
	$(JTAGICE) -datmega128 -R

## Other dependencies
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)

⌨️ 快捷键说明

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