shijie.xiong | 2e72fb9 | 2024-08-29 18:14:43 +0800 | [diff] [blame] | 1 | # Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved. |
shijie.xiong | 9d11e31 | 2022-01-06 17:31:03 +0800 | [diff] [blame] | 2 | |
shijie.xiong | 2e72fb9 | 2024-08-29 18:14:43 +0800 | [diff] [blame] | 3 | # SPDX-License-Identifier: MIT |
| 4 | |
| 5 | CAMKE_CACHE_FILE = $(kernel_BUILD_DIR)/CMakeCache.txt |
| 6 | PATH_NM = $(shell awk -F':FILEPATH=' '/CMAKE_NM_COMPILER/ {print $$2}' $(1)) |
| 7 | |
| 8 | quiet = silent_ |
| 9 | nm := $(call PATH_NM,$(CAMKE_CACHE_FILE)) |
shijie.xiong | 9d11e31 | 2022-01-06 17:31:03 +0800 | [diff] [blame] | 10 | cmd = $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))' &&) $(cmd_$(1)) |
| 11 | |
shijie.xiong | 2e72fb9 | 2024-08-29 18:14:43 +0800 | [diff] [blame] | 12 | SYSTEM_MAP = $(nm) $(1) | \ |
shijie.xiong | 9d11e31 | 2022-01-06 17:31:03 +0800 | [diff] [blame] | 13 | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ |
| 14 | LC_ALL=C sort | sed 's/0000000000//' |
| 15 | |
| 16 | cmd_smap ?= \ |
shijie.xiong | 67c8de4 | 2024-07-11 14:47:42 +0800 | [diff] [blame] | 17 | smap_addr=`$(call SYSTEM_MAP,${kernel_BUILD_DIR}/freertos.elf) | \ |
shijie.xiong | 9d11e31 | 2022-01-06 17:31:03 +0800 | [diff] [blame] | 18 | awk '$$2 ~ /[tTwW]/ {printf $$1 " "}'` ; \ |
shijie.xiong | 67c8de4 | 2024-07-11 14:47:42 +0800 | [diff] [blame] | 19 | smap_sym=`$(call SYSTEM_MAP,${kernel_BUILD_DIR}/freertos.elf) | \ |
shijie.xiong | 9d11e31 | 2022-01-06 17:31:03 +0800 | [diff] [blame] | 20 | awk '$$2 ~ /[tTwW]/ {printf $$3 " "}'` ; \ |
shijie.xiong | 67c8de4 | 2024-07-11 14:47:42 +0800 | [diff] [blame] | 21 | echo "char const system_map_addr[] = {" > $(SDK_BASE)/lib/backtrace/system_map_addr.c;\ |
| 22 | echo "\"$${smap_addr}\"\"\\\\000\"};" >> $(SDK_BASE)/lib/backtrace/system_map_addr.c;\ |
| 23 | echo "char const system_map_sym[] = {" > $(SDK_BASE)/lib/backtrace/system_map_sym.c;\ |
| 24 | echo "\"$${smap_sym}\"\"\\\\000\"};" >> $(SDK_BASE)/lib/backtrace/system_map_sym.c; |
shijie.xiong | 9d11e31 | 2022-01-06 17:31:03 +0800 | [diff] [blame] | 25 | |
| 26 | .PHONY: backtrace |
| 27 | backtrace: |
shijie.xiong | 2e72fb9 | 2024-08-29 18:14:43 +0800 | [diff] [blame] | 28 | @echo "Extracted backtrace toolchain: $(nm)" |
Xiaohu.Huang | 3ebdbc9 | 2022-01-12 14:55:59 +0800 | [diff] [blame] | 29 | @$(call cmd,smap) |
| 30 | |
| 31 | .PHONY: clean |
| 32 | clean: |
shijie.xiong | 67c8de4 | 2024-07-11 14:47:42 +0800 | [diff] [blame] | 33 | @truncate -s 0 $(SDK_BASE)/lib/backtrace/system_map_addr.c |
| 34 | @truncate -s 0 $(SDK_BASE)/lib/backtrace/system_map_sym.c |
| 35 | @echo "char const system_map_addr[] = {0};" > $(SDK_BASE)/lib/backtrace/system_map_addr.c |
| 36 | @echo "char const system_map_sym[] = {0};" > $(SDK_BASE)/lib/backtrace/system_map_sym.c |