update compile para

This commit is contained in:
zhji 2025-02-03 20:41:09 +08:00
parent 2d635598c0
commit b273b77791
7 changed files with 136 additions and 17 deletions

3
.gitignore vendored
View File

@ -1,5 +1,6 @@
bootloader/build/*
lark1fq/build/*
test/build/*
tools/*.exe
tools/*.xls
.vscode/*

View File

@ -14,10 +14,31 @@ set(CMAKE_AR "${TOOLCHAIN}ar")
set(CMAKE_RANLIB "${TOOLCHAIN}ranlib")
set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/flash.ld")
set(MCU_FLAGS "-mcpu=cortex-m4 -mthumb -g -O2 -Wall -nostartfiles -mfloat-abi=hard -mfpu=vfpv4-d16 -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")
set(CMAKE_C_FLAGS " \
-mcpu=cortex-m4 \
-mthumb \
-g3 \
-O2 \
-Wall \
-nostartfiles \
-mfloat-abi=hard \
-mfpu=vfpv4-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(-DSTM32F40_41xxx)
add_definitions(-DUSE_STDPERIPH_DRIVER)
@ -37,5 +58,24 @@ target_link_libraries(${PROJ_NAME}.elf src)
add_custom_command(TARGET ${PROJ_NAME}.elf POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJ_NAME}.elf> ${BIN_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 size ${PROJ_NAME}.elf
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
View 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

View File

@ -1,14 +1,15 @@
ENTRY(Reset_Handler)
StackSize = 0x4000; /* 16KB */
MEMORY
{
FLASH (rx) :ORIGIN = 0x08000000, LENGTH = 128K
RAM (xrw) :ORIGIN = 0x20000000, LENGTH = 112K
CCM (rw) :ORIGIN = 0x10000000, LENGTH = 48K
CCM_STACK (rw) :ORIGIN = 0x1000C000, LENGTH = 16K
CCM (rw) :ORIGIN = 0x10000000, LENGTH = 64K - StackSize
}
_stack_top = ORIGIN(CCM_STACK) + LENGTH(CCM_STACK);
_stack_top = ORIGIN(CCM) + LENGTH(CCM) + StackSize;
SECTIONS
{

View File

@ -14,10 +14,31 @@ set(CMAKE_AR "${TOOLCHAIN}ar")
set(CMAKE_RANLIB "${TOOLCHAIN}ranlib")
set(LINKER_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/flash.ld")
set(MCU_FLAGS "-mcpu=cortex-m4 -mthumb -g -O2 -Wall -nostartfiles -mfloat-abi=hard -mfpu=vfpv4-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=lark1fq.map")
set(CMAKE_C_FLAGS " \
-mcpu=cortex-m4 \
-mthumb \
-g3 \
-O2 \
-Wall \
-nostartfiles \
-mfloat-abi=hard \
-mfpu=vfpv4-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(-DSTM32F40_41xxx)
add_definitions(-DUSE_STDPERIPH_DRIVER)
@ -40,5 +61,24 @@ target_link_libraries(${PROJ_NAME}.elf m) # math library
add_custom_command(TARGET ${PROJ_NAME}.elf POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJ_NAME}.elf> ${BIN_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 size ${PROJ_NAME}.elf
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
lark1fq/Makefile Normal file
View 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

View File

@ -1,14 +1,15 @@
ENTRY(Reset_Handler)
StackSize = 0x4000; /* 16KB */
MEMORY
{
FLASH (rx) :ORIGIN = 0x08020000, LENGTH = 384K
RAM (xrw) :ORIGIN = 0x20000000, LENGTH = 112K
CCM (rw) :ORIGIN = 0x10000000, LENGTH = 48K
CCM_STACK (rw) :ORIGIN = 0x1000C000, LENGTH = 16K
CCM (rw) :ORIGIN = 0x10000000, LENGTH = 64K - StackSize
}
_stack_top = ORIGIN(CCM_STACK) + LENGTH(CCM_STACK);
_stack_top = ORIGIN(CCM) + LENGTH(CCM) + StackSize;
SECTIONS
{