From d97e71ca83e202a226e5303eecce2e4c96f173ce Mon Sep 17 00:00:00 2001 From: Eyck-Alexander Jentzsch Date: Fri, 10 Apr 2026 14:13:18 +0200 Subject: [PATCH] updates test to work with new build system --- port/threadx/CMakeLists.txt | 7 ++++- test/threadx/CMakeLists.txt | 46 +++++++++++++----------------- test/threadx/generate_trap_file.sh | 4 +-- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/port/threadx/CMakeLists.txt b/port/threadx/CMakeLists.txt index db487d6..c33c86e 100644 --- a/port/threadx/CMakeLists.txt +++ b/port/threadx/CMakeLists.txt @@ -1,9 +1,14 @@ +if(NOT DEFINED THREADX_LOW_LEVEL_INIT_SOURCE) #required for tests to hook into the ISR path + set(THREADX_LOW_LEVEL_INIT_SOURCE + ${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_low_level.c) +endif() + target_sources(${PROJECT_NAME} PRIVATE # {{BEGIN_TARGET_SOURCES}} ${CMAKE_CURRENT_LIST_DIR}/src/trap_entry.S - ${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_low_level.c + ${THREADX_LOW_LEVEL_INIT_SOURCE} ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_context_restore.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_context_save.S ${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_interrupt_control.S diff --git a/test/threadx/CMakeLists.txt b/test/threadx/CMakeLists.txt index 0404a00..f2cd1f8 100644 --- a/test/threadx/CMakeLists.txt +++ b/test/threadx/CMakeLists.txt @@ -37,27 +37,30 @@ set(__THREAD_LOCAL_STORAGE OFF) add_subdirectory(${THREADX4TGFS_ROOT}/third-party/picolibc ${CMAKE_BINARY_DIR}/picolibc) target_link_libraries(c PUBLIC gcc) -set(THREADX_CUSTOM_PORT ${THREADX4TGFS_ROOT}/port/threadx) -add_subdirectory(${THREADX4TGFS_ROOT}/third-party/threadx ${CMAKE_BINARY_DIR}/threadx) -target_link_libraries(threadx PUBLIC c) -target_compile_definitions(threadx PUBLIC TX_REGRESSION_TEST) - -set(MOONLIGHT_TRAP_SOURCE_INPUT ${THREADX4TGFS_ROOT}/port/moonlight/src/trap_non_vectored.c) -set(MOONLIGHT_TRAP_SOURCE ${CMAKE_BINARY_DIR}/generated/trap_non_vectored.c) -add_custom_command( - OUTPUT ${MOONLIGHT_TRAP_SOURCE} +set(THREADX_LOW_LEVEL_INIT_SOURCE_INPUT + ${THREADX4TGFS_ROOT}/port/threadx/src/tx_initialize_low_level.c) +set(THREADX_LOW_LEVEL_INIT_SOURCE + ${CMAKE_BINARY_DIR}/generated/tx_initialize_low_level.c) +set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS + ${THREADX_LOW_LEVEL_INIT_SOURCE_INPUT} + ${CMAKE_CURRENT_LIST_DIR}/generate_trap_file.sh) +execute_process( COMMAND bash ${CMAKE_CURRENT_LIST_DIR}/generate_trap_file.sh - ${MOONLIGHT_TRAP_SOURCE_INPUT} - ${MOONLIGHT_TRAP_SOURCE} - DEPENDS ${MOONLIGHT_TRAP_SOURCE_INPUT} - ${CMAKE_CURRENT_LIST_DIR}/generate_trap_file.sh - VERBATIM + ${THREADX_LOW_LEVEL_INIT_SOURCE_INPUT} + ${THREADX_LOW_LEVEL_INIT_SOURCE} + RESULT_VARIABLE THREADX_LOW_LEVEL_INIT_GENERATE_RESULT + COMMAND_ERROR_IS_FATAL ANY ) -add_custom_target(threadx_regression_generated_trap DEPENDS ${MOONLIGHT_TRAP_SOURCE}) -set_source_files_properties(${MOONLIGHT_TRAP_SOURCE} PROPERTIES GENERATED TRUE) add_subdirectory(${THREADX4TGFS_ROOT}/port/moonlight ${CMAKE_BINARY_DIR}/port/moonlight) -add_dependencies(moonlight_platform_common threadx_regression_generated_trap) +target_sources(c PRIVATE ${THREADX4TGFS_ROOT}/port/picolibc/port.c) +target_link_libraries(c PUBLIC moonlight gcc) + +set(THREADX_CUSTOM_PORT ${THREADX4TGFS_ROOT}/port/threadx) +add_subdirectory(${THREADX4TGFS_ROOT}/third-party/threadx ${CMAKE_BINARY_DIR}/threadx) +target_link_libraries(threadx PUBLIC moonlight c) +target_compile_definitions(threadx PUBLIC TX_REGRESSION_TEST) + function(setup_target TARGET) set(options) @@ -72,11 +75,6 @@ function(setup_target TARGET) set_target_properties(${TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} ) - if(ST_PLATFORM_TARGET) - target_add_moonlight_platform(${TARGET} PLATFORM_TARGET ${ST_PLATFORM_TARGET}) - else() - target_add_moonlight_platform(${TARGET}) - endif() if(ST_SOURCES) target_sources(${TARGET} PRIVATE ${ST_SOURCES}) @@ -87,10 +85,6 @@ function(setup_target TARGET) endif() target_link_options(${TARGET} PRIVATE - -nostartfiles - -nostdlib - -T ${THREADX4TGFS_ROOT}/src/${TARGET_MEM}.lds - -Wl,--gc-sections -Wl,-Map=${CMAKE_BINARY_DIR}/${TARGET}.map) add_custom_command(TARGET ${TARGET} POST_BUILD diff --git a/test/threadx/generate_trap_file.sh b/test/threadx/generate_trap_file.sh index 2e0f430..2cee395 100755 --- a/test/threadx/generate_trap_file.sh +++ b/test/threadx/generate_trap_file.sh @@ -12,7 +12,7 @@ tmp1="${dst}.tmp1" line=$(grep -n -F "$extern_anchor" "$src" | head -n 1 | cut -d: -f1) if [ -z "$line" ]; then - echo "failed to find _tx_timer_interrupt declaration anchor in trap source" >&2 + echo "failed to find _tx_timer_interrupt declaration anchor in input source" >&2 exit 1 fi sed "${line}a\\ @@ -20,7 +20,7 @@ void test_interrupt_dispatch(void) __attribute__((weak));\nvoid test_interrupt_d line=$(grep -n -F "$call_anchor" "$tmp1" | head -n 1 | cut -d: -f1) if [ -z "$line" ]; then - echo "failed to find _tx_timer_interrupt call anchor in trap source" >&2 + echo "failed to find _tx_timer_interrupt call anchor in input source" >&2 rm -f "$tmp1" exit 1 fi