blob: 4dc0a924b2010553a4e705a27a7350e78e792cee [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001include $(COMMON_BUILD_DIR)/clear_vars.mk
2-include $(SCP_BUILD_DIR)/clear_vars.mk
3
4###########################################################
5## Common SCP build environment
6###########################################################
7RV33_VAR := MRV33E25
8REL_ROOT_DIR := ../../../..
9CROSS_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/
12CC := $(CROSS_COMPILE)/bin/clang
13CPP := $(CROSS_COMPILE)/bin/clang-cpp
14LLD := $(CROSS_COMPILE)/bin/ld.lld
15#LLD := /mtkeda/Utility/Doble/md32rv/alpha70/ToolChain/LLVM/bin/ld.lld
16AR := $(CROSS_COMPILE)/bin/llvm-ar
17RANLIB := $(CROSS_COMPILE)/bin/llvm-ranlib
18OBJCOPY := $(CROSS_COMPILE)/bin/llvm-objcopy
19OBJDUMP := $(CROSS_COMPILE)/bin/llvm-objdump
20SIZE := $(CROSS_COMPILE)/bin/llvm-size
21STRIP := $(CROSS_COMPILE)/bin/strip
22READELF := $(CROSS_COMPILE)/bin/llvm-readelf
23LLVM_RTLIB := $(CROSS_COMPILE)/lib/clang/7.0.0/lib/riscv32/$(RV33_VAR)
24LLVM_DKWLIB := $(CROSS_COMPILE)/dkwlib/$(RV33_VAR)/lib
25LLVM_NEWLIB := $(CROSS_COMPILE)/riscv32-elf/$(RV33_VAR)/lib
26LLVM_INCLUDE := $(CROSS_COMPILE)/riscv32-elf/$(RV33_VAR)/include
27
28LLVM_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
34ifeq (,$(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
50endif # CROSS_COMPILE is not defined
51
52ifeq (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))
65endif
66
67CFLAGS += -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
76BUILD_TYPE ?= release
77
78ifeq (1,$(V))
79 $(info $(TINYSYS_MEDMCU): BUILD_TYPE=$(BUILD_TYPE))
80endif
81
82ifeq (debug,$(strip $(BUILD_TYPE)))
83 CFLAGS += -DTINYSYS_DEBUG_BUILD
84endif
85
86###########################################################
87## Processor-based environment and targets
88###########################################################
89PROCESSOR_DIR := $(SCP_PROJECT_DIR)/$(PROCESSOR)
90PLATFORM_BASE_DIR := $(PROCESSOR_DIR)/$(PLATFORM)
91PLATFORM_DIR := $(PLATFORM_BASE_DIR)/platform
92PROJECT_DIR := $(PLATFORM_BASE_DIR)/$(PROJECT)
93ifeq (,$(wildcard $(PROJECT_DIR)))
94PROJECT_DIR := $(PLATFORM_BASE_DIR)/internal/$(PROJECT)
95endif
96PLATFORM_FEATURES_DIR := $(PLATFORM_DIR)/features
97SCP_BUILT_DIR := $(SCP_BUILT_DIR)/$(PROCESSOR)/medmcu
98DRIVERS_PLATFORM_DIR := $(SCP_DRIVERS_DIR)/$(PROCESSOR)/$(PLATFORM)
99GENERATED_DIR := $(SCP_BUILT_DIR)/generated
100GENERATED_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
114CFG_HEAP_ON_L1TCM = yes
115
116ifeq (yes,$(CFG_HEAP_ON_L1TCM))
117$(PROCESSOR)_L1TCM.BIN_BUILT := \
118 $(SCP_BUILT_DIR)/$(TINYSYS_MEDMCU)-$(PROCESSOR)_L1TCM.bin
119else
120$(PROCESSOR)_DRAM.BIN_BUILT := \
121 $(SCP_BUILT_DIR)/$(TINYSYS_MEDMCU)-$(PROCESSOR)_DRAM.bin
122endif
123$(PROCESSOR).LINK_LD := $(SCP_BUILT_DIR)/link.ld
124
125
126SCP_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
129MEDHW_GC0_PM := assembly_code_medhw_gc0.bin
130MEDHW_GC1_PM := assembly_code_medhw_gc1.bin
131MEDHW_GC2_PM := assembly_code_medhw_gc2.bin
132MEDHW_GC0_DM := dm_data_medhw_gc0.bin
133MEDHW_GC1_DM := dm_data_medhw_gc1.bin
134MEDHW_GC2_DM := dm_data_medhw_gc2.bin
135ifeq (yes,$(CFG_HEAP_ON_L1TCM))
136$(PROCESSOR).BIN_L1TCM_NH := $(SCP_BIN_STEM)_L1TCM-no-mtk-header.bin
137else
138$(PROCESSOR).BIN_DRAM_NH := $(SCP_BIN_STEM)_DRAM-no-mtk-header.bin
139endif
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
152ifeq (yes,$(CFG_HEAP_ON_L1TCM))
153$(PROCESSOR)_L1TCM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_$(notdir $(SCP_BIN_STEM))_l1tcm.cfg
154else
155$(PROCESSOR)_DRAM.IMG_HDR_CFG := $(SCP_BUILT_DIR)/img_hdr_$(notdir $(SCP_BIN_STEM))_dram.cfg
156endif
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
175PLATFORM_MK := $(PLATFORM_DIR)/platform.mk
176ifeq ($(wildcard $(PLATFORM_MK)),)
177 $(error $(TINYSYS_MEDMCU): $(PLATFORM_MK) is missing)
178endif
179
180# Reset any previously defined SCP options before including my own definitions
181$(foreach v,$(SCP_PREVIOUS_CFG_OPTS), \
182 $(eval $(v) := ) \
183)
184scp_old_cfgs := $(.VARIABLES)
185
186include $(PLATFORM_MK)
187
188scp_new_cfgs := $(.VARIABLES)
189SCP_PREVIOUS_CFG_OPTS := \
190 $(filter CFG_%,$(filter-out $(scp_old_cfgs),$(scp_new_cfgs)))
191
192ifneq (yesyes,$(CFG_ESL_BUILD)$(CFG_ESL_DUAL_CORE))
193 ALL_SCP_BINS := $(ALL_SCP_BINS) $($(PROCESSOR).BIN_BUILT)
194else
195 ALL_SCP_ESL_BINS := $(ALL_SCP_ESL_BINS) \
196 $($(PROCESSOR).ESL_AP_BIN) \
197 $($(PROCESSOR).ESL_MCU0_BIN) \
198 $($(PROCESSOR).ESL_MCU1_BIN)
199endif
200
201INCLUDES += $(GENERATED_INCLUDE_DIR)
202INCLUDES += $(LLVM_DKWINC)
203CFLAGS += -include $($(PROCESSOR).TINYSYS_CONFIG_H)
204
205# Include project-specific files only when available
206ifneq ($(wildcard $(PROJECT_DIR)/inc),)
207 INCLUDES += $(PROJECT_DIR)/inc
208endif
209
210ifneq ($(wildcard $(PROJECT_DIR)/src/project.c),)
211 C_FILES += $(wildcard $(PROJECT_DIR)/src/project.c)
212endif
213
214C_FILES := $(patsubst ./%,%,$(C_FILES))
215S_FILES := $(patsubst ./%,%,$(S_FILES))
216C_OBJS := $(sort $(C_FILES:%.c=$(SCP_BUILT_DIR)/%.o))
217S_OBJS := $(sort $(S_FILES:%.S=$(SCP_BUILT_DIR)/%.o))
218
219OBJS += $(sort $(C_OBJS) $(S_OBJS))
220$(OBJS): $($(PROCESSOR).TINYSYS_CONFIG_H)
221
222# Set dependency
223DEPS += $(sort $(filter-out %.d,$(MAKEFILE_LIST)))
224
225# Stash the list of configuration names and values to generate config header
226CONFIG_MK_FILES := \
227 $(PLATFORM_MK) \
228 $(wildcard $(PROJECT_DIR)/project.mk)
229$(call stash_config_options,$(CONFIG_MK_FILES))
230
231INCLUDES := $(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
252configheader: $($(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)
286ifeq (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)
290else
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)
294endif
295$($(PROCESSOR).BIN_BUILT): PRIVATE_OBJCOPY := $(OBJCOPY)
296
297ifeq (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)
303else
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)
309endif
310 @echo '$(TINYSYS_MEDMCU): BIN $@'
311ifeq (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;
322else
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;
333endif
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
355ifeq (yes,$(CFG_HEAP_ON_L1TCM))
356.PHONY: $($(PROCESSOR)_L1TCM.BIN_BUILT)
357else
358.PHONY: $($(PROCESSOR)_DRAM.BIN_BUILT)
359endif
360
361ifeq (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)
366endif
367
368MY_LIBFLAGS_SEARCH_PATH := $(patsubst -L%,%,$(filter -L%,$(LIBFLAGS)))
369MY_LIBFLAGS_SEARCH_NAME := $(patsubst -l%,lib%.a,$(filter -l%,$(LIBFLAGS)))
370MY_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
406ifeq (yes,$(CFG_HEAP_ON_L1TCM))
407$($(PROCESSOR)_L1TCM.IMG_HDR_CFG): $(DEPS)
408 $(call gen-image-header,$(TINYSYS_MEDMCU))
409else
410$($(PROCESSOR)_DRAM.IMG_HDR_CFG): $(DEPS)
411 $(call gen-image-header,$(TINYSYS_MEDMCU))
412endif
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###########################################################
435ESL_AP_C_FILES := $(patsubst ./%,%,$(ESL_AP_C_FILES))
436ESL_AP_S_FILES := $(patsubst ./%,%,$(ESL_AP_S_FILES))
437ESL_MCU_C_FILES := $(patsubst ./%,%,$(ESL_MCU_C_FILES))
438ESL_MCU_S_FILES := $(patsubst ./%,%,$(ESL_MCU_S_FILES))
439ESL_AP_C_OBJS := $(sort $(ESL_AP_C_FILES:%.c=$(SCP_BUILT_DIR)/%.o))
440ESL_MCU_C_OBJS := $(sort $(ESL_MCU_C_FILES:%.c=$(SCP_BUILT_DIR)/%.o))
441ESL_AP_S_OBJS := $(sort $(ESL_AP_S_FILES:%.S=$(SCP_BUILT_DIR)/%.o))
442ESL_MCU_S_OBJS := $(sort $(ESL_MCU_S_FILES:%.S=$(SCP_BUILT_DIR)/%.o))
443
444ESL_AP_OBJS := $(sort $(ESL_AP_C_OBJS) $(ESL_AP_S_OBJS))
445ESL_MCU_OBJS := $(sort $(ESL_MCU_C_OBJS) $(ESL_MCU_S_OBJS))
446ESL_C_OBJS := $(sort $(ESL_AP_C_OBJS) $(ESL_MCU_C_OBJS))
447ESL_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)