[update] add compile information

This commit is contained in:
zhji 2025-03-22 22:36:54 +08:00
parent dc86bbc3cc
commit afa684873a
4 changed files with 43 additions and 11 deletions

View File

@ -11,8 +11,18 @@ target_link_libraries(sdk component)
add_subdirectory(${SDK_BASE_DIR}/CMSIS)
target_link_libraries(sdk cmsis)
# add_custom_command(TARGET ${PROJ_NAME}.elf POST_BUILD
# COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJ_NAME}.elf> ${PROJ_NAME}.bin
# COMMAND ${CMAKE_OBJDUMP} -d -S $<TARGET_FILE:${PROJ_NAME}.elf> >${PROJ_NAME}.asm
# COMMENT "Generate ${BIN_FILE}\r\n"
# )
# get git tag
execute_process(
COMMAND git describe --abbrev=40 --tags --dirty --always
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
if(GIT_TAG)
set(PROJECT_SDK_VERSION ${GIT_TAG})
else()
message(WARNING "No Valid version info found for SDK!")
set(PROJECT_SDK_VERSION "version-unknown-panic")
endif()
message(STATUS "Project SDK Version: ${PROJECT_SDK_VERSION}")

View File

@ -2,9 +2,8 @@ cmake_minimum_required(VERSION 3.10)
include(proj.conf)
set(PROJ_NAME "gpio_led")
project(${PROJ_NAME} VERSION 0.1)
add_executable(${PROJ_NAME}.elf main.c)
project(${EXAMPLE_NAME} VERSION 0.1)
add_executable(${EXAMPLE_NAME}.elf main.c)
add_subdirectory(${SDK_BASE_DIR} sdk)
target_link_libraries(${PROJ_NAME}.elf sdk)
target_link_libraries(${EXAMPLE_NAME}.elf sdk)

View File

@ -1,5 +1,10 @@
EXAMPLE_BASE_DIR ?= $(shell realpath .)
EXAMPLE_NAME := $(notdir $(patsubst %/,%,$(CURDIR)))
SDK_BASE_DIR ?= $(shell realpath ./../../../..)
export SDK_BASE_DIR
export EXAMPLE_NAME
export EXAMPLE_BASE_DIR
GCC_PATH := $(shell which arm-none-eabi-gcc)
CROSS_COMPILE := $(patsubst %gcc,%,$(GCC_PATH))

View File

@ -2,9 +2,24 @@ ifndef VERBOSE
MAKEFLAGS += --no-print-directory
endif
CFLAGS := -mcpu=cortex-m0plus -mthumb -g3 -O2 -Wall -ffunction-sections -fdata-sections
CFLAGS += -mcpu=cortex-m0plus
CFLAGS += -mthumb
CFLAGS += -g3
CFLAGS += -O2
CFLAGS += -Wall
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
LDFLAGS := -mcpu=cortex-m0plus -mthumb -g3 -O2 -Wall -ffunction-sections -fdata-sections -nostartfiles -T$(SDK_BASE_DIR)/ram.ld -Wl,-Map=app.map
LDFLAGS += -mcpu=cortex-m0plus
LDFLAGS += -mthumb
LDFLAGS += -g3
LDFLAGS += -O2
LDFLAGS += -Wall
LDFLAGS += -Wl,--gc-sections
LDFLAGS += -nostartfiles
LDFLAGS += -T$(SDK_BASE_DIR)/ram.ld
LDFLAGS += -Wl,-Map=$(EXAMPLE_NAME).map
LDFLAGS += -Wl,--print-memory-usage
CMAKE := cmake
@ -30,10 +45,13 @@ cmake_definition+= -DCMAKE_EXE_LINKER_FLAGS="$(LDFLAGS)"
cmake_definition+= -DCONFIG_COMX=$(COMX)
cmake_definition+= -DSDK_BASE_DIR=$(SDK_BASE_DIR)
cmake_definition+= -DEXAMPLE_NAME=$(EXAMPLE_NAME)
build:Makefile
$(CMAKE) -S . -B build -G "Unix Makefiles" $(cmake_definition)
$(MAKE) -C build -j
$(CROSS_COMPILE)objcopy -O binary $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).elf $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).bin
$(CROSS_COMPILE)objdump -d -S $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).elf > $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME).asm
clean::
$(RM) build