2026-05-11 19:55:43 +08:00
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
|
|
|
|
|
|
project(StepMotorCtrl C ASM)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
|
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
|
|
|
set(CMAKE_ASM_COMPILER_OPTIONS "")
|
|
|
|
|
|
|
|
|
|
SET(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
|
|
|
|
|
|
|
|
|
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/libs/device/py32md530.ld)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_C_FLAGS "-mcpu=cortex-m0plus -mthumb -Wall -Wextra -Wpedantic -Wno-unused-parameter -ffunction-sections -fdata-sections -O0 -g -MMD -MP" CACHE STRING "" FORCE)
|
|
|
|
|
set(CMAKE_ASM_FLAGS "-mcpu=cortex-m0plus -mthumb -x assembler-with-cpp" CACHE STRING "" FORCE)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS "-mcpu=cortex-m0plus -mthumb -T${LINKER_SCRIPT} -Wl,--gc-sections -Wl,--print-memory-usage -u _printf_float -specs=nano.specs -specs=nosys.specs" CACHE STRING "" FORCE)
|
|
|
|
|
|
|
|
|
|
include_directories(
|
|
|
|
|
${CMAKE_SOURCE_DIR}/libs
|
|
|
|
|
${CMAKE_SOURCE_DIR}/libs/CMSIS
|
|
|
|
|
${CMAKE_SOURCE_DIR}/libs/device
|
|
|
|
|
${CMAKE_SOURCE_DIR}/config
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/led
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/key
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/eeprom
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/limit_switch
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/as5600
|
2026-05-11 22:00:49 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/id
|
2026-05-11 19:55:43 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/bsp/modbus
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/system
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/timer
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/uart
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/i2c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/adc
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/gpio
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/log
|
|
|
|
|
${CMAKE_SOURCE_DIR}/app
|
|
|
|
|
${CMAKE_SOURCE_DIR}/app/tasks
|
|
|
|
|
${CMAKE_SOURCE_DIR}/app/stepper
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
file(GLOB_RECURSE SOURCES
|
|
|
|
|
${CMAKE_SOURCE_DIR}/app/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/device/*/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/bsp/modbus/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/drv/*/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/libs/device/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/libs/device/*.s
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_executable(${PROJECT_NAME} ${SOURCES})
|
|
|
|
|
set(ELF_FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.elf)
|
|
|
|
|
set(HEX_FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.hex)
|
|
|
|
|
set(BIN_FILE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.bin)
|
|
|
|
|
add_custom_command(OUTPUT ${HEX_FILE} ${BIN_FILE}
|
|
|
|
|
COMMAND ${CMAKE_OBJCOPY} -O ihex ${ELF_FILE} ${HEX_FILE}
|
|
|
|
|
COMMAND ${CMAKE_OBJCOPY} -O binary ${ELF_FILE} ${BIN_FILE}
|
|
|
|
|
DEPENDS ${PROJECT_NAME}
|
|
|
|
|
COMMENT "Generating hex and bin files..."
|
|
|
|
|
)
|
|
|
|
|
add_custom_target(hex ALL DEPENDS ${HEX_FILE} ${BIN_FILE})
|