📄 tools.mk
字号:
## Addresses of things unless overridden#ifeq ($(strip ${CFG_UNCACHED}),1) CFG_TEXT_START ?= 0xBFC00000 CFG_DATA_START ?= 0xA1F00000 CFG_ROM_START ?= 0xBFC00000else CFG_TEXT_START ?= 0x9FC00000 CFG_DATA_START ?= 0x81F00000 CFG_ROM_START ?= 0xBFC00000endif## BOOTRAM mode (runs from ROM vector assuming ROM is writable)# implies no relocation.#ifeq ($(strip ${CFG_BOOTRAM}),1) CFG_RELOC = 0endif## Basic compiler options and preprocessor flags. By placing# these in "CFLAGS" they will be applied to both CFE and ZipStart## There are three macros with flags:## CFLAGS -- flags common to everything we build# ZIPSTART_CFLAGS - flags unique to ZIPSTART# CFE_CFLAGS - flags unique to CFE#CFLAGS += -g -c -ffreestanding CFLAGS += -O2 -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes ZIPSTART_CFLAGS += -D_ZIPSTART_## Tools locations#TOOLPREFIX ?= sb1-elf-GCC ?= $(TOOLS)$(TOOLPREFIX)gccGCPP ?= $(TOOLS)$(TOOLPREFIX)cppGLD ?= $(TOOLS)$(TOOLPREFIX)ldGAR ?= $(TOOLS)$(TOOLPREFIX)arOBJDUMP ?= $(TOOLS)$(TOOLPREFIX)objdumpOBJCOPY ?= $(TOOLS)$(TOOLPREFIX)objcopyRANLIB ?= $(TOOLS)$(TOOLPREFIX)ranlib## Check for 64-bit mode. ZipStart is always built as 32-bit, so # this one only goes in CFE_CFLAGS#ifeq ($(strip ${CFG_MLONG64}),1) CFE_CFLAGS += -mlong64 -D__long64endif## Determine parameters for the linker script, which is generated# using the C preprocessor.## Supported combinations:## CFG_RAMAPP CFG_UNCACHED CFG_RELOC Description# Yes YesOrNo MustBeNo CFE as a separate "application"# No YesOrNo Yes CFE relocates to RAM as firmware# No YesOrNo No CFE runs from flash as firmware#CFE_LDSCRIPT = ./cfe.ldsZIPSTART_LDSCRIPT = ./zipstart.ldsZIPSTART_LDSCRIPT_TEMPLATE = ${ARCH_SRC}/zipstart_ldscript.templateifeq ($(strip ${CFG_RELOC}),1) CFE_LDFLAGS += -Bshareable -Bsymbolic CFE_LDFLAGS += --script $(CFE_LDSCRIPT) CFE_LDSCRIPT_TEMPLATE = ${ARCH_SRC}/cfe_ldscript.svr4pic OCBINFLAGS += -R .dynstr -R .hash -R .compact_relelse CFE_LDFLAGS += -g --script $(CFE_LDSCRIPT) CFE_LDSCRIPT_TEMPLATE = ${ARCH_SRC}/cfe_ldscript.templateendififeq ($(strip ${CFG_UNCACHED}),1) GENLDFLAGS += -DCFG_RUNFROMKSEG0=0else GENLDFLAGS += -DCFG_RUNFROMKSEG0=1endififeq ($(strip ${CFG_ZIPSTART}),1) GENLDFLAGS += -DCFG_ZIPSTART=1endififeq ($(strip ${CFG_RAMAPP}),1) GENLDFLAGS += -DCFG_RAMAPP=1else # # RELOC=0 is used for no relocation (run in place) # ifeq ($(strip ${CFG_RELOC}),0) ifeq ($(strip ${CFG_BOOTRAM}),1) GENLDFLAGS += -DCFG_BOOTRAM=1 else GENLDFLAGS += -DCFG_BOOTRAM=0 endif endif # # RELOC=1 is "SVR4 PIC" # ifeq ($(strip ${CFG_RELOC}),1) CFLAGS += -G0 -fpic -mabicalls -Wa,-KPIC GENLDFLAGS += -DCFG_RELOC=1 CFG_TEXT_START = 0x9FC00000 CFG_DATA_START = 0x81F00000 CFG_ROM_START = 0xBFC00000 endif # # RELOC=STATIC is "move to static location" #endif## Add GENLDFLAGS to CFLAGS (we need this stuff in the C code as well)#CFLAGS += ${GENLDFLAGS}## Determine target endianness. We use this switch everywhere,# in the C compiler, linker, and assembler, and for both CFE# and ZipStart.#ifeq ($(strip ${CFG_LITTLE}),1) ENDIAN = -ELelse ENDIAN = -EBendif## Add the text/data/ROM addresses to the GENLDFLAGS so they# will make it into the linker script.#GENLDFLAGS += -DCFE_ROM_START=${CFG_ROM_START} GENLDFLAGS += -DCFE_TEXT_START=${CFG_TEXT_START} GENLDFLAGS += -DCFE_DATA_START=${CFG_DATA_START}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -