| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | include $(COMMON_BUILD_DIR)/clear_vars.mk |
| 2 | -include $(SCP_BUILD_DIR)/clear_vars.mk |
| 3 | |
| 4 | ########################################################### |
| 5 | ## Common SCP build environment |
| 6 | ########################################################### |
| 7 | RV33_VAR := MRV33E25 |
| 8 | REL_ROOT_DIR := ../../../.. |
| 9 | CROSS_COMPILE = $(REL_ROOT_DIR)/prebuilt/clang/md32rv/linux-x86 |
| 10 | #CROSS_COMPILE = /mtkeda/Utility/CodeLine/md32rv/1.4.1/ToolChain/LLVM/ |
| 11 | #CROSS_COMPILE = /mtkeda/Utility/Doble/md32rv/rv1.4.1_printf/ToolChain/LLVM/ |
| 12 | CC := $(CROSS_COMPILE)/bin/clang |
| 13 | CPP := $(CROSS_COMPILE)/bin/clang-cpp |
| 14 | LLD := $(CROSS_COMPILE)/bin/ld.lld |
| 15 | #LLD := /mtkeda/Utility/Doble/md32rv/alpha70/ToolChain/LLVM/bin/ld.lld |
| 16 | AR := $(CROSS_COMPILE)/bin/llvm-ar |
| 17 | RANLIB := $(CROSS_COMPILE)/bin/llvm-ranlib |
| 18 | OBJCOPY := $(CROSS_COMPILE)/bin/llvm-objcopy |
| 19 | OBJDUMP := $(CROSS_COMPILE)/bin/llvm-objdump |
| 20 | SIZE := $(CROSS_COMPILE)/bin/llvm-size |
| 21 | STRIP := $(CROSS_COMPILE)/bin/strip |
| 22 | READELF := $(CROSS_COMPILE)/bin/llvm-readelf |
| 23 | LLVM_RTLIB := $(CROSS_COMPILE)/lib/clang/7.0.0/lib/riscv32/$(RV33_VAR) |
| 24 | LLVM_DKWLIB := $(CROSS_COMPILE)/dkwlib/$(RV33_VAR)/lib |
| 25 | LLVM_NEWLIB := $(CROSS_COMPILE)/riscv32-elf/$(RV33_VAR)/lib |
| 26 | LLVM_INCLUDE := $(CROSS_COMPILE)/riscv32-elf/$(RV33_VAR)/include |
| 27 | |
| 28 | LLVM_DKWINC := $(COMMON_INCLUDE_DIR)/dkwlib_inc/ |
| 29 | #TMP_MODULE_ROOT := /proj/mtk11261/misc/alps/vendor/mediatek/proprietary/tinysys/private/ESL_simulator/ESL_RV33/toolchain/riscv32 |
| 30 | #GOBJDUMP := $(TMP_MODULE_ROOT)/bin/riscv32-unknown-elf-objdump |
| 31 | #READELF := $(TMP_MODULE_ROOT)/bin/riscv32-unknown-elf-readelf |
| 32 | #OBJCOPY := $(TMP_MODULE_ROOT)/bin/riscv32-unknown-elf-objcopy |
| 33 | # Apply default environment if CROSS_COMPILE is not defined |
| 34 | ifeq (,$(CROSS_COMPILE)) |
| 35 | REL_ROOT_DIR := ../../../../.. |
| 36 | MRV_MODULE_ROOT := $(REL_ROOT_DIR)/prebuilt/clang/md32rv/linux-x86 |
| 37 | |
| 38 | CC := $(MRV_MODULE_ROOT)/bin/clang |
| 39 | CPP := $(MRV_MODULE_ROOT)/bin/clang-cpp |
| 40 | LLD := $(MRV_MODULE_ROOT)/bin/ld.lld |
| 41 | AR := $(MRV_MODULE_ROOT)/bin/llvm-ar |
| 42 | RANLIB := $(MRV_MODULE_ROOT)/bin/llvm-ranlib |
| 43 | OBJCOPY := $(MRV_MODULE_ROOT)/bin/llvm-objcopy |
| 44 | OBJDUMP := $(MRV_MODULE_ROOT)/bin/llvm-objdump |
| 45 | SIZE := $(MRV_MODULE_ROOT)/bin/llvm-size |
| 46 | #STRIP := $(MRV_MODULE_ROOT)/bin/strip |
| 47 | READELF := $(MRV_MODULE_ROOT)/bin/llvm-readelf |
| 48 | LLVM_RTLIB := $(MRV_MODULE_ROOT)/lib/clang/5.0.1/lib/riscv32/$(RV33_VAR) |
| 49 | LLVM_NEWLIB := $(MRV_MODULE_ROOT)/riscv32-elf/$(RV33_VAR)/lib |
| 50 | endif # CROSS_COMPILE is not defined |
| 51 | |
| 52 | ifeq (1,$(V)) |
| 53 | $(info $(TINYSYS_MEDMCU): CC=$(CC)) |
| 54 | $(info $(TINYSYS_MEDMCU): CPP=$(CPP)) |
| 55 | $(info $(TINYSYS_MEDMCU): LLD=$(LLD)) |
| 56 | $(info $(TINYSYS_MEDMCU): AR=$(AR)) |
| 57 | $(info $(TINYSYS_MEDMCU): RANLIB=$(RANLIB)) |
| 58 | $(info $(TINYSYS_MEDMCU): OBJCOPY=$(OBJCOPY)) |
| 59 | $(info $(TINYSYS_MEDMCU): OBJDUMP=$(OBJDUMP)) |
| 60 | $(info $(TINYSYS_MEDMCU): SIZE=$(SIZE)) |
| 61 | $(info $(TINYSYS_MEDMCU): STRIP=$(STRIP)) |
| 62 | $(info $(TINYSYS_MEDMCU): READELF=$(READELF)) |
| 63 | $(info $(TINYSYS_MEDMCU): LLVM_RTLIB=$(LLVM_RTLIB)) |
| 64 | $(info $(TINYSYS_MEDMCU): LLVM_DKWLIB=$(LLVM_DKWLIB)) |
| 65 | endif |
| 66 | |
| 67 | CFLAGS += -Werror -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast \ |
| 68 | -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes \ |
| 69 | -Wmissing-prototypes -Wmissing-declarations -Wunused \ |
| 70 | -Wno-unused-parameter -Wno-format \ |
| 71 | -g -fomit-frame-pointer -fno-strict-aliasing \ |
| 72 | -fno-builtin -mllvm -enable-printf-opt=false -Os -D__gracefulExit -DLLVM \ |
| 73 | --target=riscv32-unknown-elf -mcpu=$(RV33_VAR) |
| 74 | |
| 75 | # Define build type. Default to release |
| 76 | BUILD_TYPE ?= release |
| 77 | |
| 78 | ifeq (1,$(V)) |
| 79 | $(info $(TINYSYS_MEDMCU): BUILD_TYPE=$(BUILD_TYPE)) |
| 80 | endif |
| 81 | |
| 82 | ifeq (debug,$(strip $(BUILD_TYPE))) |
| 83 | CFLAGS += -DTINYSYS_DEBUG_BUILD |
| 84 | endif |
| 85 | |
| 86 | ########################################################### |
| 87 | ## Processor-based environment and targets |
| 88 | ########################################################### |
| 89 | PROCESSOR_DIR := $(SCP_PROJECT_DIR)/$(PROCESSOR) |
| 90 | PLATFORM_BASE_DIR := $(PROCESSOR_DIR)/$(PLATFORM) |
| 91 | PLATFORM_DIR := $(PLATFORM_BASE_DIR)/platform |
| 92 | PROJECT_DIR := $(PLATFORM_BASE_DIR)/$(PROJECT) |
| 93 | ifeq (,$(wildcard $(PROJECT_DIR))) |
| 94 | PROJECT_DIR := $(PLATFORM_BASE_DIR)/internal/$(PROJECT) |
| 95 | endif |
| 96 | PLATFORM_FEATURES_DIR := $(PLATFORM_DIR)/features |
| 97 | SCP_BUILT_DIR := $(SCP_BUILT_DIR)/$(PROCESSOR)/medmcu |
| 98 | DRIVERS_PLATFORM_DIR := $(SCP_DRIVERS_DIR)/$(PROCESSOR)/$(PLATFORM) |
| 99 | GENERATED_DIR := $(SCP_BUILT_DIR)/generated |
| 100 | GENERATED_INCLUDE_DIR := $(GENERATED_DIR)/include |
| 101 | $(PROCESSOR).TINYSYS_CONFIG_H := $(GENERATED_INCLUDE_DIR)/tinysys_config.h |
| 102 | $(PROCESSOR).BIN_BUILT := \ |
| 103 | $(SCP_BUILT_DIR)/$(TINYSYS_MEDMCU)-$(PROCESSOR).bin |
| 104 | |
| 105 | $(PROCESSOR)_MEDHW_GC0_PM.BIN_BUILT := $(SCP_BUILT_DIR)/medhw-gc0-pm.bin |
| 106 | $(PROCESSOR)_MEDHW_GC1_PM.BIN_BUILT := $(SCP_BUILT_DIR)/medhw-gc1-pm.bin |
| 107 | $(PROCESSOR)_MEDHW_GC2_PM.BIN_BUILT := $(SCP_BUILT_DIR)/medhw-gc2-pm.bin |
| 108 | $(PROCESSOR)_MEDHW_GC0_DM.BIN_BUILT := $(SCP_BUILT_DIR)/medhw-gc0-dm.bin |
| 109 | $(PROCESSOR)_MEDHW_GC1_DM.BIN_BUILT := $(SCP_BUILT_DIR)/medhw-gc1-dm.bin |
| 110 | $(PROCESSOR)_MEDHW_GC2_DM.BIN_BUILT := $(SCP_BUILT_DIR)/medhw-gc2-dm.bin |
| 111 | $(PROCESSOR)_MEDHW.BIN_BUILT := $(SCP_BUILT_DIR)/medhw.bin |
| 112 | |
| 113 | # Set to no on DVT and SLT load |
| 114 | CFG_HEAP_ON_L1TCM = yes |
| 115 | |
| 116 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 117 | $(PROCESSOR)_L1TCM.BIN_BUILT := \ |
| 118 | $(SCP_BUILT_DIR)/$(TINYSYS_MEDMCU)-$(PROCESSOR)_L1TCM.bin |
| 119 | else |
| 120 | $(PROCESSOR)_DRAM.BIN_BUILT := \ |
| 121 | $(SCP_BUILT_DIR)/$(TINYSYS_MEDMCU)-$(PROCESSOR)_DRAM.bin |
| 122 | endif |
| 123 | $(PROCESSOR).LINK_LD := $(SCP_BUILT_DIR)/link.ld |
| 124 | |
| 125 | |
| 126 | SCP_BIN_STEM := $(basename $($(PROCESSOR).BIN_BUILT)) |
| 127 | $(PROCESSOR).BIN_NH := $(SCP_BIN_STEM)-no-mtk-header.bin |
| 128 | $(PROCESSOR).BIN_MEDHW_NH := $(DRIVERS_PLATFORM_DIR)/med/medhw/bin |
| 129 | MEDHW_GC0_PM := assembly_code_medhw_gc0.bin |
| 130 | MEDHW_GC1_PM := assembly_code_medhw_gc1.bin |
| 131 | MEDHW_GC2_PM := assembly_code_medhw_gc2.bin |
| 132 | MEDHW_GC0_DM := dm_data_medhw_gc0.bin |
| 133 | MEDHW_GC1_DM := dm_data_medhw_gc1.bin |
| 134 | MEDHW_GC2_DM := dm_data_medhw_gc2.bin |
| 135 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 136 | $(PROCESSOR).BIN_L1TCM_NH := $(SCP_BIN_STEM)_L1TCM-no-mtk-header.bin |
| 137 | else |
| 138 | $(PROCESSOR).BIN_DRAM_NH := $(SCP_BIN_STEM)_DRAM-no-mtk-header.bin |
| 139 | endif |
| 140 | $(PROCESSOR).ELF_FILE := $(SCP_BIN_STEM).elf |
| 141 | $(PROCESSOR).MAP_FILE := $(SCP_BIN_STEM).map |
| 142 | $(PROCESSOR).ASM_FILE := $(SCP_BIN_STEM).asm |
| 143 | $(PROCESSOR).ASM2_FILE := $(SCP_BIN_STEM).asm2 |
| 144 | $(PROCESSOR).RELF_FILE := $(SCP_BIN_STEM).relf |
| 145 | $(PROCESSOR).IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_$(notdir $(SCP_BIN_STEM)).cfg |
| 146 | $(PROCESSOR)_MEDHW_GC0_PM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_medhw-gc0-pm.cfg |
| 147 | $(PROCESSOR)_MEDHW_GC1_PM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_medhw-gc1-pm.cfg |
| 148 | $(PROCESSOR)_MEDHW_GC2_PM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_medhw-gc2-pm.cfg |
| 149 | $(PROCESSOR)_MEDHW_GC0_DM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_medhw-gc0-dm.cfg |
| 150 | $(PROCESSOR)_MEDHW_GC1_DM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_medhw-gc1-dm.cfg |
| 151 | $(PROCESSOR)_MEDHW_GC2_DM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_medhw-gc2-dm.cfg |
| 152 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 153 | $(PROCESSOR)_L1TCM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_$(notdir $(SCP_BIN_STEM))_l1tcm.cfg |
| 154 | else |
| 155 | $(PROCESSOR)_DRAM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_$(notdir $(SCP_BIN_STEM))_dram.cfg |
| 156 | endif |
| 157 | |
| 158 | # ESL-specific outputs |
| 159 | $(PROCESSOR).ESL_AP_LINK_LD := $(SCP_BUILT_DIR)/link.ap.ld |
| 160 | $(PROCESSOR).ESL_MCU0_LINK_LD := $(SCP_BUILT_DIR)/link.mcu0.ld |
| 161 | $(PROCESSOR).ESL_MCU1_LINK_LD := $(SCP_BUILT_DIR)/link.mcu1.ld |
| 162 | $(PROCESSOR).ESL_AP_ELF := $(SCP_BIN_STEM).ap.elf |
| 163 | $(PROCESSOR).ESL_MCU0_ELF := $(SCP_BIN_STEM).mcu0.elf |
| 164 | $(PROCESSOR).ESL_MCU1_ELF := $(SCP_BIN_STEM).mcu1.elf |
| 165 | $(PROCESSOR).ESL_AP_MAP := $(SCP_BIN_STEM).ap.map |
| 166 | $(PROCESSOR).ESL_MCU0_MAP := $(SCP_BIN_STEM).mcu0.map |
| 167 | $(PROCESSOR).ESL_MCU1_MAP := $(SCP_BIN_STEM).mcu1.map |
| 168 | $(PROCESSOR).ESL_AP_ASM := $(SCP_BIN_STEM).ap.asm |
| 169 | $(PROCESSOR).ESL_MCU0_ASM := $(SCP_BIN_STEM).mcu0.asm |
| 170 | $(PROCESSOR).ESL_MCU1_ASM := $(SCP_BIN_STEM).mcu1.asm |
| 171 | $(PROCESSOR).ESL_AP_BIN := $(SCP_BIN_STEM).ap.bin |
| 172 | $(PROCESSOR).ESL_MCU0_BIN := $(SCP_BIN_STEM).mcu0.bin |
| 173 | $(PROCESSOR).ESL_MCU1_BIN := $(SCP_BIN_STEM).mcu1.bin |
| 174 | |
| 175 | PLATFORM_MK := $(PLATFORM_DIR)/platform.mk |
| 176 | ifeq ($(wildcard $(PLATFORM_MK)),) |
| 177 | $(error $(TINYSYS_MEDMCU): $(PLATFORM_MK) is missing) |
| 178 | endif |
| 179 | |
| 180 | # Reset any previously defined SCP options before including my own definitions |
| 181 | $(foreach v,$(SCP_PREVIOUS_CFG_OPTS), \ |
| 182 | $(eval $(v) := ) \ |
| 183 | ) |
| 184 | scp_old_cfgs := $(.VARIABLES) |
| 185 | |
| 186 | include $(PLATFORM_MK) |
| 187 | |
| 188 | scp_new_cfgs := $(.VARIABLES) |
| 189 | SCP_PREVIOUS_CFG_OPTS := \ |
| 190 | $(filter CFG_%,$(filter-out $(scp_old_cfgs),$(scp_new_cfgs))) |
| 191 | |
| 192 | ifneq (yesyes,$(CFG_ESL_BUILD)$(CFG_ESL_DUAL_CORE)) |
| 193 | ALL_SCP_BINS := $(ALL_SCP_BINS) $($(PROCESSOR).BIN_BUILT) |
| 194 | else |
| 195 | ALL_SCP_ESL_BINS := $(ALL_SCP_ESL_BINS) \ |
| 196 | $($(PROCESSOR).ESL_AP_BIN) \ |
| 197 | $($(PROCESSOR).ESL_MCU0_BIN) \ |
| 198 | $($(PROCESSOR).ESL_MCU1_BIN) |
| 199 | endif |
| 200 | |
| 201 | INCLUDES += $(GENERATED_INCLUDE_DIR) |
| 202 | INCLUDES += $(LLVM_DKWINC) |
| 203 | CFLAGS += -include $($(PROCESSOR).TINYSYS_CONFIG_H) |
| 204 | |
| 205 | # Include project-specific files only when available |
| 206 | ifneq ($(wildcard $(PROJECT_DIR)/inc),) |
| 207 | INCLUDES += $(PROJECT_DIR)/inc |
| 208 | endif |
| 209 | |
| 210 | ifneq ($(wildcard $(PROJECT_DIR)/src/project.c),) |
| 211 | C_FILES += $(wildcard $(PROJECT_DIR)/src/project.c) |
| 212 | endif |
| 213 | |
| 214 | C_FILES := $(patsubst ./%,%,$(C_FILES)) |
| 215 | S_FILES := $(patsubst ./%,%,$(S_FILES)) |
| 216 | C_OBJS := $(sort $(C_FILES:%.c=$(SCP_BUILT_DIR)/%.o)) |
| 217 | S_OBJS := $(sort $(S_FILES:%.S=$(SCP_BUILT_DIR)/%.o)) |
| 218 | |
| 219 | OBJS += $(sort $(C_OBJS) $(S_OBJS)) |
| 220 | $(OBJS): $($(PROCESSOR).TINYSYS_CONFIG_H) |
| 221 | |
| 222 | # Set dependency |
| 223 | DEPS += $(sort $(filter-out %.d,$(MAKEFILE_LIST))) |
| 224 | |
| 225 | # Stash the list of configuration names and values to generate config header |
| 226 | CONFIG_MK_FILES := \ |
| 227 | $(PLATFORM_MK) \ |
| 228 | $(wildcard $(PROJECT_DIR)/project.mk) |
| 229 | $(call stash_config_options,$(CONFIG_MK_FILES)) |
| 230 | |
| 231 | INCLUDES := $(call normalize-includes,$(INCLUDES)) |
| 232 | |
| 233 | ########################################################### |
| 234 | ## Generic build targets |
| 235 | ########################################################### |
| 236 | $(C_OBJS): PRIVATE_BUILD_TAG := $(TINYSYS_MEDMCU) |
| 237 | $(C_OBJS): PRIVATE_CC := $(CC) |
| 238 | $(C_OBJS): PRIVATE_CFLAGS := $(CFLAGS) |
| 239 | $(C_OBJS): PRIVATE_INCLUDES := $(INCLUDES) |
| 240 | $(C_OBJS): $(SCP_BUILT_DIR)/%.o: %.c |
| 241 | $(compile-c-or-s-to-o) |
| 242 | |
| 243 | $(S_OBJS): PRIVATE_BUILD_TAG := $(TINYSYS_MEDMCU) |
| 244 | $(S_OBJS): PRIVATE_CC := $(CC) |
| 245 | $(S_OBJS): PRIVATE_CFLAGS := $(CFLAGS) |
| 246 | $(S_OBJS): PRIVATE_INCLUDES := $(INCLUDES) |
| 247 | $(S_OBJS): $(SCP_BUILT_DIR)/%.o: %.S |
| 248 | $(compile-c-or-s-to-o) |
| 249 | |
| 250 | # Generate header file that contains all config options and its values |
| 251 | .PHONY: configheader |
| 252 | configheader: $($(PROCESSOR).TINYSYS_CONFIG_H) |
| 253 | |
| 254 | .PHONY: $($(PROCESSOR).TINYSYS_CONFIG_H) |
| 255 | $($(PROCESSOR).TINYSYS_CONFIG_H): PRIVATE_PROCESSOR := $(PROCESSOR) |
| 256 | $($(PROCESSOR).TINYSYS_CONFIG_H): |
| 257 | $(call gen-tinysys-header,__TINYSYS_CONFIG_H, \ |
| 258 | $($(PRIVATE_PROCESSOR).CONFIG_OPTIONS), $(TINYSYS_MEDMCU),) |
| 259 | |
| 260 | $(OBJS): $(DEPS) |
| 261 | -include $(OBJS:.o=.d) |
| 262 | |
| 263 | ########################################################### |
| 264 | ## Processor-based SCP build targets |
| 265 | ########################################################### |
| 266 | $($(PROCESSOR).BIN_BUILT): PRIVATE_PROCESSOR:= $(PROCESSOR) |
| 267 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_NH := $($(PROCESSOR).BIN_NH) |
| 268 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BUILT_DIR := $(SCP_BUILT_DIR) |
| 269 | $($(PROCESSOR).BIN_BUILT): PRIVATE_IMG_HDR_CFG := $($(PROCESSOR).IMG_HDR_CFG) |
| 270 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_GC0_PM_BUILT := $($(PROCESSOR)_MEDHW_GC0_PM.BIN_BUILT) |
| 271 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_GC1_PM_BUILT := $($(PROCESSOR)_MEDHW_GC1_PM.BIN_BUILT) |
| 272 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_GC2_PM_BUILT := $($(PROCESSOR)_MEDHW_GC2_PM.BIN_BUILT) |
| 273 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_GC0_DM_BUILT := $($(PROCESSOR)_MEDHW_GC0_DM.BIN_BUILT) |
| 274 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_GC1_DM_BUILT := $($(PROCESSOR)_MEDHW_GC1_DM.BIN_BUILT) |
| 275 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_GC2_DM_BUILT := $($(PROCESSOR)_MEDHW_GC2_DM.BIN_BUILT) |
| 276 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_MEDHW_NH := $($(PROCESSOR).BIN_MEDHW_NH) |
| 277 | $($(PROCESSOR).BIN_BUILT): PRIVATE_MEDHW_GC0_PM_IMG_HDR_CFG := $($(PROCESSOR)_MEDHW_GC0_PM.IMG_HDR_CFG) |
| 278 | $($(PROCESSOR).BIN_BUILT): PRIVATE_MEDHW_GC1_PM_IMG_HDR_CFG := $($(PROCESSOR)_MEDHW_GC1_PM.IMG_HDR_CFG) |
| 279 | $($(PROCESSOR).BIN_BUILT): PRIVATE_MEDHW_GC2_PM_IMG_HDR_CFG := $($(PROCESSOR)_MEDHW_GC2_PM.IMG_HDR_CFG) |
| 280 | $($(PROCESSOR).BIN_BUILT): PRIVATE_MEDHW_GC0_DM_IMG_HDR_CFG := $($(PROCESSOR)_MEDHW_GC0_DM.IMG_HDR_CFG) |
| 281 | $($(PROCESSOR).BIN_BUILT): PRIVATE_MEDHW_GC1_DM_IMG_HDR_CFG := $($(PROCESSOR)_MEDHW_GC1_DM.IMG_HDR_CFG) |
| 282 | $($(PROCESSOR).BIN_BUILT): PRIVATE_MEDHW_GC2_DM_IMG_HDR_CFG := $($(PROCESSOR)_MEDHW_GC2_DM.IMG_HDR_CFG) |
| 283 | $($(PROCESSOR).BIN_BUILT): PRIVATE_ELF_FILE := $($(PROCESSOR).ELF_FILE) |
| 284 | $($(PROCESSOR).BIN_BUILT): PRIVATE_PLATFORM_DIR := $(PLATFORM_DIR) |
| 285 | $($(PROCESSOR).BIN_BUILT): PRIVATE_PROJECT_DIR := $(PROJECT_DIR) |
| 286 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 287 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_L1TCM_BUILT := $($(PROCESSOR)_L1TCM.BIN_BUILT) |
| 288 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_L1TCM_NH := $($(PROCESSOR).BIN_L1TCM_NH) |
| 289 | $($(PROCESSOR).BIN_BUILT): PRIVATE_L1TCM_IMG_HDR_CFG := $($(PROCESSOR)_L1TCM.IMG_HDR_CFG) |
| 290 | else |
| 291 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_DRAM_BUILT := $($(PROCESSOR)_DRAM.BIN_BUILT) |
| 292 | $($(PROCESSOR).BIN_BUILT): PRIVATE_BIN_DRAM_NH := $($(PROCESSOR).BIN_DRAM_NH) |
| 293 | $($(PROCESSOR).BIN_BUILT): PRIVATE_DRAM_IMG_HDR_CFG := $($(PROCESSOR)_DRAM.IMG_HDR_CFG) |
| 294 | endif |
| 295 | $($(PROCESSOR).BIN_BUILT): PRIVATE_OBJCOPY := $(OBJCOPY) |
| 296 | |
| 297 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 298 | $($(PROCESSOR).BIN_BUILT): $($(PROCESSOR).ELF_FILE) \ |
| 299 | $($(PROCESSOR).IMG_HDR_CFG) $($(PROCESSOR)_DRAM.IMG_HDR_CFG) $(DEPS) \ |
| 300 | $($(PROCESSOR)_MEDHW_GC0_PM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC1_PM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC2_PM.IMG_HDR_CFG) \ |
| 301 | $($(PROCESSOR)_MEDHW_GC0_DM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC1_DM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC2_DM.IMG_HDR_CFG) $(DEPS) \ |
| 302 | | $(OBJSIZE) $(MKIMAGE) |
| 303 | else |
| 304 | $($(PROCESSOR).BIN_BUILT): $($(PROCESSOR).ELF_FILE) \ |
| 305 | $($(PROCESSOR).IMG_HDR_CFG) $($(PROCESSOR)_L1TCM.IMG_HDR_CFG) $(DEPS) \ |
| 306 | $($(PROCESSOR)_MEDHW_GC0_PM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC1_PM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC2_PM.IMG_HDR_CFG) \ |
| 307 | $($(PROCESSOR)_MEDHW_GC0_DM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC1_DM.IMG_HDR_CFG) $($(PROCESSOR)_MEDHW_GC2_DM.IMG_HDR_CFG) $(DEPS) \ |
| 308 | | $(OBJSIZE) $(MKIMAGE) |
| 309 | endif |
| 310 | @echo '$(TINYSYS_MEDMCU): BIN $@' |
| 311 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 312 | $(hide)$(PRIVATE_OBJCOPY) -O binary --remove-section .l1tcm_region $(PRIVATE_ELF_FILE) $(PRIVATE_BIN_NH) |
| 313 | #$(hide)$(PRIVATE_OBJCOPY) -O binary $(PRIVATE_ELF_FILE) $(PRIVATE_BIN_NH) |
| 314 | -rm -f $(PRIVATE_BIN_L1TCM_NH) |
| 315 | -rm -f $(PRIVATE_BIN_L1TCM_BUILT) |
| 316 | -$(hide)$(PRIVATE_OBJCOPY) -O binary --only-keep=.l1tcm_region $(PRIVATE_ELF_FILE) $(PRIVATE_BIN_L1TCM_NH) |
| 317 | |
| 318 | @if [ -s '$(PRIVATE_BIN_L1TCM_NH)' ]; then \ |
| 319 | echo "$(TINYSYS_MEDMCU): enable cache support for $(PRIVATE_PROCESSOR)"; \ |
| 320 | $(MKIMAGE) $(PRIVATE_BIN_L1TCM_NH) $(PRIVATE_L1TCM_IMG_HDR_CFG) > $(PRIVATE_BIN_L1TCM_BUILT); \ |
| 321 | fi; |
| 322 | else |
| 323 | $(hide)$(PRIVATE_OBJCOPY) -O binary --remove-section .dram_region $(PRIVATE_ELF_FILE) $(PRIVATE_BIN_NH) |
| 324 | #$(hide)$(PRIVATE_OBJCOPY) -O binary $(PRIVATE_ELF_FILE) $(PRIVATE_BIN_NH) |
| 325 | -rm -f $(PRIVATE_BIN_DRAM_NH) |
| 326 | -rm -f $(PRIVATE_BIN_DRAM_BUILT) |
| 327 | -$(hide)$(PRIVATE_OBJCOPY) -O binary --only-keep=.dram_region $(PRIVATE_ELF_FILE) $(PRIVATE_BIN_DRAM_NH) |
| 328 | |
| 329 | @if [ -s '$(PRIVATE_BIN_DRAM_NH)' ]; then \ |
| 330 | echo "$(TINYSYS_MEDMCU): enable cache support for $(PRIVATE_PROCESSOR)"; \ |
| 331 | $(MKIMAGE) $(PRIVATE_BIN_DRAM_NH) $(PRIVATE_DRAM_IMG_HDR_CFG) > $(PRIVATE_BIN_DRAM_BUILT); \ |
| 332 | fi; |
| 333 | endif |
| 334 | @if [ -s '$(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC0_PM)' ]; then \ |
| 335 | echo "$(TINYSYS_MEDMCU): $(MEDHW_GC0_PM) binary found"; \ |
| 336 | $(MKIMAGE) $(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC0_PM) $(PRIVATE_MEDHW_GC0_PM_IMG_HDR_CFG) > $(PRIVATE_BIN_MEDHW_GC0_PM_BUILT); \ |
| 337 | $(MKIMAGE) $(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC0_DM) $(PRIVATE_MEDHW_GC0_DM_IMG_HDR_CFG) > $(PRIVATE_BIN_MEDHW_GC0_DM_BUILT); \ |
| 338 | cat $(PRIVATE_BIN_MEDHW_GC0_PM_BUILT) $(PRIVATE_BIN_MEDHW_GC0_DM_BUILT) > $($(PROCESSOR)_MEDHW.BIN_BUILT); \ |
| 339 | fi; |
| 340 | @if [ -s '$(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC1_PM)' ]; then \ |
| 341 | echo "$(TINYSYS_MEDMCU): $(MEDHW_GC1_PM) binary found"; \ |
| 342 | $(MKIMAGE) $(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC1_PM) $(PRIVATE_MEDHW_GC1_PM_IMG_HDR_CFG) > $(PRIVATE_BIN_MEDHW_GC1_PM_BUILT); \ |
| 343 | $(MKIMAGE) $(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC1_DM) $(PRIVATE_MEDHW_GC1_DM_IMG_HDR_CFG) > $(PRIVATE_BIN_MEDHW_GC1_DM_BUILT); \ |
| 344 | cat $(PRIVATE_BIN_MEDHW_GC1_PM_BUILT) $(PRIVATE_BIN_MEDHW_GC1_DM_BUILT) >> $($(PROCESSOR)_MEDHW.BIN_BUILT); \ |
| 345 | fi; |
| 346 | @if [ -s '$(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC2_PM)' ]; then \ |
| 347 | echo "$(TINYSYS_MEDMCU): $(MEDHW_GC2_PM) binary found"; \ |
| 348 | $(MKIMAGE) $(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC2_PM) $(PRIVATE_MEDHW_GC2_PM_IMG_HDR_CFG) > $(PRIVATE_BIN_MEDHW_GC2_PM_BUILT); \ |
| 349 | $(MKIMAGE) $(PRIVATE_BIN_MEDHW_NH)/$(MEDHW_GC2_DM) $(PRIVATE_MEDHW_GC2_DM_IMG_HDR_CFG) > $(PRIVATE_BIN_MEDHW_GC2_DM_BUILT); \ |
| 350 | cat $(PRIVATE_BIN_MEDHW_GC2_PM_BUILT) $(PRIVATE_BIN_MEDHW_GC2_DM_BUILT) >> $($(PROCESSOR)_MEDHW.BIN_BUILT); \ |
| 351 | fi; |
| 352 | $(hide)$(MKIMAGE) $(PRIVATE_BIN_NH) $(PRIVATE_IMG_HDR_CFG) > $@ |
| 353 | |
| 354 | |
| 355 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 356 | .PHONY: $($(PROCESSOR)_L1TCM.BIN_BUILT) |
| 357 | else |
| 358 | .PHONY: $($(PROCESSOR)_DRAM.BIN_BUILT) |
| 359 | endif |
| 360 | |
| 361 | ifeq (1,$(V)) |
| 362 | $(hide)$(SIZE) $(PRIVATE_ELF_FILE) |
| 363 | $(hide)$(OBJSIZE) $(PRIVATE_BUILT_DIR)/$(SCP_RTOS_SRC_DIR) |
| 364 | $(hide)$(OBJSIZE) $(PRIVATE_BUILT_DIR)/$(PRIVATE_PLATFORM_DIR) |
| 365 | $(hide)$(OBJSIZE) $(PRIVATE_BUILT_DIR)/$(PRIVATE_PROJECT_DIR) |
| 366 | endif |
| 367 | |
| 368 | MY_LIBFLAGS_SEARCH_PATH := $(patsubst -L%,%,$(filter -L%,$(LIBFLAGS))) |
| 369 | MY_LIBFLAGS_SEARCH_NAME := $(patsubst -l%,lib%.a,$(filter -l%,$(LIBFLAGS))) |
| 370 | MY_LIBFLAGS_SEARCH_FILE := $(wildcard $(foreach p,$(MY_LIBFLAGS_SEARCH_PATH),$(foreach n,$(MY_LIBFLAGS_SEARCH_NAME),$(p)/$(n)))) |
| 371 | $($(PROCESSOR).ELF_FILE): PRIVATE_CC := $(CC) |
| 372 | $($(PROCESSOR).ELF_FILE): PRIVATE_LLD := $(LLD) |
| 373 | $($(PROCESSOR).ELF_FILE): PRIVATE_PLATFORM := $(PLATFORM) |
| 374 | $($(PROCESSOR).ELF_FILE): PRIVATE_MAP_FILE := $($(PROCESSOR).MAP_FILE) |
| 375 | $($(PROCESSOR).ELF_FILE): PRIVATE_ASM_FILE := $($(PROCESSOR).ASM_FILE) |
| 376 | $($(PROCESSOR).ELF_FILE): PRIVATE_LDFLAGS := $(LDFLAGS) |
| 377 | $($(PROCESSOR).ELF_FILE): PRIVATE_LIBS := $(LIBFLAGS) |
| 378 | $($(PROCESSOR).ELF_FILE): PRIVATE_OBJDUMP := $(OBJDUMP) |
| 379 | $($(PROCESSOR).ELF_FILE): PRIVATE_RV33_VAR := $(RV33_VAR) |
| 380 | $($(PROCESSOR).ELF_FILE): PRIVATE_OBJS := $(OBJS) |
| 381 | $($(PROCESSOR).ELF_FILE): PRIVATE_LINK_LD := $($(PROCESSOR).LINK_LD) |
| 382 | $($(PROCESSOR).ELF_FILE): $(OBJS) |
| 383 | $($(PROCESSOR).ELF_FILE): $(MY_LIBFLAGS_SEARCH_FILE) |
| 384 | $($(PROCESSOR).ELF_FILE): $($(PROCESSOR).LINK_LD) $(DEPS) |
| 385 | @echo '$(TINYSYS_MEDMCU): ELF $@' |
| 386 | @mkdir -p $(dir $@) |
| 387 | $(hide)$(PRIVATE_LLD) -Map=$(PRIVATE_MAP_FILE) -o $@ -T $(PRIVATE_LINK_LD) $(PRIVATE_LDFLAGS) $(PRIVATE_OBJS) $(PRIVATE_LIBS) |
| 388 | $(hide)$(PRIVATE_OBJDUMP) -mcpu=$(PRIVATE_RV33_VAR) -S $@ > $(PRIVATE_ASM_FILE) |
| 389 | #$(hide)$(GOBJDUMP) -S $@ > $($(PROCESSOR).ASM2_FILE) |
| 390 | #$(hide)$(READELF) -a $@ > $($(PROCESSOR).RELF_FILE) |
| 391 | @echo '$(TINYSYS_MEDMCU): Memory Check' |
| 392 | $(hide)PLATFORM=$(PRIVATE_PLATFORM) $(MCHECK) -d SCP $(SCP_SETTING_INI) $(PRIVATE_MAP_FILE) |
| 393 | |
| 394 | $($(PROCESSOR).LINK_LD): PRIVATE_CC := $(CC) |
| 395 | $($(PROCESSOR).LINK_LD): PRIVATE_CFLAGS := $(CFLAGS) |
| 396 | $($(PROCESSOR).LINK_LD): PRIVATE_INCLUDES := $(INCLUDES) |
| 397 | $($(PROCESSOR).LINK_LD): $(PLATFORM_DIR)/link.ld.c configheader |
| 398 | @echo '$(TINYSYS_MEDMCU): CC $@' |
| 399 | @mkdir -p $(dir $@) |
| 400 | $(hide)$(PRIVATE_CC) -Xpreprocessor $(PRIVATE_CFLAGS) $(PRIVATE_INCLUDES) -E -P $< -o $@_tmp |
| 401 | $(hide)$(GEN_LINK_LD) -i $@_tmp -o $@ |
| 402 | |
| 403 | $($(PROCESSOR).IMG_HDR_CFG): $(DEPS) |
| 404 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 405 | |
| 406 | ifeq (yes,$(CFG_HEAP_ON_L1TCM)) |
| 407 | $($(PROCESSOR)_L1TCM.IMG_HDR_CFG): $(DEPS) |
| 408 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 409 | else |
| 410 | $($(PROCESSOR)_DRAM.IMG_HDR_CFG): $(DEPS) |
| 411 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 412 | endif |
| 413 | |
| 414 | $($(PROCESSOR)_MEDHW_GC0_PM.IMG_HDR_CFG): $(DEPS) |
| 415 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 416 | |
| 417 | $($(PROCESSOR)_MEDHW_GC1_PM.IMG_HDR_CFG): $(DEPS) |
| 418 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 419 | |
| 420 | $($(PROCESSOR)_MEDHW_GC2_PM.IMG_HDR_CFG): $(DEPS) |
| 421 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 422 | |
| 423 | $($(PROCESSOR)_MEDHW_GC0_DM.IMG_HDR_CFG): $(DEPS) |
| 424 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 425 | |
| 426 | $($(PROCESSOR)_MEDHW_GC1_DM.IMG_HDR_CFG): $(DEPS) |
| 427 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 428 | |
| 429 | $($(PROCESSOR)_MEDHW_GC2_DM.IMG_HDR_CFG): $(DEPS) |
| 430 | $(call gen-image-header,$(TINYSYS_MEDMCU)) |
| 431 | |
| 432 | ########################################################### |
| 433 | ## ESL object definition |
| 434 | ########################################################### |
| 435 | ESL_AP_C_FILES := $(patsubst ./%,%,$(ESL_AP_C_FILES)) |
| 436 | ESL_AP_S_FILES := $(patsubst ./%,%,$(ESL_AP_S_FILES)) |
| 437 | ESL_MCU_C_FILES := $(patsubst ./%,%,$(ESL_MCU_C_FILES)) |
| 438 | ESL_MCU_S_FILES := $(patsubst ./%,%,$(ESL_MCU_S_FILES)) |
| 439 | ESL_AP_C_OBJS := $(sort $(ESL_AP_C_FILES:%.c=$(SCP_BUILT_DIR)/%.o)) |
| 440 | ESL_MCU_C_OBJS := $(sort $(ESL_MCU_C_FILES:%.c=$(SCP_BUILT_DIR)/%.o)) |
| 441 | ESL_AP_S_OBJS := $(sort $(ESL_AP_S_FILES:%.S=$(SCP_BUILT_DIR)/%.o)) |
| 442 | ESL_MCU_S_OBJS := $(sort $(ESL_MCU_S_FILES:%.S=$(SCP_BUILT_DIR)/%.o)) |
| 443 | |
| 444 | ESL_AP_OBJS := $(sort $(ESL_AP_C_OBJS) $(ESL_AP_S_OBJS)) |
| 445 | ESL_MCU_OBJS := $(sort $(ESL_MCU_C_OBJS) $(ESL_MCU_S_OBJS)) |
| 446 | ESL_C_OBJS := $(sort $(ESL_AP_C_OBJS) $(ESL_MCU_C_OBJS)) |
| 447 | ESL_S_OBJS := $(sort $(ESL_AP_S_OBJS) $(ESL_MCU_S_OBJS)) |
| 448 | $(ESL_C_OBJS) $(ESL_S_OBJS): $($(PROCESSOR).TINYSYS_CONFIG_H) |
| 449 | |
| 450 | ########################################################### |
| 451 | ## ESL build targets |
| 452 | ########################################################### |
| 453 | $(ESL_C_OBJS) $(ESL_S_OBJS): $(DEPS) |
| 454 | |
| 455 | $(ESL_C_OBJS): PRIVATE_BUILD_TAG := $(TINYSYS_MEDMCU) |
| 456 | $(ESL_C_OBJS): PRIVATE_CC := $(CC) |
| 457 | $(ESL_C_OBJS): PRIVATE_CFLAGS := $(CFLAGS) |
| 458 | $(ESL_C_OBJS): PRIVATE_INCLUDES := $(INCLUDES) |
| 459 | $(ESL_C_OBJS): $(SCP_BUILT_DIR)/%.o: %.c |
| 460 | $(compile-c-or-s-to-o) |
| 461 | |
| 462 | $(ESL_S_OBJS): PRIVATE_BUILD_TAG := $(TINYSYS_MEDMCU) |
| 463 | $(ESL_S_OBJS): PRIVATE_CC := $(CC) |
| 464 | $(ESL_S_OBJS): PRIVATE_CFLAGS := $(CFLAGS) |
| 465 | $(ESL_S_OBJS): PRIVATE_INCLUDES := $(INCLUDES) |
| 466 | $(ESL_S_OBJS): $(SCP_BUILT_DIR)/%.o: %.S |
| 467 | $(compile-c-or-s-to-o) |
| 468 | |
| 469 | # ESL LDs |
| 470 | $($(PROCESSOR).ESL_AP_LINK_LD): PRIVATE_CC := $(CC) |
| 471 | $($(PROCESSOR).ESL_AP_LINK_LD): PRIVATE_CFLAGS := $(CFLAGS) -Xpreprocessor -DPLAT_DUAL -DPLAT_DUAL_AP -E -P |
| 472 | $($(PROCESSOR).ESL_AP_LINK_LD): PRIVATE_INCLUDES := $(INCLUDES) |
| 473 | $($(PROCESSOR).ESL_AP_LINK_LD): $(PLATFORM_DIR)/link.ld.c configheader |
| 474 | @echo '$(TINYSYS_MEDMCU): CC $@' |
| 475 | @mkdir -p $(dir $@) |
| 476 | $(hide)$(PRIVATE_CC) $(PRIVATE_CFLAGS) $(PRIVATE_INCLUDES) -E -P $< -o $@ |
| 477 | |
| 478 | $($(PROCESSOR).ESL_MCU0_LINK_LD): PRIVATE_CC := $(CC) |
| 479 | $($(PROCESSOR).ESL_MCU0_LINK_LD): PRIVATE_CFLAGS := $(CFLAGS) -Xpreprocessor -DPLAT_DUAL -DPLAT_DUAL_MCU0 -E -P |
| 480 | $($(PROCESSOR).ESL_MCU0_LINK_LD): PRIVATE_INCLUDES := $(INCLUDES) |
| 481 | $($(PROCESSOR).ESL_MCU0_LINK_LD): $(PLATFORM_DIR)/link.ld.c configheader |
| 482 | @echo '$(TINYSYS_MEDMCU): CC $@' |
| 483 | @mkdir -p $(dir $@) |
| 484 | $(hide)$(PRIVATE_CC) $(PRIVATE_CFLAGS) $(PRIVATE_INCLUDES) -E -P $< -o $@ |
| 485 | |
| 486 | $($(PROCESSOR).ESL_MCU1_LINK_LD): PRIVATE_CC := $(CC) |
| 487 | $($(PROCESSOR).ESL_MCU1_LINK_LD): PRIVATE_CFLAGS := $(CFLAGS) -Xpreprocessor -DPLAT_DUAL -DPLAT_DUAL_MCU1 -E -P |
| 488 | $($(PROCESSOR).ESL_MCU1_LINK_LD): PRIVATE_INCLUDES := $(INCLUDES) |
| 489 | $($(PROCESSOR).ESL_MCU1_LINK_LD): $(PLATFORM_DIR)/link.ld.c configheader |
| 490 | @echo '$(TINYSYS_MEDMCU): CC $@' |
| 491 | @mkdir -p $(dir $@) |
| 492 | $(hide)$(PRIVATE_CC) $(PRIVATE_CFLAGS) $(PRIVATE_INCLUDES) -E -P $< -o $@ |
| 493 | |
| 494 | # ESL ELFs |
| 495 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_LLD := $(LLD) |
| 496 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_LINK_LD := $($(PROCESSOR).ESL_AP_LINK_LD) |
| 497 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_MAP_FILE := $($(PROCESSOR).ESL_AP_MAP) |
| 498 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_LDFLAGS := $(LDFLAGS) |
| 499 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_LIBS := $(LIBFLAGS) |
| 500 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_OBJS := $(OBJS) |
| 501 | $($(PROCESSOR).ESL_AP_ELF): PRIVATE_AP_OBJS := $(ESL_AP_OBJS) |
| 502 | $($(PROCESSOR).ESL_AP_ELF): $($(PROCESSOR).ESL_AP_LINK_LD) $(OBJS) $(ESL_AP_OBJS) |
| 503 | $(hide)$(PRIVATE_LLD) -Map=$(PRIVATE_MAP_FILE) -o $@ -T $(PRIVATE_LINK_LD) $(PRIVATE_LDFLAGS) $(PRIVATE_OBJS) $(PRIVATE_AP_OBJS) $(PRIVATE_LIBS) |
| 504 | |
| 505 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_LLD := $(LLD) |
| 506 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_LINK_LD := $($(PROCESSOR).ESL_MCU0_LINK_LD) |
| 507 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_MAP_FILE := $($(PROCESSOR).ESL_MCU0_MAP) |
| 508 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_LDFLAGS := $(LDFLAGS) |
| 509 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_LIBS := $(LIBFLAGS) |
| 510 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_OBJS := $(OBJS) |
| 511 | $($(PROCESSOR).ESL_MCU0_ELF): PRIVATE_MCU_OBJS := $(ESL_MCU_OBJS) |
| 512 | $($(PROCESSOR).ESL_MCU0_ELF): $($(PROCESSOR).ESL_MCU0_LINK_LD) $(OBJS) $(ESL_MCU_OBJS) |
| 513 | $(hide)$(PRIVATE_LLD) -Map=$(PRIVATE_MAP_FILE) -o $@ -T $(PRIVATE_LINK_LD) $(PRIVATE_LDFLAGS) $(PRIVATE_OBJS) $(PRIVATE_MCU_OBJS) $(PRIVATE_LIBS) |
| 514 | |
| 515 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_LLD := $(LLD) |
| 516 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_LINK_LD := $($(PROCESSOR).ESL_MCU1_LINK_LD) |
| 517 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_MAP_FILE := $($(PROCESSOR).ESL_MCU1_MAP) |
| 518 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_LDFLAGS := $(LDFLAGS) |
| 519 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_LIBS := $(LIBFLAGS) |
| 520 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_OBJS := $(OBJS) |
| 521 | $($(PROCESSOR).ESL_MCU1_ELF): PRIVATE_MCU_OBJS := $(ESL_MCU_OBJS) |
| 522 | $($(PROCESSOR).ESL_MCU1_ELF): $($(PROCESSOR).ESL_MCU1_LINK_LD) $(OBJS) $(ESL_MCU_OBJS) |
| 523 | $(hide)$(PRIVATE_LLD) -Map=$(PRIVATE_MAP_FILE) -o $@ -T $(PRIVATE_LINK_LD) $(PRIVATE_LDFLAGS) $(PRIVATE_OBJS) $(PRIVATE_MCU_OBJS) $(PRIVATE_LIBS) |
| 524 | |
| 525 | # ESL BINs |
| 526 | $($(PROCESSOR).ESL_AP_BIN): PRIVATE_OBJDUMP := $(OBJDUMP) |
| 527 | $($(PROCESSOR).ESL_AP_BIN): PRIVATE_OBJCOPY := $(OBJCOPY) |
| 528 | $($(PROCESSOR).ESL_AP_BIN): PRIVATE_ELF_FILE := $($(PROCESSOR).ESL_AP_ELF) |
| 529 | $($(PROCESSOR).ESL_AP_BIN): PRIVATE_ASM_FILE := $($(PROCESSOR).ESL_AP_ASM) |
| 530 | $($(PROCESSOR).ESL_AP_BIN): PRIVATE_RV33_VAR := $(RV33_VAR) |
| 531 | $($(PROCESSOR).ESL_AP_BIN): $($(PROCESSOR).ESL_AP_ELF) |
| 532 | @echo '$(TINYSYS_MEDMCU): ASM $(PRIVATE_ASM_FILE)' |
| 533 | $(hide)$(PRIVATE_OBJDUMP) -mcpu=$(PRIVATE_RV33_VAR) -S $< > $(PRIVATE_ASM_FILE) |
| 534 | @echo '$(TINYSYS_MEDMCU): BIN $@' |
| 535 | $(hide)$(PRIVATE_OBJCOPY) -O binary $(PRIVATE_ELF_FILE) $@ |
| 536 | |
| 537 | $($(PROCESSOR).ESL_MCU0_BIN): PRIVATE_OBJDUMP := $(OBJDUMP) |
| 538 | $($(PROCESSOR).ESL_MCU0_BIN): PRIVATE_OBJCOPY := $(OBJCOPY) |
| 539 | $($(PROCESSOR).ESL_MCU0_BIN): PRIVATE_ELF_FILE := $($(PROCESSOR).ESL_MCU0_ELF) |
| 540 | $($(PROCESSOR).ESL_MCU0_BIN): PRIVATE_ASM_FILE := $($(PROCESSOR).ESL_MCU0_ASM) |
| 541 | $($(PROCESSOR).ESL_MCU0_BIN): PRIVATE_RV33_VAR := $(RV33_VAR) |
| 542 | $($(PROCESSOR).ESL_MCU0_BIN): $($(PROCESSOR).ESL_MCU0_ELF) |
| 543 | $(hide)$(PRIVATE_OBJDUMP) -mcpu=$(PRIVATE_RV33_VAR) -S $< > $(PRIVATE_ASM_FILE) |
| 544 | @echo '$(TINYSYS_MEDMCU): BIN $@' |
| 545 | $(hide)$(PRIVATE_OBJCOPY) -O binary $(PRIVATE_ELF_FILE) $@ |
| 546 | |
| 547 | $($(PROCESSOR).ESL_MCU1_BIN): PRIVATE_OBJDUMP := $(OBJDUMP) |
| 548 | $($(PROCESSOR).ESL_MCU1_BIN): PRIVATE_OBJCOPY := $(OBJCOPY) |
| 549 | $($(PROCESSOR).ESL_MCU1_BIN): PRIVATE_ELF_FILE := $($(PROCESSOR).ESL_MCU1_ELF) |
| 550 | $($(PROCESSOR).ESL_MCU1_BIN): PRIVATE_ASM_FILE := $($(PROCESSOR).ESL_MCU1_ASM) |
| 551 | $($(PROCESSOR).ESL_MCU1_BIN): PRIVATE_RV33_VAR := $(RV33_VAR) |
| 552 | $($(PROCESSOR).ESL_MCU1_BIN): $($(PROCESSOR).ESL_MCU1_ELF) |
| 553 | $(hide)$(PRIVATE_OBJDUMP) -mcpu=$(PRIVATE_RV33_VAR) -S $< > $(PRIVATE_ASM_FILE) |
| 554 | @echo '$(TINYSYS_MEDMCU): BIN $@' |
| 555 | $(hide)$(PRIVATE_OBJCOPY) -O binary $(PRIVATE_ELF_FILE) $@ |
| 556 | |
| 557 | -include $(OBJS:.o=.d) |
| 558 | -include $($(sort $(ESL_C_OBJS) $(ESL_S_OBJS)):.o=.d) |