blob: f714fb192f2ee569c97548e1d41578073c883a83 [file] [log] [blame]
shijie.xiong9d11e312022-01-06 17:31:03 +08001B_PRJDIR := $(SDK_BASE)
2kernel_B_BUILD_DIR := $(kernel_BUILD_DIR)
3
4NM:=$(TOOLCHAIN_KEYWORD)-nm
5CC:=$(TOOLCHAIN_KEYWORD)-$(COMPILER)
6
7quiet=silent_
8cmd = $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))' &&) $(cmd_$(1))
9
10SYSTEM_MAP = $(NM) $(1) | \
11 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
12 LC_ALL=C sort | sed 's/0000000000//'
13
14cmd_smap ?= \
15 smap_addr=`$(call SYSTEM_MAP,${kernel_B_BUILD_DIR}/freertos.elf) | \
16 awk '$$2 ~ /[tTwW]/ {printf $$1 " "}'` ; \
17 smap_sym=`$(call SYSTEM_MAP,${kernel_B_BUILD_DIR}/freertos.elf) | \
18 awk '$$2 ~ /[tTwW]/ {printf $$3 " "}'` ; \
shijie.xiong092db912022-03-28 17:06:42 +080019 echo "char const system_map_addr[] = {" > $(B_PRJDIR)/lib/backtrace/system_map_addr.c;\
20 echo "\"$${smap_addr}\"\"\\\\000\"};" >> $(B_PRJDIR)/lib/backtrace/system_map_addr.c;\
21 echo "char const system_map_sym[] = {" > $(B_PRJDIR)/lib/backtrace/system_map_sym.c;\
22 echo "\"$${smap_sym}\"\"\\\\000\"};" >> $(B_PRJDIR)/lib/backtrace/system_map_sym.c;
shijie.xiong9d11e312022-01-06 17:31:03 +080023
24.PHONY: backtrace
25backtrace:
Xiaohu.Huang3ebdbc92022-01-12 14:55:59 +080026 @$(call cmd,smap)
27
28.PHONY: clean
29clean:
shijie.xiong092db912022-03-28 17:06:42 +080030 @truncate -s 0 $(B_PRJDIR)/lib/backtrace/system_map_addr.c
31 @truncate -s 0 $(B_PRJDIR)/lib/backtrace/system_map_sym.c
32 @echo "char const system_map_addr[] = {0};" > $(B_PRJDIR)/lib/backtrace/system_map_addr.c
33 @echo "char const system_map_sym[] = {0};" > $(B_PRJDIR)/lib/backtrace/system_map_sym.c