📄 general.mk
字号:
#----------------------------------------------------------------------
# DEFINE TARGET TO BE CREATED
#----------------------------------------------------------------------
ifeq (true, $(PROGRAM_MK))
TARGET = $(NAME).hex
endif
ifeq (true, $(LIBRARY_MK))
TARGET = $(NAME).a
endif
ifeq ($(origin TARGET), undefined)
.PHONY: error_message
error_message:
$(error ERROR: You must specify PROGRAM_MK or LIBRARY_MK)
endif
#----------------------------------------------------------------------
# TOOL DEFINITIONS
#----------------------------------------------------------------------
TOOLTARGET = arm-elf
AR = $(TOOLTARGET)-ar
AS = $(TOOLTARGET)-gcc
AWK = gawk
CC = $(TOOLTARGET)-gcc
LD = $(TOOLTARGET)-gcc
OBJCOPY = $(TOOLTARGET)-objcopy
RANLIB = $(TOOLTARGET)-ranlib
RM = rm -f
SED = sed
SHELL = bash --posix
SIZE = $(TOOLTARGET)-size
STRIP = $(TOOLTARGET)-strip
#----------------------------------------------------------------------
# DETERMINE ARM/THUMB MODE
#----------------------------------------------------------------------
#check if CODE is undefined
ifeq ($(origin CODE), undefined)
CODE = ARM
TARGET_MODE = armthumb
else
ifeq ($(CODE),THUMB)
TARGET_MODE = armthumb
else
TARGET_MODE = arm
endif
endif
ifeq ($(TARGET_MODE),armthumb)
THUMB_IW = -mthumb-interwork
else
THUMB_IW =
endif
ifeq ($(CODE),THUMB)
T_FLAGS = -mthumb -DTHUMB_CSTART -DTHUMB_INTERWORK
else
T_FLAGS =
endif
ifeq ($(DEBUG),1)
DBFLAGS += -gdwarf-2
else
DBFLAGS +=
endif
ifeq (RAM, $(LD_RAMROM))
RAM_EXEC = -DRAM_EXEC
else
RAM_EXEC =
endif
#----------------------------------------------------------------------
# COMPILER AND ASSEMBLER OPTIONS
#----------------------------------------------------------------------
W_OPTS = -Wall -Wcast-align -Wcast-qual -Wimplicit \
-Wnested-externs -Wpointer-arith -Wswitch \
-Wreturn-type
# -Wshadow -Wunused
# -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wstrict-prototypes
CPU = arm7tdmi
OPTS = -mcpu=$(CPU) $(THUMB_IW)
CA_OPTS = $(OPTS) $(INC) -DEL -DGCC $(THUMB_IW) $(T_FLAGS) $(EFLAGS) -D$(CPU_VARIANT) $(RAM_EXEC)
CC_OPTS = $(CA_OPTS) $(OFLAGS) $(DBFLAGS) $(W_OPTS) -Wa,-ahlms=$(<:.c=.lst)
CC_OPTS_A = $(CA_OPTS) -x assembler-with-cpp -gstabs -Wa,-alhms=$(<:.S=.lst)
#----------------------------------------------------------------------
# LINKER OPTIONS
#----------------------------------------------------------------------
ifeq ($(CPU_VARIANT),LPC2101)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_2k_8k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_2k_8k_rom.ld
else
LD_SCRIPT = build_files/link_2k_8k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2102)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_4k_16k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_4k_16k_rom.ld
else
LD_SCRIPT = build_files/link_4k_16k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2103)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_8k_32k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_8k_32k_rom.ld
else
LD_SCRIPT = build_files/link_8k_32k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2104)
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),LPC2105)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_32k_128k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_32k_128k_rom.ld
else
LD_SCRIPT = build_files/link_32k_128k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2106)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_64k_128k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_64k_128k_rom.ld
else
LD_SCRIPT = build_files/link_64k_128k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2114)
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),LPC2124)
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),LPC2119)
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),LPC2129)
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),LPC2131)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_8k_32k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_8k_32k_rom.ld
else
LD_SCRIPT = build_files/link_8k_32k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2132)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_64k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_64k_rom.ld
else
LD_SCRIPT = build_files/link_16k_64k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2134)
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),LPC2136)
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),LPC2138)
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),LPC2141)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_8k_32k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_8k_32k_rom.ld
else
LD_SCRIPT = build_files/link_8k_32k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2142)
ifndef LD_SCRIPT
ifndef LD_RAMROM
LD_SCRIPT = build_files/link_16k_64k_rom.ld
else
ifeq ($(LD_RAMROM),ROM)
LD_SCRIPT = build_files/link_16k_64k_rom.ld
else
LD_SCRIPT = build_files/link_16k_64k_ram.ld
endif
endif
endif
else
ifeq ($(CPU_VARIANT),LPC2144)
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -