1. 关联gd32w51x中断处理; 1.1. 支持基于SysTick的延时; 1.2. 支持基于Timer2中断的数据接收; 2. 解决程序过大问题,链接中移除printf的浮点支持; 3. 支持CMT2310初始化并进入接收模式; 3.1. 支持HAL层替换打印EBYTE_LOG;
110 lines
5.0 KiB
CMake
110 lines
5.0 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(TARGET_EXE mbl-ns)
|
|
set(TAGET_PROJECT_DIR ${PROJECT_SOURCE_DIR}/MBL/Project)
|
|
add_executable(${TARGET_EXE})
|
|
|
|
add_definitions(
|
|
-DPLATFORM_GDM32
|
|
)
|
|
|
|
set_target_properties(${TARGET_EXE}
|
|
PROPERTIES
|
|
SUFFIX ".axf"
|
|
ARCHIVE_OUTPUT_DIRECTORY "${TAGET_PROJECT_DIR}/GCC/output/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${TAGET_PROJECT_DIR}/GCC/output/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${TAGET_PROJECT_DIR}/GCC/output/bin"
|
|
)
|
|
|
|
target_sources(${TARGET_EXE}
|
|
PRIVATE
|
|
mbl_api.c
|
|
mbl_flash.c
|
|
mbl_image.c
|
|
mbl_ns.c
|
|
mbl_qspi_flash.c
|
|
mbl_sys.c
|
|
mbl_uart.c
|
|
drivers/CMT2310/0_Project/Uart_PingPong/main.c
|
|
drivers/CMT2310/0_Project/Uart_PingPong/ebyte/ebyte_callback.c
|
|
drivers/CMT2310/0_Project/Uart_PingPong/ebyte/ebyte_core.c
|
|
drivers/CMT2310/0_Project/Uart_PingPong/ebyte/ebyte_port.c
|
|
drivers/CMT2310/0_Project/Uart_PingPong/irq_handle.c
|
|
drivers/CMT2310/1_Middleware/Kfifo/ebyte_kfifo.c
|
|
drivers/CMT2310/1_Middleware/Produce/ebyte_debug.c
|
|
drivers/CMT2310/2_Ebyte_Board_Support/E15-EVB02/board_button.c
|
|
drivers/CMT2310/2_Ebyte_Board_Support/E15-EVB02/board_mini_printf.c
|
|
drivers/CMT2310/2_Ebyte_Board_Support/E15-EVB02/board.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/cmt2310a_433mhz.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/radio.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/cmt2310a_868mhz.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/cmt2310a_915mhz.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/radio_phy.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/radio_hal.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/cmt2310a_410mhz.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/radio_mac.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/radio_spi.c
|
|
drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/ebyte_e48x.c
|
|
)
|
|
|
|
target_sources(${TARGET_EXE}
|
|
PRIVATE
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_fmc.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_fwdgt.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_gpio.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_icache.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_misc.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_qspi.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_rcu.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_usart.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_spi.c
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Source/gd32w51x_timer.c
|
|
)
|
|
|
|
target_sources(${TARGET_EXE}
|
|
PRIVATE
|
|
../platform/gdm32/cmsis_core/mbl_system_gdm32.c
|
|
../platform/gdm32/gcc/mbl_startup_gdm32.s
|
|
../platform/gdm32/gd32w51x_it.c
|
|
../platform/gdm32/systick.c
|
|
)
|
|
|
|
target_include_directories(${TARGET_EXE}
|
|
PRIVATE
|
|
${PROJECT_SOURCE_DIR}/MBL/platform/gdm32/
|
|
${PROJECT_SOURCE_DIR}/NSPE/Firmware/GD32W51x_standard_peripheral/Include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/CMT2310/0_Project/Uart_PingPong/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/CMT2310/0_Project/Uart_PingPong/ebyte/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/CMT2310/1_Middleware/Kfifo/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/CMT2310/1_Middleware/Produce/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/CMT2310/2_Ebyte_Board_Support/E15-EVB02/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers/CMT2310/3_Ebyte_WirelessModule_Drivers/E48xMx/
|
|
)
|
|
|
|
target_add_scatter_file(${TARGET_EXE}
|
|
../platform/gdm32/gcc/mbl_gdm32_ns.ld
|
|
)
|
|
|
|
|
|
target_link_options(${TARGET_EXE}
|
|
PUBLIC
|
|
-Wl,--just-symbols=${PROJECT_SOURCE_DIR}/ROM-EXPORT/symbol/rom_symbol.gcc
|
|
-Wl,-Map=${TAGET_PROJECT_DIR}/GCC/output/bin/${TARGET_EXE}.map
|
|
)
|
|
|
|
get_target_property(LINK_FLAGS ${TARGET_EXE} LINK_OPTIONS)
|
|
string(REGEX REPLACE "(.*)-u._printf_float(.*)" "\\1\\2" LINK_FLAGS "${LINK_FLAGS}")
|
|
set_target_properties(${TARGET_EXE} PROPERTIES LINK_OPTIONS "${LINK_FLAGS}")
|
|
|
|
if(CMAKE_HOST_UNIX)
|
|
add_custom_command(TARGET ${TARGET_EXE} POST_BUILD
|
|
COMMAND ${TAGET_PROJECT_DIR}/mbl_afterbuild.sh ${TAGET_PROJECT_DIR}/GCC/output/bin ${TARGET_EXE} GCC \"\"
|
|
COMMENT "Building ${TARGET_EXE}"
|
|
)
|
|
elseif(CMAKE_HOST_WIN32)
|
|
add_custom_command(TARGET ${TARGET_EXE} POST_BUILD
|
|
COMMAND ${TAGET_PROJECT_DIR}/mbl_afterbuild.bat ${TAGET_PROJECT_DIR}/GCC/output/bin ${TARGET_EXE} GCC \"\"
|
|
COMMENT "Building ${TARGET_EXE}"
|
|
)
|
|
endif()
|