1+ cmake_minimum_required (VERSION 3.15 FATAL_ERROR )
2+
3+ project (demo_threadx
4+ LANGUAGES C ASM
5+ )
6+
7+ set (SRCS
8+ ${CMAKE_CURRENT_LIST_DIR} /demo_threadx.c
9+ ${CMAKE_CURRENT_LIST_DIR} /pre_main.c
10+ ${CMAKE_CURRENT_LIST_DIR} /boards/board_riscv_dummy/src/uart/board_uart.c
11+ ${CMAKE_CURRENT_LIST_DIR} /boards/board_riscv_dummy/src/board_init.c
12+ ${CMAKE_CURRENT_LIST_DIR} /components/csi/csi2/src/csi_misc.c
13+ ${CMAKE_CURRENT_LIST_DIR} /components/libc_threadx/mini_printf.c
14+ ${CMAKE_CURRENT_LIST_DIR} /components/libc_threadx/newlib_stub.c
15+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/arch/e906fdp/startup.S
16+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/arch/e906fdp/vectors.S
17+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/arch/e906fdp/system.c
18+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/arch/e906fdp/trap_c.c
19+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/drivers/dw_uart_ll.c
20+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/drivers/uart.c
21+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/devices.c
22+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/feature.c
23+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/irq_port.c
24+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/irq.c
25+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/pre_main.c
26+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/sys_clk.c
27+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/target_get.c
28+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/tick.c
29+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/src/sys/weak.c
30+ )
31+
32+ include_directories (
33+ ${CMAKE_CURRENT_LIST_DIR} /../../../../../common/inc
34+ ${CMAKE_CURRENT_LIST_DIR} /../../inc
35+ ${CMAKE_CURRENT_LIST_DIR}
36+ ${CMAKE_CURRENT_LIST_DIR} /boards/board_riscv_dummy/include
37+ ${CMAKE_CURRENT_LIST_DIR} /components/csi/csi2/include
38+ ${CMAKE_CURRENT_LIST_DIR} /components/libc_threadx/include
39+ ${CMAKE_CURRENT_LIST_DIR} /components/libc_threadx/compilers/gcc
40+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/include
41+ ${CMAKE_CURRENT_LIST_DIR} /components/chip_riscv_dummy/include/asm
42+ )
43+
44+ add_compile_options (
45+ -Os -g -Wno-main
46+ -Wpointer-arith -Wno-undef -ffunction-sections -fdata-sections -fno-inline-functions -fno-builtin -fno-strict-aliasing
47+ -DCONFIG_SUPPORT_TSPEND=1
48+ -DCONFIG_ARCH_MAINSTACK=4096
49+ -DCONFIG_ARCH_INTERRUPTSTACK=4096
50+ -DCONFIG_SUPPORT_IRQ_NESTED=1
51+ -DCONFIG_INTC_CLIC=1
52+ -DCONFIG_INTC_CLINT=1
53+ -DCONFIG_XIP=1
54+ -DCONFIG_LIBC_MINI_PRINTF_SUPPORT=1
55+ -DCONFIG_SYSTICK_HZ=100
56+ -DCONFIG_BOARD_SMARTL_EVB=1
57+ -DCONFIG_CPU_XUANTIE_E906FDP=1
58+ -DCONFIG_KERNEL_THREADX=1
59+ -DTX_INCLUDE_USER_DEFINE_FILE
60+ )
61+
62+ add_link_options (
63+ -nostartfiles -Wl,--gc-sections
64+ -T${CMAKE_CURRENT_LIST_DIR}/components/chip_riscv_dummy/gcc_flash_smartl.ld
65+ -Wl,-zmax-page-size=1024
66+ -Wl,-Map=${PROJECT_NAME}.map
67+ )
68+
69+ link_directories (${CMAKE_CURRENT_LIST_DIR} /../../../../../build )
70+ add_executable (${PROJECT_NAME} ${SRCS} )
71+ set_target_properties (${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME} .elf" )
72+ target_link_libraries (${PROJECT_NAME} PRIVATE threadx )
73+
74+ add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
75+ COMMAND ${OBJDUMP} -d $<TARGET_FILE :${PROJECT_NAME} > > ${PROJECT_NAME} .asm
76+ COMMENT "Generating ASM disassembly files"
77+ )
0 commit comments