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

📄 stk500boot.kmk

📁 AVR单片机的一个免费的开发环境.开发语言为GCC.
💻 KMK
字号:
################################################################################
################################################################################
##                                                                            ##
## NOTE:  This makefile uses GNU make syntax.                                 ##
## =====  It may not work when called by other make utilities                 ##
##                                                                            ##
################################################################################
################################################################################

################################################################################
###              ###############################################################
### PROJECT NAME ###############################################################
###              ###############################################################
################################################################################

PROJECT = Stk500Boot

################################################################################
##     #########################################################################
## CPU #########################################################################
##     #########################################################################
################################################################################

CPU = atmega128

################################################################################
###         ####################################################################
### SOURCES ####################################################################
###         ####################################################################
################################################################################

OBJ  = SystemAsm.o
OBJ += main.o

################################################################################
##       #######################################################################
## TOOLS #######################################################################
##       #######################################################################
################################################################################

COMPILER  = avr-gcc
ASSEMBLER = avr-gcc
LINKER    = avr-gcc
ROMIZER   = avr-objcopy
DUMPER    = avr-objdump

################################################################################
##       #######################################################################
## FLAGS #######################################################################
##       #######################################################################
################################################################################

COMMON_FLAGS  = -mmcu=$(CPU)
COMMON_FLAGS += -Os
COMMON_FLAGS += -mno-interrupts
COMMON_FLAGS += -funsigned-char
COMMON_FLAGS += -funsigned-bitfields
COMMON_FLAGS += -Wall
COMMON_FLAGS += -Wstrict-prototypes

LINK_FLAGS  = $(COMMON_FLAGS) -ggdb

COMPILE_FLAGS  = $(LINK_FLAGS) -c -DF_CPU=7372800UL
COMPILE_FLAGS += -Wa,-acdhlmns=$(<:.c=.lst)

ASSEMBLE_FLAGS  = $(COMMON_FLAGS) -c -I. -x assembler-with-cpp
ASSEMBLE_FLAGS += -Wa,-gstabs,-acdhlmns=$(<:.s=.lst)

EEPROM_FLAGS  = -j .eeprom
EEPROM_FLAGS += --change-section-lma .eeprom=0

FLASH_FLAGS  = -j .text
FLASH_FLAGS += -j .data

ELF_FLAGS  = -Wl,-Map=$(PROJECT).map
ELF_FLAGS += -Wl,-section-start=.text=0x1E000
ELF_FLAGS += --cref
ELF_FLAGS += -lm

################################################################################
##         #####################################################################
## ACTIONS #####################################################################
##         #####################################################################
################################################################################

COMPILE      = $(COMPILER) $(COMPILE_FLAGS)
ASSEMBLE     = $(ASSEMBLER) $(ASSEMBLE_FLAGS)
LINK         = $(LINKER) $(LINK_FLAGS)
REMOVE       = rm -f

################################################################################
##       #######################################################################
## BUILD #######################################################################
##       #######################################################################
################################################################################

all: elf flash eep list

rebuild: clean all

clean:
	$(REMOVE) $(PROJECT).hex
	$(REMOVE) $(PROJECT)_eeprom.hex
	$(REMOVE) $(PROJECT).elf
	$(REMOVE) $(PROJECT).map
	$(REMOVE) $(PROJECT).cof
	$(REMOVE) $(PROJECT).lst
	$(REMOVE) $(OBJ:.o=.lst)
	$(REMOVE) $(OBJ)

eep:     $(PROJECT)_eeprom.hex
flash:   $(PROJECT).hex
elf:     $(PROJECT).elf
list:    $(PROJECT).lst

################################################################################
##      ########################################################################
## LINK ########################################################################
##      ########################################################################
################################################################################

$(PROJECT)_eeprom.hex: $(PROJECT).elf
	$(ROMIZER) $(EEPROM_FLAGS) -O ihex $(PROJECT).elf $(PROJECT)_eeprom.hex

$(PROJECT).hex: $(PROJECT).elf
	$(ROMIZER) $(FLASH_FLAGS) -O ihex $(PROJECT).elf $(PROJECT).hex

$(PROJECT).lst: $(PROJECT).elf
	$(DUMPER) -d -S $(PROJECT).elf > $(PROJECT).lst

$(PROJECT).elf: $(OBJ)
	$(LINK) $(OBJ) -o $(PROJECT).elf $(ELF_FLAGS)

################################################################################
##         #####################################################################
## COMPILE #####################################################################
##         #####################################################################
################################################################################

%.o : %.c
	$(COMPILE) $< -o $@

%.o : %.s
	$(ASSEMBLE) $< -o $@

⌨️ 快捷键说明

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