cmvr_head/CMakeLists.txt

446 lines
16 KiB
CMake

CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_SYSTEM_PROCESSOR cortex-m7)
#SET(CMAKE_VERBOSE_MAKEFILE ON)
SET(CMAKE_EXPORT_COMPILE_COMMANDS ON)
SET(CMAKE_C_COMPILER "C:/tool/rtthread/env-windows/tools/bin/../../tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gcc.exe")
SET(CMAKE_ASM_COMPILER "C:/tool/rtthread/env-windows/tools/bin/../../tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-gcc.exe")
SET(CMAKE_C_FLAGS " -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -Dgcc -O0 -gdwarf-2 -g -std=c99")
SET(CMAKE_ASM_FLAGS " -c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -x assembler-with-cpp -Wa,-mimplicit-it=thumb -gdwarf-2")
SET(CMAKE_C_COMPILER_WORKS TRUE)
SET(CMAKE_CXX_COMPILER "C:/tool/rtthread/env-windows/tools/bin/../../tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-g++.exe")
SET(CMAKE_CXX_FLAGS " -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -Dgcc -O0 -gdwarf-2 -g")
SET(CMAKE_CXX_COMPILER_WORKS TRUE)
SET(CMAKE_OBJCOPY "C:/tool/rtthread/env-windows/tools/bin/../../tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-objcopy.exe")
SET(CMAKE_SIZE "C:/tool/rtthread/env-windows/tools/bin/../../tools/gnu_gcc/arm_gcc/mingw/bin/arm-none-eabi-size.exe")
SET(CMAKE_EXE_LINKER_FLAGS " -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T ${CMAKE_SOURCE_DIR}/board/linker_scripts/link.lds -Wl,--gc-sections,--print-memory-usage")
SET(CMAKE_C_STANDARD 99)
SET(CMAKE_CXX_STANDARD 17)
PROJECT(rtthread C CXX ASM)
INCLUDE_DIRECTORIES(
.
applications
applications/common
applications/controller
applications/erpc
applications/erpc/service
applications/erpc/client
applications/erpc/common
applications/erpc/proto/generated
applications/planner
applications/servo_manager
board
board/CubeMX_Config/Inc
board/ports/usb
board/ports/fal
libraries/HAL_Drivers/CMSIS/Include
packages/ArduinoJson-latest/src
packages/erpc-1.14.0/erpc_c
packages/erpc-1.14.0/erpc_c/config
packages/erpc-1.14.0/erpc_c/infra
packages/erpc-1.14.0/erpc_c/port
packages/erpc-1.14.0/erpc_c/setup
packages/erpc-1.14.0/erpc_c/transports
packages/littlefs-latest
rt-thread/include
rt-thread/libcpu/arm/common
rt-thread/libcpu/arm/cortex-m7
rt-thread/components/dfs/dfs_v1/include
rt-thread/components/dfs/dfs_v1/filesystems/devfs
rt-thread/components/drivers/include
rt-thread/components/drivers/ktime
rt-thread/components/drivers/ktime/inc
rt-thread/components/drivers/phy
rt-thread/components/drivers/smp_call
rt-thread/components/drivers/spi
rt-thread/components/drivers/usb/cherryusb
rt-thread/components/drivers/usb/cherryusb/common
rt-thread/components/drivers/usb/cherryusb/core
rt-thread/components/drivers/usb/cherryusb/class/hub
rt-thread/components/drivers/usb/cherryusb/class/cdc
rt-thread/components/drivers/usb/cherryusb/class/msc
rt-thread/components/drivers/usb/cherryusb/class/hid
rt-thread/components/drivers/usb/cherryusb/class/audio
rt-thread/components/drivers/usb/cherryusb/class/video
rt-thread/components/drivers/usb/cherryusb/class/wireless
rt-thread/components/drivers/usb/cherryusb/class/midi
rt-thread/components/drivers/usb/cherryusb/class/adb
rt-thread/components/drivers/usb/cherryusb/class/dfu
rt-thread/components/drivers/usb/cherryusb/class/vendor/net
rt-thread/components/drivers/usb/cherryusb/class/vendor/serial
rt-thread/components/drivers/usb/cherryusb/class/vendor/wifi
rt-thread/components/drivers/usb/cherryusb/osal
rt-thread/components/fal/inc
rt-thread/components/finsh
rt-thread/components/libc/compilers/common/include
rt-thread/components/libc/compilers/newlib
rt-thread/components/libc/cplusplus
rt-thread/components/libc/posix/delay
rt-thread/components/libc/posix/io/epoll
rt-thread/components/libc/posix/io/eventfd
rt-thread/components/libc/posix/io/poll
rt-thread/components/libc/posix/ipc
rt-thread/components/libc/posix/pthreads
rt-thread/components/libc/posix/tls
rt-thread/components/net/utest
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Inc
libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Include
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Inc/Legacy
libraries/HAL_Drivers/drivers
libraries/HAL_Drivers/drivers/config
libraries/HAL_Drivers/drivers/drv_flash
libraries/HAL_Drivers
)
ADD_DEFINITIONS(
-DSTM32H750xx
-DLFS_CONFIG=lfs_config.h
-D__RTTHREAD__
-DRT_USING_NEWLIBC
-DRT_USING_LIBC
-D_POSIX_C_SOURCE=1
-DUSE_HAL_DRIVER
)
# Library source files
SET(RT_APP_ERPC_SOURCES
applications/erpc/service/src/erpc_server_main.cpp
applications/erpc/proto/generated/file_service_interface.cpp
applications/erpc/proto/generated/servo_service_interface.cpp
applications/erpc/proto/generated/file_service_server.cpp
applications/erpc/service/src/file_service_impl.cpp
applications/erpc/common/src/erpc_error_handler.cpp
applications/erpc/service/src/servo_service_impl.cpp
applications/erpc/proto/generated/servo_service_server.cpp
)
SET(RT_APPLICATIONS_SOURCES
applications/main.cpp
)
SET(RT_ARDUINOJSON_SOURCES
)
SET(RT_CHERRYUSB_SOURCES
rt-thread/components/drivers/usb/cherryusb/platform/rtthread/usb_check.c
rt-thread/components/drivers/usb/cherryusb/port/dwc2/usb_dc_dwc2.c
rt-thread/components/drivers/usb/cherryusb/core/usbd_core.c
rt-thread/components/drivers/usb/cherryusb/port/dwc2/usb_glue_st.c
rt-thread/components/drivers/usb/cherryusb/class/cdc/usbd_cdc_acm.c
rt-thread/components/drivers/usb/cherryusb/platform/rtthread/usb_msh.c
rt-thread/components/drivers/usb/cherryusb/class/msc/usbd_msc.c
rt-thread/components/drivers/usb/cherryusb/osal/usb_osal_rtthread.c
)
SET(RT_COMMON_SOURCES
applications/common/curve/src/s_curve.cpp
)
SET(RT_COMPILER_SOURCES
rt-thread/components/libc/compilers/common/cctype.c
rt-thread/components/libc/compilers/common/cstdlib.c
rt-thread/components/libc/compilers/common/cstring.c
rt-thread/components/libc/compilers/common/ctime.c
rt-thread/components/libc/compilers/common/cunistd.c
rt-thread/components/libc/compilers/common/cwchar.c
rt-thread/components/libc/compilers/newlib/syscalls.c
)
SET(RT_CONTROLLER_SOURCES
applications/controller/src/pid_controller.cpp
applications/planner/s_curve_planner/src/s_curve_position_planner.cpp
applications/planner/s_curve_planner/src/s_curve_velocity_planner.cpp
)
SET(RT_CPP_SOURCES
rt-thread/components/libc/cplusplus/cxx_crt.cpp
rt-thread/components/libc/cplusplus/cxx_crt_init.c
)
SET(RT_DEVICEDRIVERS_SOURCES
rt-thread/components/drivers/core/device.c
rt-thread/components/drivers/ipc/completion_comm.c
rt-thread/components/drivers/ipc/completion_up.c
rt-thread/components/drivers/ipc/condvar.c
rt-thread/components/drivers/ipc/dataqueue.c
rt-thread/components/drivers/ipc/pipe.c
rt-thread/components/drivers/ipc/ringblk_buf.c
rt-thread/components/drivers/ipc/ringbuffer.c
rt-thread/components/drivers/ipc/waitqueue.c
rt-thread/components/drivers/ipc/workqueue.c
rt-thread/components/drivers/misc/adc.c
rt-thread/components/drivers/misc/rt_drv_pwm.c
rt-thread/components/drivers/mtd/mtd_nor.c
rt-thread/components/drivers/pin/dev_pin.c
rt-thread/components/drivers/serial/dev_serial.c
rt-thread/components/drivers/spi/dev_qspi_core.c
rt-thread/components/drivers/spi/dev_spi.c
rt-thread/components/drivers/spi/dev_spi_core.c
)
SET(RT_DRIVERS_SOURCES
board/CubeMX_Config/Src/stm32h7xx_hal_msp.c
board/board.c
board/ports/fal/fal_flashfs.c
board/ports/usb/usb_cdc_char_device.c
board/ports/usb/usb_cdc_init.c
libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Source/Templates/gcc/startup_stm32h750xx.s
libraries/HAL_Drivers/drivers/drv_adc.c
libraries/HAL_Drivers/drivers/drv_flash/drv_flash_h7.c
libraries/HAL_Drivers/drivers/drv_gpio.c
libraries/HAL_Drivers/drivers/drv_pwm.c
libraries/HAL_Drivers/drivers/drv_qspi.c
libraries/HAL_Drivers/drivers/drv_spi.c
libraries/HAL_Drivers/drivers/drv_tim.c
libraries/HAL_Drivers/drivers/drv_usart.c
libraries/HAL_Drivers/drv_common.c
)
SET(RT_ERPC_SOURCES
packages/erpc-1.14.0/erpc_c/infra/erpc_transport_arbitrator.cpp
packages/erpc-1.14.0/erpc_c/port/erpc_port_rtt.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_basic_codec.cpp
packages/erpc-1.14.0/erpc_c/transports/erpc_inter_thread_buffer_transport.cpp
packages/erpc-1.14.0/erpc_c/setup/erpc_setup_usb_cdc.cpp
packages/erpc-1.14.0/erpc_c/setup/erpc_setup_mbf_dynamic.cpp
packages/erpc-1.14.0/erpc_c/transports/erpc_usb_cdc_transport.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_message_loggers.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_server.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_simple_server.cpp
packages/erpc-1.14.0/erpc_c/setup/erpc_server_setup.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_message_buffer.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_crc16.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_framed_transport.cpp
packages/erpc-1.14.0/erpc_c/port/erpc_threading_pthreads.cpp
packages/erpc-1.14.0/erpc_c/infra/erpc_pre_post_action.cpp
packages/erpc-1.14.0/erpc_c/setup/erpc_setup_mbf_static.cpp
)
SET(RT_FAL_SOURCES
rt-thread/components/fal/src/fal_rtt.c
rt-thread/components/fal/src/fal_flash.c
rt-thread/components/fal/src/fal_partition.c
rt-thread/components/fal/src/fal.c
)
SET(RT_FILESYSTEM_SOURCES
rt-thread/components/dfs/dfs_v1/filesystems/devfs/devfs.c
rt-thread/components/dfs/dfs_v1/src/dfs.c
rt-thread/components/dfs/dfs_v1/src/dfs_file.c
rt-thread/components/dfs/dfs_v1/src/dfs_fs.c
rt-thread/components/dfs/dfs_v1/src/dfs_posix.c
)
SET(RT_FINSH_SOURCES
rt-thread/components/finsh/cmd.c
rt-thread/components/finsh/msh_file.c
rt-thread/components/finsh/msh.c
rt-thread/components/finsh/shell.c
rt-thread/components/finsh/msh_parse.c
)
SET(RT_KERNEL_SOURCES
rt-thread/src/clock.c
rt-thread/src/components.c
rt-thread/src/cpu_up.c
rt-thread/src/defunct.c
rt-thread/src/idle.c
rt-thread/src/ipc.c
rt-thread/src/irq.c
rt-thread/src/kservice.c
rt-thread/src/mem.c
rt-thread/src/mempool.c
rt-thread/src/object.c
rt-thread/src/scheduler_comm.c
rt-thread/src/scheduler_up.c
rt-thread/src/thread.c
rt-thread/src/timer.c
)
SET(RT_KLIBC_SOURCES
rt-thread/src/klibc/kerrno.c
rt-thread/src/klibc/kstdio.c
rt-thread/src/klibc/kstring.c
rt-thread/src/klibc/rt_vsscanf.c
)
SET(RT_KTIME_SOURCES
rt-thread/components/drivers/ktime/src/cputimer.c
rt-thread/components/drivers/ktime/src/hrtimer.c
rt-thread/components/drivers/ktime/src/boottime.c
)
SET(RT_LIBCPU_SOURCES
rt-thread/libcpu/arm/common/atomic_arm.c
rt-thread/libcpu/arm/common/div0.c
rt-thread/libcpu/arm/common/showmem.c
rt-thread/libcpu/arm/cortex-m7/context_gcc.S
rt-thread/libcpu/arm/cortex-m7/cpu_cache.c
rt-thread/libcpu/arm/cortex-m7/cpuport.c
)
SET(RT_LIBRARIES_SOURCES
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cryp.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cec.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_nor.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c
libraries/STM32H7xx_HAL/CMSIS/Device/ST/STM32H7xx/Source/Templates/system_stm32h7xx.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_comp.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_lptim.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cryp_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sram.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rng.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_usart.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_qspi.c
libraries/STM32H7xx_HAL/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c
)
SET(RT_LITTLEFS_SOURCES
packages/littlefs-latest/lfs.c
packages/littlefs-latest/dfs_lfs.c
packages/littlefs-latest/lfs_crc.c
packages/littlefs-latest/lfs_util.c
)
SET(RT_POSIX_SOURCES
rt-thread/components/libc/posix/delay/delay.c
rt-thread/components/libc/posix/pthreads/pthread.c
rt-thread/components/libc/posix/pthreads/pthread_attr.c
rt-thread/components/libc/posix/pthreads/pthread_barrier.c
rt-thread/components/libc/posix/pthreads/pthread_cond.c
rt-thread/components/libc/posix/pthreads/pthread_mutex.c
rt-thread/components/libc/posix/pthreads/pthread_rwlock.c
rt-thread/components/libc/posix/pthreads/pthread_spin.c
rt-thread/components/libc/posix/pthreads/pthread_tls.c
rt-thread/components/libc/posix/pthreads/sched.c
rt-thread/components/libc/posix/tls/emutls.c
)
SET(RT_SERVO_CONTROL_SOURCES
applications/servo_manager/src/servo_driver.cpp
applications/servo_manager/src/servo_manager.cpp
applications/servo_manager/src/servo_control.cpp
applications/servo_manager/src/servo_config.cpp
)
SET(RT_UTC_UTEST_SOURCES
)
SET(RT_UTESTCASES_SOURCES
)
# Library search paths
# Library local macro definitions
SET(RT_DEVICEDRIVERS_DEFINES
__RT_IPC_SOURCE__
)
SET(RT_KERNEL_DEFINES
__RT_KERNEL_SOURCE__
)
# Library dependencies
SET(RT_COMPILER_LIBS
c
m
)
# Libraries
ADD_LIBRARY(rtt_app_erpc OBJECT ${RT_APP_ERPC_SOURCES})
ADD_LIBRARY(rtt_CherryUSB OBJECT ${RT_CHERRYUSB_SOURCES})
ADD_LIBRARY(rtt_common OBJECT ${RT_COMMON_SOURCES})
ADD_LIBRARY(rtt_Compiler OBJECT ${RT_COMPILER_SOURCES})
ADD_LIBRARY(rtt_controller OBJECT ${RT_CONTROLLER_SOURCES})
ADD_LIBRARY(rtt_CPP OBJECT ${RT_CPP_SOURCES})
ADD_LIBRARY(rtt_DeviceDrivers OBJECT ${RT_DEVICEDRIVERS_SOURCES})
ADD_LIBRARY(rtt_Drivers OBJECT ${RT_DRIVERS_SOURCES})
ADD_LIBRARY(rtt_erpc OBJECT ${RT_ERPC_SOURCES})
ADD_LIBRARY(rtt_Fal OBJECT ${RT_FAL_SOURCES})
ADD_LIBRARY(rtt_Filesystem OBJECT ${RT_FILESYSTEM_SOURCES})
ADD_LIBRARY(rtt_Finsh OBJECT ${RT_FINSH_SOURCES})
ADD_LIBRARY(rtt_Kernel OBJECT ${RT_KERNEL_SOURCES})
ADD_LIBRARY(rtt_klibc OBJECT ${RT_KLIBC_SOURCES})
ADD_LIBRARY(rtt_ktime OBJECT ${RT_KTIME_SOURCES})
ADD_LIBRARY(rtt_libcpu OBJECT ${RT_LIBCPU_SOURCES})
ADD_LIBRARY(rtt_Libraries OBJECT ${RT_LIBRARIES_SOURCES})
ADD_LIBRARY(rtt_littlefs OBJECT ${RT_LITTLEFS_SOURCES})
ADD_LIBRARY(rtt_POSIX OBJECT ${RT_POSIX_SOURCES})
ADD_LIBRARY(rtt_servo_control OBJECT ${RT_SERVO_CONTROL_SOURCES})
# Interface libraries
ADD_LIBRARY(rtt_ArduinoJson INTERFACE)
ADD_LIBRARY(rtt_utc_UTest INTERFACE)
ADD_LIBRARY(rtt_utestcases INTERFACE)
# Private macros
TARGET_COMPILE_DEFINITIONS(rtt_DeviceDrivers PRIVATE ${RT_DEVICEDRIVERS_DEFINES})
TARGET_COMPILE_DEFINITIONS(rtt_Kernel PRIVATE ${RT_KERNEL_DEFINES})
# Interface library search paths
TARGET_LINK_LIBRARIES(rtt_Compiler INTERFACE ${RT_COMPILER_LIBS})
ADD_EXECUTABLE(${CMAKE_PROJECT_NAME}.elf ${RT_APPLICATIONS_SOURCES})
TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME}.elf
rtt_app_erpc
rtt_CherryUSB
rtt_common
rtt_Compiler
rtt_controller
rtt_CPP
rtt_DeviceDrivers
rtt_Drivers
rtt_erpc
rtt_Fal
rtt_Filesystem
rtt_Finsh
rtt_Kernel
rtt_klibc
rtt_ktime
rtt_libcpu
rtt_Libraries
rtt_littlefs
rtt_POSIX
rtt_servo_control
rtt_ArduinoJson
rtt_utc_UTest
rtt_utestcases
)
ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME}.elf POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -O binary ${CMAKE_PROJECT_NAME}.elf rtthread.bin
COMMAND ${CMAKE_SIZE} ${CMAKE_PROJECT_NAME}.elf
)
# if custom.cmake is exist, add it
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/custom.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/custom.cmake)
endif()