2022-12-09 23:22:35 +08:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
|
|
2023-08-20 20:52:23 +08:00
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
|
|
|
|
|
-Werror \
|
2023-09-18 22:49:53 +08:00
|
|
|
-DUSE_STDPERIPH_DRIVER=1 \
|
2023-08-20 20:52:23 +08:00
|
|
|
-DSMP=1 \
|
|
|
|
|
-Wno-unused-parameter \
|
|
|
|
|
-Wno-unused-function \
|
|
|
|
|
-Wno-unused-variable \
|
2023-08-23 00:42:36 +08:00
|
|
|
-Wno-deprecated \
|
2023-08-20 20:52:23 +08:00
|
|
|
")
|
|
|
|
|
|
2023-09-18 22:49:53 +08:00
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/)
|
2023-12-23 19:20:48 +08:00
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/inc)
|
2023-09-26 23:40:54 +08:00
|
|
|
|
|
|
|
|
file(GLOB deps *.c)
|
2022-12-09 23:22:35 +08:00
|
|
|
|
2024-01-18 01:09:39 +08:00
|
|
|
if (${CONFIG_CPU_TYPE} STREQUAL "stm32f1")
|
2023-09-26 23:40:54 +08:00
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_XL ")
|
|
|
|
|
|
2023-12-23 19:20:48 +08:00
|
|
|
file(GLOB
|
|
|
|
|
bsp_src
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/src/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/*.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/*.c
|
|
|
|
|
)
|
|
|
|
|
list(APPEND deps ${bsp_src})
|
|
|
|
|
include_directories(
|
2024-01-18 01:09:39 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F1
|
2023-12-23 19:20:48 +08:00
|
|
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/STM32F10x_StdPeriph_Driver/inc
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/Include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport
|
|
|
|
|
)
|
2024-01-18 01:09:39 +08:00
|
|
|
add_subdirectory(bsp/STM32F1)
|
2024-04-10 15:55:07 +00:00
|
|
|
set(LINKS_FLAGS " --gc-section ")
|
2024-01-18 00:48:16 +08:00
|
|
|
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f2" )
|
2023-12-23 19:20:48 +08:00
|
|
|
|
|
|
|
|
file(GLOB bsp_src ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/src/*.c)
|
|
|
|
|
list(APPEND deps ${bsp_src})
|
|
|
|
|
include_directories(
|
2024-01-18 00:48:16 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F2
|
2023-12-23 19:20:48 +08:00
|
|
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include
|
|
|
|
|
)
|
2024-01-18 00:48:16 +08:00
|
|
|
add_subdirectory(bsp/STM32F2)
|
2024-04-10 15:55:07 +00:00
|
|
|
set(LINKS_FLAGS " --gc-section ")
|
|
|
|
|
|
2024-01-18 00:48:16 +08:00
|
|
|
elseif(${CONFIG_CPU_TYPE} STREQUAL "stm32f4" )
|
2024-01-27 15:40:05 +08:00
|
|
|
if(${CONFIG_BOARD_NAME} STREQUAL "STM32F407VET6" )
|
2024-01-18 00:48:16 +08:00
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F40_41xxx ")
|
|
|
|
|
endif()
|
2023-12-23 19:20:48 +08:00
|
|
|
|
|
|
|
|
file(GLOB bsp_src ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/src/*.c)
|
|
|
|
|
list(APPEND deps ${bsp_src})
|
|
|
|
|
|
|
|
|
|
list(REMOVE_ITEM deps ${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_fmc.c)
|
|
|
|
|
include_directories(
|
2024-01-18 00:48:16 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/STM32F4
|
2023-12-23 19:20:48 +08:00
|
|
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver/inc
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Include
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/STM32/STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include
|
|
|
|
|
)
|
2024-01-18 00:48:16 +08:00
|
|
|
add_subdirectory(bsp/STM32F4)
|
2024-04-10 15:55:07 +00:00
|
|
|
set(LINKS_FLAGS " --gc-section ")
|
|
|
|
|
|
2024-01-18 00:48:16 +08:00
|
|
|
elseif(${CONFIG_CPU_TYPE} STREQUAL "Cortex-R52" )
|
2023-12-31 16:35:26 +08:00
|
|
|
include_directories(
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/Cortex-R52
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
add_subdirectory(bsp/Cortex-R52)
|
2024-04-10 15:55:07 +00:00
|
|
|
set(LINKS_FLAGS " --gc-section ")
|
|
|
|
|
|
2024-01-27 15:40:05 +08:00
|
|
|
elseif(${CONFIG_CPU_TYPE} STREQUAL "swm34s" )
|
|
|
|
|
|
|
|
|
|
file(GLOB bsp_src
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/SWM34/SWM341_StdPeriph_Driver/CMSIS/DeviceSupport/system_SWM341.c
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/SWM34/SWM341_StdPeriph_Driver/SWM341_StdPeriph_Driver/*.c
|
|
|
|
|
)
|
|
|
|
|
list(APPEND deps ${bsp_src})
|
|
|
|
|
|
|
|
|
|
include_directories(
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/SWM34S
|
|
|
|
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/SWM34/SWM341_StdPeriph_Driver/CMSIS/DeviceSupport
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/SWM34/SWM341_StdPeriph_Driver/CMSIS/CoreSupport
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/SWM34/SWM341_StdPeriph_Driver/SWM341_StdPeriph_Driver
|
|
|
|
|
)
|
|
|
|
|
add_subdirectory(bsp/SWM34S)
|
2024-04-10 15:55:07 +00:00
|
|
|
set(LINKS_FLAGS " --gc-section ")
|
2024-10-07 18:51:14 +08:00
|
|
|
elseif(${CONFIG_CPU_TYPE} STREQUAL "at32f437" )
|
|
|
|
|
if(${CONFIG_BOARD_NAME} STREQUAL "ATSURFF437" )
|
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAT32F437ZMT7 -DUSE_STDPERIPH_DRIVER -DAT_SURF_F437_V1 ")
|
|
|
|
|
endif()
|
|
|
|
|
file(GLOB bsp_src
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/AT32/AT32F435_437_Firmware_Library_V2.2.0/libraries/drivers/src/*.c
|
|
|
|
|
)
|
|
|
|
|
list(APPEND deps ${bsp_src})
|
|
|
|
|
|
|
|
|
|
include_directories(
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/AT32F437
|
|
|
|
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/AT32/AT32F435_437_Firmware_Library_V2.2.0/libraries/cmsis/cm4/core_support
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/AT32/AT32F435_437_Firmware_Library_V2.2.0/libraries/cmsis/cm4/device_support
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/AT32/AT32F435_437_Firmware_Library_V2.2.0/libraries/drivers/inc
|
2024-12-29 21:50:20 +08:00
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bsp/AT32/AT32F435_437_Firmware_Library_V2.2.0/project/at_surf_f437_board
|
2024-10-07 18:51:14 +08:00
|
|
|
)
|
|
|
|
|
add_subdirectory(bsp/AT32F437)
|
|
|
|
|
set(LINKS_FLAGS " --gc-section ")
|
2024-04-10 15:55:07 +00:00
|
|
|
|
2024-03-31 16:06:11 +00:00
|
|
|
elseif(${CONFIG_CPU_TYPE} STREQUAL "aarch64_qemu" )
|
|
|
|
|
include_directories(
|
|
|
|
|
${CMAKE_SOURCE_DIR}/mkrtos_bootstrap/bsp/AARCH64_QEMU
|
|
|
|
|
)
|
|
|
|
|
add_subdirectory(bsp/AARCH64_QEMU)
|
2024-04-10 15:55:07 +00:00
|
|
|
set(LINKS_FLAGS " ")
|
2023-09-26 23:40:54 +08:00
|
|
|
|
2024-04-10 15:55:07 +00:00
|
|
|
endif()
|
2024-03-31 16:06:11 +00:00
|
|
|
|
2024-04-10 15:55:07 +00:00
|
|
|
if ((DEFINED CONFIG_MMU) AND (CONFIG_MMU STREQUAL "y"))
|
|
|
|
|
add_custom_target(
|
|
|
|
|
gen_sys_cpio
|
|
|
|
|
|
|
|
|
|
COMMAND
|
|
|
|
|
cd ${CMAKE_SOURCE_DIR}/build/output/cpio
|
|
|
|
|
COMMAND
|
|
|
|
|
ls | cpio -H newc -o > ${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio
|
|
|
|
|
COMMAND
|
|
|
|
|
cd ${CMAKE_SOURCE_DIR}/build/output
|
|
|
|
|
COMMAND
|
|
|
|
|
${CMAKE_OBJCOPY} -I binary -O elf64-littleaarch64 -B aarch64 rootfs.cpio rootfs.cpio.elf --rename-section .data=.cpio
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output
|
|
|
|
|
BYPRODUCTS ${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio.elf
|
|
|
|
|
)
|
|
|
|
|
add_dependencies(
|
|
|
|
|
gen_sys_cpio
|
2024-04-27 03:47:45 +00:00
|
|
|
init_dump_elf
|
|
|
|
|
mkrtos_dump_elf
|
|
|
|
|
sh_dump_elf
|
|
|
|
|
cpiofs_dump_elf
|
2024-09-17 11:38:12 +08:00
|
|
|
# net_dump_elf
|
|
|
|
|
# uvmm_dump_elf
|
2024-04-10 15:19:02 +00:00
|
|
|
)
|
2024-04-10 15:55:07 +00:00
|
|
|
set_source_files_properties(${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio.elf PROPERTIES EXTERNAL_OBJECT true)
|
|
|
|
|
add_executable(bootstrap.elf
|
|
|
|
|
${deps}
|
|
|
|
|
${CMAKE_SOURCE_DIR}/build/output/rootfs.cpio.elf
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
add_executable(bootstrap.elf
|
2023-12-23 19:20:48 +08:00
|
|
|
${deps}
|
2024-04-10 15:55:07 +00:00
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2024-03-31 16:06:11 +00:00
|
|
|
# message("CONFIG_CPU_TYPE="${CONFIG_CPU_TYPE})
|
2024-02-28 19:03:47 +08:00
|
|
|
string(TOUPPER ${CONFIG_CPU_TYPE} cpu_type)
|
2023-12-23 19:20:48 +08:00
|
|
|
set_target_properties(bootstrap.elf PROPERTIES LINK_FLAGS
|
2024-04-10 15:55:07 +00:00
|
|
|
"-T ${CMAKE_CURRENT_LIST_DIR}/bsp/${cpu_type}/link.lds ${LINKS_FLAGS} ")
|
2023-12-23 19:20:48 +08:00
|
|
|
|
2024-10-07 16:49:32 +08:00
|
|
|
add_custom_target(
|
|
|
|
|
boot_link_file_dump ALL
|
|
|
|
|
COMMAND
|
|
|
|
|
${CMAKE_C_COMPILER}
|
|
|
|
|
-include ${CMAKE_SOURCE_DIR}/build/autoconf.h
|
|
|
|
|
-E -P -<${CMAKE_CURRENT_LIST_DIR}/bsp/${cpu_type}/link.lds.asm>
|
|
|
|
|
${CMAKE_CURRENT_LIST_DIR}/bsp/${cpu_type}/link.lds
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
2023-12-23 19:20:48 +08:00
|
|
|
target_link_libraries(
|
|
|
|
|
bootstrap.elf
|
2023-12-31 16:35:26 +08:00
|
|
|
--whole-archive
|
2024-01-27 15:40:05 +08:00
|
|
|
boot_bsp
|
2023-12-31 16:35:26 +08:00
|
|
|
--no-whole-archive
|
2024-04-10 15:19:02 +00:00
|
|
|
${GCC_LIB_PATH}/libgcc.a
|
2023-09-26 23:40:54 +08:00
|
|
|
)
|
2024-10-31 10:37:48 +08:00
|
|
|
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output)
|
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/build/output/cpio)
|
2023-08-20 20:52:23 +08:00
|
|
|
add_custom_target(
|
|
|
|
|
bootstrap_dump ALL
|
|
|
|
|
COMMAND
|
|
|
|
|
${CMAKE_OBJCOPY} -O binary -S bootstrap.elf bootstrap.bin
|
|
|
|
|
COMMAND
|
2024-10-31 10:37:48 +08:00
|
|
|
${CMAKE_COMMAND} -E copy bootstrap.bin ${CMAKE_SOURCE_DIR}/build/output/bootstrap
|
2023-08-20 20:52:23 +08:00
|
|
|
COMMAND
|
2024-10-31 10:37:48 +08:00
|
|
|
${CMAKE_COMMAND} -E copy bootstrap.elf ${CMAKE_SOURCE_DIR}/build/output/bootstrap.elf
|
2023-09-18 22:49:53 +08:00
|
|
|
COMMAND
|
|
|
|
|
${CMAKE_SIZE} bootstrap.elf
|
2023-08-20 20:52:23 +08:00
|
|
|
)
|
2024-10-31 10:37:48 +08:00
|
|
|
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/build/include)
|
|
|
|
|
|
2023-12-23 19:20:48 +08:00
|
|
|
add_dependencies(bootstrap_dump bootstrap.elf)
|
2024-10-07 16:49:32 +08:00
|
|
|
add_dependencies(bootstrap.elf boot_bsp)
|
|
|
|
|
add_dependencies(bootstrap.elf boot_link_file_dump)
|