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