cmake_minimum_required(VERSION 3.28) include(cmake/toolchain.cmake) project(xlsw_3dp_ultrasonic_300K) set(POWER_VOLTAGE "12V") set(VERSION_MAJOR 0) set(VERSION_MINOR 1) set(VERSION_PATCH 14) set(VERSION "V${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") string(TIMESTAMP CURRENT_DATE "%Y-%m-%d") add_definitions(-DPOWER_VOLTAGE="${POWER_VOLTAGE}") enable_language(C) enable_language(CXX) enable_language(ASM) # Use custom startup.S set(TARGET_STARTUP_ASM ${CMAKE_SOURCE_DIR}/startup/startup_gd32e23x.S) # Use custom linker script set(TARGET_LD_SCRIPT ${CMAKE_SOURCE_DIR}/ld/gd32e23x_gcc.ld) # Add GD SDK add_subdirectory(sdk) set(TARGET_C_SRC ${CMAKE_SOURCE_DIR}/src/main.c ${CMAKE_SOURCE_DIR}/src/gd32e23x_it.c ${CMAKE_SOURCE_DIR}/src/systick.c ${CMAKE_SOURCE_DIR}/src/ultrasonic_driver.c ${CMAKE_SOURCE_DIR}/src/mlx90614.c ${CMAKE_SOURCE_DIR}/src/RS485.c ) add_executable(xlsw_3dp_ultrasonic_300K ${TARGET_C_SRC}) target_link_libraries(xlsw_3dp_ultrasonic_300K GD32E23X_SDK) target_include_directories(xlsw_3dp_ultrasonic_300K PUBLIC inc) # Generate .bin and .hex generate_binary_file(xlsw_3dp_ultrasonic_300K "XLSW_US-IR_FW") generate_hex_file(xlsw_3dp_ultrasonic_300K "XLSW_US-IR_FW")