Skip to content

Commit ede5aa2

Browse files
committed
Support XuanTie E906 CPU.
- add ThreadX porting codes for XuanTie E906. - add example for XuanTie E906 running on QEMU smartl.
1 parent 579246b commit ede5aa2

File tree

135 files changed

+54259
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

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

0 commit comments

Comments
 (0)