W801_SDK_dev_env/tools/w800/conf.mk
2023-03-08 08:23:45 +01:00

164 lines
4.6 KiB
Makefile

sinclude $(TOP_DIR)/tools/w800/.config
CONFIG_W800_USE_LIB ?= n
CONFIG_W800_FIRMWARE_DEBUG ?= n
CONFIG_ARCH_TYPE ?= w800
CONFIG_W800_TOOLCHAIN_PREFIX ?= csky-abiv2-elf
CONFIG_W800_USE_NIMBLE ?= n
TARGET ?= $(subst ",,$(CONFIG_W800_TARGET_NAME))
ODIR := $(TOP_DIR)/bin/build
OBJODIR := $(ODIR)/$(TARGET)/obj
UP_EXTRACT_DIR := ../../lib
LIBODIR := $(ODIR)/$(TARGET)/lib
IMAGEODIR := $(ODIR)/$(TARGET)/image
BINODIR := $(ODIR)/$(TARGET)/bin
FIRMWAREDIR := $(TOP_DIR)/bin
SDK_TOOLS := $(TOP_DIR)/tools/$(CONFIG_ARCH_TYPE)
CA_PATH := $(SDK_TOOLS)/ca
VER_TOOL ?= $(SDK_TOOLS)/wm_getver
WM_TOOL ?= $(SDK_TOOLS)/wm_tool
SECBOOT_HEADER_POS=8002000
SECBOOT_ADDRESS_POS=8002400
SEC_BOOT_BIN := $(SDK_TOOLS)/w800_secboot.bin
SEC_BOOT_IMG := $(SDK_TOOLS)/w800_secboot
SEC_BOOT := $(SDK_TOOLS)/w800_secboot.img
ifeq ($(MAKECMDGOALS),lib)
USE_LIB = 0
else ifeq ($(CONFIG_W800_USE_LIB),y)
USE_LIB = 1
else
USE_LIB = 0
endif
DL_PORT ?= $(subst ",,$(CONFIG_W800_DOWNLOAD_PORT))
DL_BAUD ?= $(CONFIG_W800_DOWNLOAD_RATE)
IMG_HEADER := $(CONFIG_W800_IMAGE_HEADER)
RUN_ADDRESS := $(CONFIG_W800_RUN_ADDRESS)
UPD_ADDRESS := $(CONFIG_W800_UPDATE_ADDRESS)
SIGNATURE := $(CONFIG_W800_IMAGE_SIGNATURE)
CODE_ENCRYPT := $(CONFIG_W800_CODE_ENCRYPT)
#real image type include basic image type, key number in chip, encrypt flag, signature flag, signature pubkey flag
IMG_TYPE :=$(shell expr $(CONFIG_W800_IMAGE_TYPE) + $(CONFIG_W800_PRIKEY_SEL) '*' 32 + $(CONFIG_W800_CODE_ENCRYPT) '*' 16 + $(CONFIG_W800_IMAGE_SIGNATURE) '*' 256)
SECBOOT_IMG_TYPE :=$(shell expr $(CONFIG_W800_SECBOOT_IMAGE_TYPE) + $(CONFIG_W800_IMAGE_SIGNATURE) '*' 256)
#when encrypt image info, real key number must be CONFIG_W800_PRIKEY_SEL plus 1
ifeq ($(CONFIG_W800_CODE_ENCRYPT), 0)
PRIKEY_SEL := $(CONFIG_W800_PRIKEY_SEL)
else
PRIKEY_SEL := $(shell expr $(CONFIG_W800_PRIKEY_SEL) + 1)
endif
optimization ?= -O2
ifeq ($(CONFIG_W800_FIRMWARE_DEBUG),y)
optimization += -g -DWM_SWD_ENABLE=1
endif
ifeq ($(CONFIG_W800_USE_NIMBLE),y)
USE_NIMBLE = 1
optimization += -DNIMBLE_FTR=1
else
USE_NIMBLE = 0
optimization += -DNIMBLE_FTR=0
endif
# YES; NO
VERBOSE ?= NO
UNAME_O:=$(shell uname -o)
UNAME_S:=$(shell uname -s)
$(shell gcc $(SDK_TOOLS)/wm_getver.c -Wall -O2 -o $(VER_TOOL))
TOOL_CHAIN_PREFIX = $(CONFIG_W800_TOOLCHAIN_PREFIX)
TOOL_CHAIN_PATH = $(subst ",,$(CONFIG_W800_TOOLCHAIN_PATH))
# select which tools to use as compiler, librarian and linker
ifeq ($(VERBOSE),YES)
AR = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-ar
ASM = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-gcc
CC = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-gcc
CPP = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-g++
LINK = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-gcc
SIZE = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-size
OBJCOPY = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-objcopy
OBJDUMP = $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-objdump
else
AR = @echo "AR $(notdir $@)" 2>/dev/null; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-ar
ASM = @echo "ASM $<"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-gcc
CC = @echo "CC $<"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-gcc
CPP = @echo "CPP $<"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-g++
LINK = @echo "LINK $(notdir $(IMAGEODIR)/$(TARGET).elf)"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-gcc
SIZE = @echo "SIZE $<"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-size
OBJCOPY = @echo "OBJCOPY $(notdir $(FIRMWAREDIR)/$(TARGET)/$(TARGET).bin)"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-objcopy
OBJDUMP = @echo "OBJDUMP $<"; $(TOOL_CHAIN_PATH)$(TOOL_CHAIN_PREFIX)-objdump
endif
LDDIR = $(TOP_DIR)/ld/$(CONFIG_ARCH_TYPE)
ifeq ($(CONFIG_W800_USE_NIMBLE),y)
LD_FILE = $(LDDIR)/gcc_csky.ld
else
LD_FILE = $(LDDIR)/gcc_csky_bt.ld
endif
LIB_EXT = .a
CCFLAGS := -Wall \
-DTLS_CONFIG_CPU_XT804=1 \
-DGCC_COMPILE=1 \
-DNO_PERSISTENCE=1 \
-DUSE_SELECT=1 \
-DHIGH_PERFORMANCE=1 \
-DUSE_MBEDTLS=1 \
-mcpu=ck804ef \
$(optimization) \
-std=gnu99 \
-c \
-mhard-float \
-fdata-sections \
-ffunction-sections
CXXFLAGS := -Wall \
-DTLS_CONFIG_CPU_XT804=1 \
-DGCC_COMPILE=1 \
-mcpu=ck804ef \
$(optimization) \
-c \
-MMD \
-MP \
-mhard-float \
-fdata-sections \
-ffunction-sections
ASMFLAGS := -Wall \
-DTLS_CONFIG_CPU_XT804=1 \
-DGCC_COMPILE=1 \
-mcpu=ck804ef \
$(optimization) \
-std=gnu99 \
-c \
-mhard-float \
-Wa,--gdwarf2 \
-fdata-sections \
-ffunction-sections
ARFLAGS := ru
ARFLAGS_2 = xo
LINKFLAGS := -mcpu=ck804ef \
-nostartfiles \
-mhard-float \
-lsupc++ \
-lm \
-Wl,-T$(LD_FILE)
MAP := -Wl,-ckmap=$(IMAGEODIR)/$(TARGET).map
sinclude $(TOP_DIR)/tools/w800/inc.mk