[feat] add makefile for auto
This commit is contained in:
parent
2e86c7816c
commit
0d6c458f31
@ -7,7 +7,7 @@ set(SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/..)
|
|||||||
set(BOOTLOADER_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
set(BOOTLOADER_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
# toolchain path
|
# toolchain path
|
||||||
set(TOOLCHAIN "arm-none-eabi-")
|
# set(TOOLCHAIN ${CROSS_COMPILE})
|
||||||
set(CMAKE_C_COMPILER "${TOOLCHAIN}gcc")
|
set(CMAKE_C_COMPILER "${TOOLCHAIN}gcc")
|
||||||
set(CMAKE_ASM_COMPILER "${TOOLCHAIN}gcc")
|
set(CMAKE_ASM_COMPILER "${TOOLCHAIN}gcc")
|
||||||
set(CMAKE_OBJCOPY "${TOOLCHAIN}objcopy")
|
set(CMAKE_OBJCOPY "${TOOLCHAIN}objcopy")
|
||||||
@ -16,17 +16,38 @@ set(CMAKE_AR "${TOOLCHAIN}ar")
|
|||||||
set(CMAKE_RANLIB "${TOOLCHAIN}ranlib")
|
set(CMAKE_RANLIB "${TOOLCHAIN}ranlib")
|
||||||
set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/flash.ld")
|
set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/flash.ld")
|
||||||
|
|
||||||
set(MCU_FLAGS "-mcpu=cortex-m7 -mthumb -g -O2 -Wall -nostartfiles -mfloat-abi=hard -mfpu=fpv5-d16 -ffunction-sections -fdata-sections")
|
|
||||||
set(CMAKE_C_FLAGS "${MCU_FLAGS}")
|
|
||||||
set(CMAKE_ASM_FLAGS "${MCU_FLAGS}")
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${MCU_FLAGS} -T${LINKER_SCRIPT} -Wl,-Map=bootloader.map -Wl,--gc-sections")
|
|
||||||
|
|
||||||
add_definitions(-DSTM32H750xx)
|
|
||||||
|
|
||||||
enable_language(ASM)
|
enable_language(ASM)
|
||||||
add_executable(${PROJ_NAME}.elf main.c)
|
add_executable(${PROJ_NAME}.elf main.c)
|
||||||
target_sources(${PROJ_NAME}.elf PUBLIC start.S)
|
target_sources(${PROJ_NAME}.elf PUBLIC start.S)
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS " \
|
||||||
|
-mcpu=cortex-m7 \
|
||||||
|
-mthumb \
|
||||||
|
-g3 \
|
||||||
|
-O2 \
|
||||||
|
-Wall \
|
||||||
|
-nostartfiles \
|
||||||
|
-mfloat-abi=hard \
|
||||||
|
-mfpu=fpv5-d16 \
|
||||||
|
-ffunction-sections \
|
||||||
|
-fdata-sections \
|
||||||
|
")
|
||||||
|
|
||||||
|
set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS}")
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS " \
|
||||||
|
-ffunction-sections \
|
||||||
|
-fdata-sections \
|
||||||
|
-Wl,--gc-sections \
|
||||||
|
-T${LINKER_SCRIPT} \
|
||||||
|
-Wl,-Map=${PROJ_NAME}.map \
|
||||||
|
--specs=nano.specs \
|
||||||
|
-Wl,--print-memory-usage \
|
||||||
|
-Wl,--print-output-format \
|
||||||
|
")
|
||||||
|
|
||||||
|
add_definitions(-DSTM32H750xx)
|
||||||
|
|
||||||
add_subdirectory(${SDK_PATH}/driver driver)
|
add_subdirectory(${SDK_PATH}/driver driver)
|
||||||
add_subdirectory(${SDK_PATH}/component component)
|
add_subdirectory(${SDK_PATH}/component component)
|
||||||
add_subdirectory(${BOOTLOADER_PATH}/src src)
|
add_subdirectory(${BOOTLOADER_PATH}/src src)
|
||||||
@ -38,5 +59,23 @@ target_link_libraries(${PROJ_NAME}.elf src)
|
|||||||
add_custom_command(TARGET ${PROJ_NAME}.elf POST_BUILD
|
add_custom_command(TARGET ${PROJ_NAME}.elf POST_BUILD
|
||||||
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJ_NAME}.elf> ${BIN_FILE}
|
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJ_NAME}.elf> ${BIN_FILE}
|
||||||
COMMAND ${CMAKE_OBJDUMP} -d -S $<TARGET_FILE:${PROJ_NAME}.elf> >${ASM_FILE}
|
COMMAND ${CMAKE_OBJDUMP} -d -S $<TARGET_FILE:${PROJ_NAME}.elf> >${ASM_FILE}
|
||||||
COMMENT "Generate ${BIN_FILE}\r\n"
|
# COMMENT "Generate ${BIN_FILE}\r\n"
|
||||||
|
COMMAND echo "Calculating SHA-256 checksum for ${BIN_FILE}:"
|
||||||
|
COMMAND sha256sum ${BIN_FILE}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 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}")
|
||||||
|
|||||||
18
bootloader/Makefile
Normal file
18
bootloader/Makefile
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
CMAKE = cmake # use user cmake
|
||||||
|
cmake_generator = "Unix Makefiles"
|
||||||
|
RM = $(CMAKE) -E remove_directory
|
||||||
|
MAKEFLAGS += --no-print-directory
|
||||||
|
|
||||||
|
TOOLCHAIN ?= arm-none-eabi-
|
||||||
|
|
||||||
|
#cmake definition config
|
||||||
|
cmake_definition+= -DTOOLCHAIN=${TOOLCHAIN}
|
||||||
|
|
||||||
|
build:Makefile
|
||||||
|
$(CMAKE) -S . -B build -G $(cmake_generator) $(cmake_definition)
|
||||||
|
$(MAKE) -C build -j
|
||||||
|
|
||||||
|
clean::
|
||||||
|
$(RM) build
|
||||||
|
|
||||||
|
.PHONY:build clean
|
||||||
Loading…
Reference in New Issue
Block a user