Wirepas SDK
makefile_scratchpad.mk
Go to the documentation of this file.
1 include makefile_common.mk
2 
3 include $(build_variables_mk)
4 
5 
6 # Scratchpad files for OTAP
7 
8 # Append a suffix to the scratchpad file names if
9 # the Generic Bootloader Updater Tool is embedded
10 bl_updater ?= no
11 ifneq ($(bl_updater),no)
12 BL_UPDATER_SUFFIX := "_bl_updater"
13 else
14 BL_UPDATER_SUFFIX := ""
15 endif
16 
17 FULL_SCRATCHPAD_NAME := $(APP_NAME)_$(FIRMWARE_NAME)$(BL_UPDATER_SUFFIX)
18 FULL_SCRATCHPAD_BIN := $(BUILDPREFIX_APP)$(FULL_SCRATCHPAD_NAME).otap
19 APP_SCRATCHPAD_NAME := $(APP_NAME)
20 APP_SCRATCHPAD_BIN := $(BUILDPREFIX_APP)$(APP_SCRATCHPAD_NAME).otap
21 STACK_SCRATCHPAD_NAME := $(FIRMWARE_NAME)$(BL_UPDATER_SUFFIX)
22 STACK_SCRATCHPAD_BIN := $(BUILDPREFIX_APP)$(STACK_SCRATCHPAD_NAME).otap
23 
24 # Append a suffix to the scratchpad file names, when modem firmware is included
25 MODEM_FW_SUFFIX := _modem_fw
26 
27 ifneq ($(modemfw_area_id),)
28 ifneq ($(radio),none)
29 ifneq ($(modem_fw),)
30 # Name for target to generate a scratchpad with modem + stack + app
31 FULL_SCRATCHPAD_WITH_MODEMFW_NAME := $(APP_NAME)_$(FIRMWARE_NAME)$(MODEM_FW_SUFFIX)$(BL_UPDATER_SUFFIX)
32 FULL_SCRATCHPAD_WITH_MODEMFW_BIN := $(BUILDPREFIX_APP)$(FULL_SCRATCHPAD_WITH_MODEMFW_NAME).otap
33 # Name for target to generate a scratchpad with modem + stack
34 STACK_SCRATCHPAD_WITH_MODEMFW_NAME := $(FIRMWARE_NAME)$(MODEM_FW_SUFFIX)$(BL_UPDATER_SUFFIX)
35 STACK_SCRATCHPAD_WITH_MODEMFW_BIN := $(BUILDPREFIX_APP)$(STACK_SCRATCHPAD_WITH_MODEMFW_NAME).otap
36 endif
37 endif
38 endif
39 
40 .PHONY: all
41 all: $(FULL_SCRATCHPAD_BIN) $(APP_SCRATCHPAD_BIN) $(STACK_SCRATCHPAD_BIN) \
42  $(FULL_SCRATCHPAD_WITH_MODEMFW_BIN) $(STACK_SCRATCHPAD_WITH_MODEMFW_BIN)
43 
44 .PHONY: app_only
45 app_only: $(APP_SCRATCHPAD_BIN)
46 
47 
48 # Functions
49 
50 define BUILD_FULL_SCRATCHPAD_WITH_MODEMFW
51  @echo "$(COLOR_INFO)Creating Full Scratchpad with modem:$(COLOR_END) $(2) + $(3) + $(4) -> $(1)"
52  $(D)$(SCRAT_GEN) --configfile=$(config_ini) \
53  $(1) \
54  $(modemfw_area_id):$(2) \
55  $(STACK_CONF):$(stack_area_id):$(3) \
56  $(app_major).$(app_minor).$(app_maintenance).$(app_development):$(app_area_id):$(4)
57 endef
58 
59 define BUILD_FULL_SCRATCHPAD
60  @echo "$(COLOR_INFO)Creating Full Scratchpad:$(COLOR_END) $(2) + $(3) -> $(1)"
61  $(D)$(SCRAT_GEN) --configfile=$(config_ini) \
62  $(1) \
63  $(STACK_CONF):$(stack_area_id):$(2) \
64  $(app_major).$(app_minor).$(app_maintenance).$(app_development):$(app_area_id):$(3)
65 endef
66 
67 define BUILD_APP_SCRATCHPAD
68  @echo "$(COLOR_INFO)Creating App Scratchpad:$(COLOR_END) $(2) -> $(1)"
69  $(D)$(SCRAT_GEN) --configfile=$(config_ini) \
70  $(1) \
71  $(app_major).$(app_minor).$(app_maintenance).$(app_development):$(app_area_id):$(2)
72 endef
73 
74 define BUILD_STACK_SCRATCHPAD
75  @echo "$(COLOR_INFO)Creating Stack Scratchpad:$(COLOR_END) $(2) -> $(1)"
76  $(D)$(SCRAT_GEN) --configfile=$(config_ini) \
77  $(1) \
78  $(STACK_CONF):$(stack_area_id):$(2)
79 endef
80 
81 define BUILD_STACK_SCRATCHPAD_WITH_MODEMFW
82  @echo "$(COLOR_INFO)Creating Stack Scratchpad with modem:$(COLOR_END) $(2) + $(3) -> $(1)"
83  $(D)$(SCRAT_GEN) --configfile=$(config_ini) \
84  $(1) \
85  $(modemfw_area_id):$(2) \
86  $(STACK_CONF):$(stack_area_id):$(3)
87 endef
88 
89 
90 # Target rules
91 
92 $(STACK_SCRATCHPAD_BIN): $(stack_hex) $(config_ini)
93  $(call BUILD_STACK_SCRATCHPAD,$(STACK_SCRATCHPAD_BIN),$(stack_hex))
94 
95 $(APP_SCRATCHPAD_BIN): $(APP_HEX) $(config_ini)
96  $(call BUILD_APP_SCRATCHPAD,$(APP_SCRATCHPAD_BIN),$(APP_HEX))
97 
98 $(FULL_SCRATCHPAD_BIN): $(stack_hex) $(APP_HEX) $(config_ini)
99  $(call BUILD_FULL_SCRATCHPAD,$(FULL_SCRATCHPAD_BIN),$(stack_hex),$(APP_HEX))
100 
101 ifneq ($(modemfw_area_id),)
102 ifneq ($(radio),none)
103 $(FULL_SCRATCHPAD_WITH_MODEMFW_BIN):
104  $(call BUILD_FULL_SCRATCHPAD_WITH_MODEMFW,$(FULL_SCRATCHPAD_WITH_MODEMFW_BIN),${modem_fw},$(stack_hex),$(APP_HEX))
105 
106 $(STACK_SCRATCHPAD_WITH_MODEMFW_BIN):
107  $(call BUILD_STACK_SCRATCHPAD_WITH_MODEMFW,$(STACK_SCRATCHPAD_WITH_MODEMFW_BIN),${modem_fw},$(stack_hex))
108 endif
109 endif