blob: f714fb192f2ee569c97548e1d41578073c883a83 [file] [log] [blame]
B_PRJDIR := $(SDK_BASE)
kernel_B_BUILD_DIR := $(kernel_BUILD_DIR)
NM:=$(TOOLCHAIN_KEYWORD)-nm
CC:=$(TOOLCHAIN_KEYWORD)-$(COMPILER)
quiet=silent_
cmd = $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))' &&) $(cmd_$(1))
SYSTEM_MAP = $(NM) $(1) | \
grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
LC_ALL=C sort | sed 's/0000000000//'
cmd_smap ?= \
smap_addr=`$(call SYSTEM_MAP,${kernel_B_BUILD_DIR}/freertos.elf) | \
awk '$$2 ~ /[tTwW]/ {printf $$1 " "}'` ; \
smap_sym=`$(call SYSTEM_MAP,${kernel_B_BUILD_DIR}/freertos.elf) | \
awk '$$2 ~ /[tTwW]/ {printf $$3 " "}'` ; \
echo "char const system_map_addr[] = {" > $(B_PRJDIR)/lib/backtrace/system_map_addr.c;\
echo "\"$${smap_addr}\"\"\\\\000\"};" >> $(B_PRJDIR)/lib/backtrace/system_map_addr.c;\
echo "char const system_map_sym[] = {" > $(B_PRJDIR)/lib/backtrace/system_map_sym.c;\
echo "\"$${smap_sym}\"\"\\\\000\"};" >> $(B_PRJDIR)/lib/backtrace/system_map_sym.c;
.PHONY: backtrace
backtrace:
@$(call cmd,smap)
.PHONY: clean
clean:
@truncate -s 0 $(B_PRJDIR)/lib/backtrace/system_map_addr.c
@truncate -s 0 $(B_PRJDIR)/lib/backtrace/system_map_sym.c
@echo "char const system_map_addr[] = {0};" > $(B_PRJDIR)/lib/backtrace/system_map_addr.c
@echo "char const system_map_sym[] = {0};" > $(B_PRJDIR)/lib/backtrace/system_map_sym.c