Makefile: add symtable.mk file [1/1]

PD#SWPL-69248

Problem:
add symtable.mk file

Solution:
add symtable.mk file

Verify:
ad409_a113l

Signed-off-by: shijie.xiong <shijie.xiong@amlogic.com>
Change-Id: Ib5975207ffad5b046a6867ebeaa9aba764d61ee6
diff --git a/symtable.mk b/symtable.mk
new file mode 100644
index 0000000..f0f307a
--- /dev/null
+++ b/symtable.mk
@@ -0,0 +1,26 @@
+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)/libs/stack_trace/system_map_addr.c;\
+	echo "\"$${smap_addr}\"\"\\\\000\"};" >> $(B_PRJDIR)/libs/stack_trace/system_map_addr.c;\
+	echo "char const system_map_sym[] = {" > $(B_PRJDIR)/libs/stack_trace/system_map_sym.c;\
+	echo "\"$${smap_sym}\"\"\\\\000\"};" >> $(B_PRJDIR)/libs/stack_trace/system_map_sym.c;
+
+.PHONY: backtrace
+backtrace:
+	@$(call cmd,smap)
\ No newline at end of file