mirror of
https://github.com/eclipse-threadx/threadx.git
synced 2026-08-17 17:43:54 +08:00
Merge pull request #544 from eclipse-threadx/dev
cortex_m / Cortex M0 build (push) Has been cancelled
cortex_m / Cortex M3 build (push) Has been cancelled
cortex_m / Cortex M4 build (push) Has been cancelled
cortex_m / Cortex M7 build (push) Has been cancelled
regression_test / tx (push) Has been cancelled
regression_test / smp (push) Has been cancelled
regression_test / deploy (push) Has been cancelled
cortex_m / Cortex M0 build (push) Has been cancelled
cortex_m / Cortex M3 build (push) Has been cancelled
cortex_m / Cortex M4 build (push) Has been cancelled
cortex_m / Cortex M7 build (push) Has been cancelled
regression_test / tx (push) Has been cancelled
regression_test / smp (push) Has been cancelled
regression_test / deploy (push) Has been cancelled
Merging changes for the v.6.5.1.202602 release
This commit is contained in:
@@ -41,6 +41,24 @@ jobs:
|
||||
cmake_path: ./test/smp/cmake
|
||||
result_affix: SMP
|
||||
skip_deploy: true
|
||||
# riscv: disabled — re-enable when RISC-V CI is ready
|
||||
# riscv:
|
||||
# permissions:
|
||||
# contents: read
|
||||
# issues: read
|
||||
# checks: write
|
||||
# pull-requests: write
|
||||
# pages: write
|
||||
# id-token: write
|
||||
# uses: ./.github/workflows/regression_template.yml
|
||||
# with:
|
||||
# install_script: ./scripts/install_riscv.sh
|
||||
# build_script: ./scripts/build_tx_riscv.sh
|
||||
# test_script: ./scripts/test_tx_riscv.sh
|
||||
# cmake_path: ./test/tx/cmake/riscv
|
||||
# result_affix: RISC-V
|
||||
# skip_deploy: true
|
||||
# skip_coverage: true
|
||||
deploy:
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
.tmp/
|
||||
_deps/
|
||||
build/
|
||||
build_qemu/
|
||||
Debug/
|
||||
CMakeFiles/
|
||||
CMakeScripts/
|
||||
@@ -22,3 +23,7 @@ CTestTestfile.cmake
|
||||
*.a
|
||||
*.htm
|
||||
|
||||
|
||||
# Local build artifacts
|
||||
build_m7/
|
||||
.codex
|
||||
|
||||
+44
-8
@@ -1,9 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
|
||||
|
||||
# Set up the project
|
||||
project(threadx
|
||||
LANGUAGES C ASM
|
||||
)
|
||||
# Declare the project with C only first so that CMake loads the toolchain file,
|
||||
# which sets THREADX_ARCH and THREADX_TOOLCHAIN as normal variables. Checking
|
||||
# those variables before project() would always fail because the toolchain is
|
||||
# not sourced until the first project() call.
|
||||
project(threadx LANGUAGES C)
|
||||
|
||||
if(NOT DEFINED THREADX_ARCH)
|
||||
message(FATAL_ERROR "Error: THREADX_ARCH not defined")
|
||||
@@ -11,6 +12,30 @@ endif()
|
||||
if(NOT DEFINED THREADX_TOOLCHAIN)
|
||||
message(FATAL_ERROR "Error: THREADX_TOOLCHAIN not defined")
|
||||
endif()
|
||||
|
||||
# The Windows simulation ports do not use assembly. All other ports require
|
||||
# it. enable_language() is called here rather than in project() above so that
|
||||
# the ASM toolchain is only activated when we know the target actually needs it.
|
||||
# Note: CMAKE_TRY_COMPILE_TARGET_TYPE is already set to STATIC_LIBRARY by
|
||||
# every toolchain file in cmake/, so it does not need to be repeated here.
|
||||
if(NOT ((THREADX_ARCH STREQUAL "win32") OR (THREADX_ARCH STREQUAL "win64")))
|
||||
enable_language(ASM)
|
||||
endif()
|
||||
|
||||
option(THREADX_SMP "Build ThreadX SMP version" OFF)
|
||||
|
||||
if(THREADX_SMP)
|
||||
set(TX_PORT_DIR "ports_smp")
|
||||
set(TX_COMMON_DIR "common_smp")
|
||||
set(TX_ARCH_DIR "${THREADX_ARCH}_smp")
|
||||
message(STATUS "Building ThreadX SMP version")
|
||||
else()
|
||||
set(TX_PORT_DIR "ports")
|
||||
set(TX_COMMON_DIR "common")
|
||||
set(TX_ARCH_DIR "${THREADX_ARCH}")
|
||||
message(STATUS "Building standard ThreadX version")
|
||||
endif()
|
||||
|
||||
message(STATUS "THREADX_ARCH: ${THREADX_ARCH}")
|
||||
message(STATUS "THREADX_TOOLCHAIN: ${THREADX_TOOLCHAIN}")
|
||||
|
||||
@@ -25,11 +50,11 @@ set(CUSTOM_INC_DIR ${CMAKE_CURRENT_BINARY_DIR}/custom_inc)
|
||||
if(DEFINED THREADX_CUSTOM_PORT)
|
||||
add_subdirectory(${THREADX_CUSTOM_PORT} threadx_port)
|
||||
else()
|
||||
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/ports/${THREADX_ARCH}/${THREADX_TOOLCHAIN})
|
||||
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/${TX_PORT_DIR}/${TX_ARCH_DIR}/${THREADX_TOOLCHAIN})
|
||||
endif()
|
||||
|
||||
# Pick up the common stuff
|
||||
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/common)
|
||||
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/${TX_COMMON_DIR})
|
||||
|
||||
# Define the FreeRTOS adaptation layer
|
||||
add_library(freertos-threadx EXCLUDE_FROM_ALL)
|
||||
@@ -46,7 +71,7 @@ target_link_libraries(freertos-threadx PUBLIC threadx)
|
||||
# If the user provided an override, copy it to the custom directory
|
||||
if (NOT TX_USER_FILE)
|
||||
message(STATUS "Using default tx_user.h file")
|
||||
set(TX_USER_FILE ${CMAKE_CURRENT_LIST_DIR}/common/inc/tx_user_sample.h)
|
||||
set(TX_USER_FILE ${CMAKE_CURRENT_LIST_DIR}/${TX_COMMON_DIR}/inc/tx_user_sample.h)
|
||||
else()
|
||||
message(STATUS "Using custom tx_user.h file from ${TX_USER_FILE}")
|
||||
endif()
|
||||
@@ -56,6 +81,17 @@ target_include_directories(${PROJECT_NAME}
|
||||
${CUSTOM_INC_DIR}
|
||||
)
|
||||
target_compile_definitions(${PROJECT_NAME} PUBLIC "TX_INCLUDE_USER_DEFINE_FILE" )
|
||||
if(THREADX_SMP)
|
||||
target_compile_definitions(${PROJECT_NAME} PUBLIC "TX_MPCORE" )
|
||||
endif()
|
||||
|
||||
# Optional: build for S-mode (Supervisor mode) instead of M-mode (Machine mode).
|
||||
# Required when running after OpenSBI, e.g. booted from U-Boot.
|
||||
option(TX_RISCV_SMODE "Use S-mode CSRs instead of M-mode for RISC-V targets" OFF)
|
||||
if(TX_RISCV_SMODE)
|
||||
message(STATUS "RISC-V S-mode enabled (TX_RISCV_SMODE)")
|
||||
target_compile_definitions(${PROJECT_NAME} PUBLIC "TX_RISCV_SMODE")
|
||||
endif()
|
||||
|
||||
# Enable a build target that produces a ZIP file of all sources
|
||||
set(CPACK_SOURCE_GENERATOR "ZIP")
|
||||
@@ -69,4 +105,4 @@ set(CPACK_SOURCE_IGNORE_FILES
|
||||
".*~$"
|
||||
)
|
||||
set(CPACK_VERBATIM_VARIABLES YES)
|
||||
include(CPack)
|
||||
include(CPack)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Name of the target
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR cortex-a9)
|
||||
|
||||
set(THREADX_ARCH "cortex_a9")
|
||||
set(THREADX_TOOLCHAIN "gnu")
|
||||
|
||||
set(MCPU_FLAGS "-marm -mcpu=cortex-a9")
|
||||
set(VFP_FLAGS "")
|
||||
set(SPEC_FLAGS "--specs=nosys.specs")
|
||||
# set(LD_FLAGS "-nostartfiles")
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/arm-none-eabi.cmake)
|
||||
@@ -0,0 +1,71 @@
|
||||
# /***************************************************************************
|
||||
# * Copyright (C) 2026 Eclipse ThreadX contributors
|
||||
# *
|
||||
# * This program and the accompanying materials are made available under the
|
||||
# * terms of the MIT License which is available at
|
||||
# * https://opensource.org/licenses/MIT.
|
||||
# *
|
||||
# * SPDX-License-Identifier: MIT
|
||||
# ***************************************************************************/
|
||||
|
||||
# CMake toolchain file for bare-metal RV32IMC targets (e.g. CORE-V MCU / CV32E40P)
|
||||
#
|
||||
# Uses the xPack riscv-none-elf-gcc toolchain:
|
||||
# https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack
|
||||
#
|
||||
# This is a cross-platform (Linux/macOS/Windows), multilib-capable toolchain
|
||||
# analogous to arm-none-eabi-gcc. Its multilib includes rv32imc/ilp32
|
||||
# (soft-float), so -lgcc resolves correctly without any distro package.
|
||||
#
|
||||
# Install via: bash ports/risc-v32/gnu/example_build/core_v_mcu/install_deps.sh
|
||||
# (downloads the latest xPack release to /opt/xpack-riscv-none-elf-gcc/)
|
||||
#
|
||||
# Do NOT use riscv32-unknown-elf-gcc (riscv-collab riscv32-elf release) for
|
||||
# this target: that toolchain is built --disable-multilib --with-abi=ilp32d,
|
||||
# so its libgcc only provides ilp32d (hardware FP) helpers and cannot link
|
||||
# rv32imc/ilp32 soft-float objects.
|
||||
#
|
||||
# Target ISA : rv32imc_zicsr (integer, multiply, compressed, Zicsr)
|
||||
# ABI : ilp32 (32-bit int/long/ptr, soft-float)
|
||||
# Code model : medlow (addresses in [0, 2 GiB))
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR riscv)
|
||||
|
||||
set(THREADX_ARCH "risc-v32")
|
||||
set(THREADX_TOOLCHAIN "gnu")
|
||||
|
||||
set(ARCH_FLAGS "-march=rv32imc_zicsr -mabi=ilp32 -mcmodel=medlow")
|
||||
set(CFLAGS "${ARCH_FLAGS}")
|
||||
set(ASFLAGS "${ARCH_FLAGS}")
|
||||
set(LDFLAGS "${ARCH_FLAGS}")
|
||||
|
||||
# xPack riscv-none-elf multilib toolchain.
|
||||
set(CMAKE_C_COMPILER riscv-none-elf-gcc)
|
||||
set(CMAKE_CXX_COMPILER riscv-none-elf-g++)
|
||||
set(AS riscv-none-elf-as)
|
||||
set(AR riscv-none-elf-ar)
|
||||
set(OBJCOPY riscv-none-elf-objcopy)
|
||||
set(OBJDUMP riscv-none-elf-objdump)
|
||||
set(SIZE riscv-none-elf-size)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
# Use static library for compiler feature probing (no linker script yet)
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CFLAGS}" CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "${CFLAGS}" CACHE INTERNAL "cxx compiler flags")
|
||||
set(CMAKE_ASM_FLAGS "${ASFLAGS} -D__ASSEMBLER__" CACHE INTERNAL "asm compiler flags")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LDFLAGS}" CACHE INTERNAL "exe link flags")
|
||||
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug flags")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "cxx debug flags")
|
||||
set(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug flags")
|
||||
|
||||
set(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release flags")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release flags")
|
||||
set(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release flags")
|
||||
@@ -0,0 +1,93 @@
|
||||
# /***************************************************************************
|
||||
# * Copyright (C) 2026 Eclipse ThreadX contributors
|
||||
# *
|
||||
# * This program and the accompanying materials are made available under the
|
||||
# * terms of the MIT License which is available at
|
||||
# * https://opensource.org/licenses/MIT.
|
||||
# *
|
||||
# * SPDX-License-Identifier: MIT
|
||||
# ***************************************************************************/
|
||||
|
||||
# CMake toolchain file for RV32GC targets (QEMU virt, etc.)
|
||||
#
|
||||
# Uses the dedicated riscv32-unknown-elf-gcc bare-metal toolchain from
|
||||
# riscv-collab (riscv32-elf-ubuntu-24.04-gcc.tar.xz, installs to /opt/riscv
|
||||
# via scripts/install_riscv.sh).
|
||||
#
|
||||
# IMPORTANT: the riscv-collab riscv32-elf toolchain is built
|
||||
# --disable-multilib --with-abi=ilp32d, so its libgcc only provides
|
||||
# ilp32d (hardware double-FP) helpers. This cmake file therefore targets
|
||||
# rv32gc/ilp32d, which matches the toolchain's built-in ABI and works
|
||||
# correctly with QEMU virt (which emulates hardware FP).
|
||||
#
|
||||
# Do NOT use this file for bare-metal targets that lack hardware FP (e.g.
|
||||
# CV32E40P, rv32imc). For those, use cmake/riscv64-ubuntu-rv32imc.cmake
|
||||
# which calls the Ubuntu gcc-riscv64-unknown-elf package — a multilib build
|
||||
# that includes the rv32im/ilp32 (soft-float) libgcc variant.
|
||||
#
|
||||
# Target ISA : rv32gc (integer, multiply, atomics, FP, compressed, Zicsr)
|
||||
# ABI : ilp32d (32-bit int/long/ptr, hardware double-precision FP)
|
||||
# Code model : medlow (addresses in [0, 2 GiB))
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR riscv)
|
||||
|
||||
set(THREADX_ARCH "risc-v32")
|
||||
set(THREADX_TOOLCHAIN "gnu")
|
||||
|
||||
set(ARCH_FLAGS "-march=rv32gc -mabi=ilp32d -mcmodel=medlow")
|
||||
set(CFLAGS "${ARCH_FLAGS}")
|
||||
set(ASFLAGS "${ARCH_FLAGS}")
|
||||
set(LDFLAGS "${ARCH_FLAGS}")
|
||||
|
||||
# Dedicated riscv32 bare-metal toolchain (riscv-collab riscv32-elf release).
|
||||
set(CMAKE_C_COMPILER riscv32-unknown-elf-gcc)
|
||||
set(CMAKE_CXX_COMPILER riscv32-unknown-elf-g++)
|
||||
set(AS riscv32-unknown-elf-as)
|
||||
set(AR riscv32-unknown-elf-ar)
|
||||
set(OBJCOPY riscv32-unknown-elf-objcopy)
|
||||
set(OBJDUMP riscv32-unknown-elf-objdump)
|
||||
set(SIZE riscv32-unknown-elf-size)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
# Use static library for compiler feature probing (no linker script yet)
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CFLAGS}" CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "${CFLAGS}" CACHE INTERNAL "cxx compiler flags")
|
||||
set(CMAKE_ASM_FLAGS "${ASFLAGS} -D__ASSEMBLER__" CACHE INTERNAL "asm compiler flags")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LDFLAGS}" CACHE INTERNAL "exe link flags")
|
||||
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug flags")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "cxx debug flags")
|
||||
set(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug flags")
|
||||
|
||||
set(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release flags")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release flags")
|
||||
set(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release flags")
|
||||
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
# Use static library for compiler feature probing (no linker script yet)
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CFLAGS}" CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "${CFLAGS}" CACHE INTERNAL "cxx compiler flags")
|
||||
set(CMAKE_ASM_FLAGS "${ASFLAGS} -D__ASSEMBLER__" CACHE INTERNAL "asm compiler flags")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LDFLAGS}" CACHE INTERNAL "exe link flags")
|
||||
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug flags")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "cxx debug flags")
|
||||
set(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug flags")
|
||||
|
||||
set(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release flags")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release flags")
|
||||
set(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release flags")
|
||||
@@ -17,7 +17,12 @@ set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CFLAGS}" CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "${CXXFLAGS}" CACHE INTERNAL "cxx compiler flags")
|
||||
set(CMAKE_ASM_FLAGS "${ASFLAGS} -D__ASSEMBLER__ -D__riscv_float_abi_single" CACHE INTERNAL "asm compiler flags")
|
||||
if(DEFINED SOFT_FLOAT)
|
||||
set(CMAKE_ASM_FLAGS "${ASFLAGS} -D__ASSEMBLER__" CACHE INTERNAL "asm compiler flags")
|
||||
else()
|
||||
set(CMAKE_ASM_FLAGS "${ASFLAGS} -D__ASSEMBLER__ -D__riscv_float_abi_single" CACHE INTERNAL "asm compiler flags")
|
||||
endif()
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LDFLAGS}" CACHE INTERNAL "exe link flags")
|
||||
|
||||
SET(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
# Name of the target
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR risc-v32)
|
||||
|
||||
set(THREADX_ARCH "risc-v32")
|
||||
set(THREADX_TOOLCHAIN "gnu")
|
||||
set(ARCH_FLAGS "-g -march=rv32gc -mabi=ilp32d -mcmodel=medany")
|
||||
if(DEFINED SOFT_FLOAT)
|
||||
set(ARCH_FLAGS "-g -march=rv32ima_zicsr -mabi=ilp32 -mcmodel=medany")
|
||||
set(CACHE{SOFT_FLOAT} FORCE 1)
|
||||
else()
|
||||
set(ARCH_FLAGS "-g -march=rv32gc -mabi=ilp32d -mcmodel=medany -mrelax")
|
||||
endif()
|
||||
set(CFLAGS "${ARCH_FLAGS}")
|
||||
set(ASFLAGS "${ARCH_FLAGS}")
|
||||
set(LDFLAGS "${ARCH_FLAGS}")
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# This file is a compatibility alias. Use riscv-none-elf-rv32imc.cmake.
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/riscv-none-elf-rv32imc.cmake)
|
||||
@@ -0,0 +1,50 @@
|
||||
# threadx_riscv_port.cmake
|
||||
#
|
||||
# Helper function shared by the three RISC-V port CMakeLists files
|
||||
# (risc-v32/gnu, risc-v32/clang, risc-v64/gnu).
|
||||
#
|
||||
# Usage:
|
||||
# include(cmake/threadx_riscv_port.cmake)
|
||||
# threadx_add_riscv_port(SRC_DIR <path-to-src>
|
||||
# INC_DIR <path-to-inc>
|
||||
# [EXAMPLE_DIR <path-to-example-build>])
|
||||
#
|
||||
# SRC_DIR — directory containing the 8 ThreadX .S port files.
|
||||
# INC_DIR — directory containing tx_port.h (added as PUBLIC include).
|
||||
# EXAMPLE_DIR — optional: if provided and contains a CMakeLists.txt,
|
||||
# add_subdirectory() is called on it.
|
||||
|
||||
function(threadx_add_riscv_port)
|
||||
cmake_parse_arguments(RISCV "" "SRC_DIR;INC_DIR;EXAMPLE_DIR" "" ${ARGN})
|
||||
|
||||
if(NOT RISCV_SRC_DIR)
|
||||
message(FATAL_ERROR "threadx_add_riscv_port: SRC_DIR is required")
|
||||
endif()
|
||||
if(NOT RISCV_INC_DIR)
|
||||
message(FATAL_ERROR "threadx_add_riscv_port: INC_DIR is required")
|
||||
endif()
|
||||
|
||||
target_sources(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
# {{BEGIN_TARGET_SOURCES}}
|
||||
${RISCV_SRC_DIR}/tx_initialize_low_level.S
|
||||
${RISCV_SRC_DIR}/tx_thread_context_restore.S
|
||||
${RISCV_SRC_DIR}/tx_thread_context_save.S
|
||||
${RISCV_SRC_DIR}/tx_thread_interrupt_control.S
|
||||
${RISCV_SRC_DIR}/tx_thread_schedule.S
|
||||
${RISCV_SRC_DIR}/tx_thread_stack_build.S
|
||||
${RISCV_SRC_DIR}/tx_thread_system_return.S
|
||||
${RISCV_SRC_DIR}/tx_timer_interrupt.S
|
||||
# {{END_TARGET_SOURCES}}
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PUBLIC
|
||||
${RISCV_INC_DIR}
|
||||
)
|
||||
|
||||
if(RISCV_EXAMPLE_DIR AND
|
||||
EXISTS ${RISCV_EXAMPLE_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${RISCV_EXAMPLE_DIR})
|
||||
endif()
|
||||
endfunction()
|
||||
+3
-9
@@ -1,15 +1,9 @@
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86)
|
||||
|
||||
set(THREADX_ARCH "win32")
|
||||
set(THREADX_TOOLCHAIN "vs_2019")
|
||||
|
||||
set(WIN32_FLAGS "")
|
||||
|
||||
set(CMAKE_C_FLAGS "${WIN32_FLAGS} " CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "${WIN32_FLAGS} -fno-rtti -fno-exceptions" CACHE INTERNAL "cxx compiler flags")
|
||||
set(CMAKE_ASM_FLAGS "${WIN32_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${WIN32_FLAGS} ${LD_FLAGS}" CACHE INTERNAL "exe link flags")
|
||||
|
||||
# this makes the test compiles use static library option so that we don't need to pre-set linker flags and scripts
|
||||
# This makes the test compiles use the static library option so that the
|
||||
# compiler environment can be discovered from the active MSVC shell.
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR AMD64)
|
||||
|
||||
set(THREADX_ARCH "win64")
|
||||
set(THREADX_TOOLCHAIN "vs_2022")
|
||||
|
||||
# This makes the test compiles use the static library option so that the
|
||||
# compiler environment can be discovered from the active MSVC shell.
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
@@ -0,0 +1,37 @@
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR xtensa)
|
||||
|
||||
set(CMAKE_C_COMPILER xt-clang)
|
||||
set(CMAKE_CXX_COMPILER xt-clang++)
|
||||
set(AS xt-clang)
|
||||
set(AR xt-ar)
|
||||
set(OBJCOPY xt-objcopy)
|
||||
set(OBJDUMP xt-objdump)
|
||||
set(SIZE xt-size)
|
||||
|
||||
set(THREADX_ARCH "xtensa")
|
||||
set(THREADX_TOOLCHAIN "xcc")
|
||||
|
||||
if (DEFINED ENV{XCC_OPTS})
|
||||
set(XCC_OPTS $ENV{XCC_OPTS})
|
||||
else()
|
||||
set(XCC_OPTS "")
|
||||
endif()
|
||||
|
||||
set(XCC_FLAGS "${XCC_OPTS} -mlongcalls -mno-l32r-flix -mno-coproc -Wall -Wextra -Werror")
|
||||
|
||||
set(CMAKE_C_FLAGS "${XCC_FLAGS} -Os -g" CACHE INTERNAL "c compiler flags")
|
||||
set(CMAKE_CXX_FLAGS "${XCC_FLAGS} -Os -g -fno-rtti -fno-exceptions" CACHE INTERNAL "cxx compiler flags")
|
||||
set(CMAKE_ASM_FLAGS "${XCC_FLAGS} -Os -g" CACHE INTERNAL "asm compiler flags")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${XCC_FLAGS} ${LD_FLAGS} -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
|
||||
|
||||
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE INTERNAL "c debug compiler flags")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE INTERNAL "cxx debug compiler flags")
|
||||
SET(CMAKE_ASM_FLAGS_DEBUG "-O0 -g" CACHE INTERNAL "asm debug compiler flags")
|
||||
|
||||
SET(CMAKE_C_FLAGS_RELEASE "-Os -g" CACHE INTERNAL "c release compiler flags")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "-Os -g" CACHE INTERNAL "cxx release compiler flags")
|
||||
SET(CMAKE_ASM_FLAGS_RELEASE "-Os -g" CACHE INTERNAL "asm release compiler flags")
|
||||
|
||||
# this makes the test compiles use static library option so that we don't need to pre-set linker flags and scripts
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
+2
-2
@@ -77,8 +77,8 @@ extern "C" {
|
||||
#define AZURE_RTOS_THREADX
|
||||
#define THREADX_MAJOR_VERSION 6
|
||||
#define THREADX_MINOR_VERSION 5
|
||||
#define THREADX_PATCH_VERSION 0
|
||||
#define THREADX_BUILD_VERSION 202601
|
||||
#define THREADX_PATCH_VERSION 1
|
||||
#define THREADX_BUILD_VERSION 202602
|
||||
#define THREADX_HOTFIX_VERSION ' '
|
||||
|
||||
/* Define the following symbol for backward compatibility */
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
the new value must be a multiple of ULONG. */
|
||||
|
||||
/*
|
||||
#define TX_QUEUE_MESSAGE_MAX_SIZE TX_ULONG_16
|
||||
#define TX_QUEUE_MESSAGE_MAX_SIZE TX_16_ULONG
|
||||
*/
|
||||
|
||||
/* Define the common timer tick reference for use by other middleware components. The default
|
||||
|
||||
@@ -111,17 +111,22 @@ VOID _tx_initialize_high_level(VOID)
|
||||
/* Initialize the event log, if enabled. */
|
||||
TX_EL_INITIALIZE
|
||||
|
||||
|
||||
/* Call the thread control initialization function. */
|
||||
_tx_thread_initialize();
|
||||
|
||||
|
||||
#ifndef TX_NO_TIMER
|
||||
|
||||
|
||||
/* Call the timer control initialization function. */
|
||||
_tx_timer_initialize();
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef TX_DISABLE_REDUNDANT_CLEARING
|
||||
|
||||
|
||||
/* Call the semaphore initialization function. */
|
||||
_tx_semaphore_initialize();
|
||||
|
||||
@@ -139,6 +144,6 @@ VOID _tx_initialize_high_level(VOID)
|
||||
|
||||
/* Call the mutex initialization function. */
|
||||
_tx_mutex_initialize();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -101,15 +101,18 @@ VOID _tx_initialize_kernel_enter(VOID)
|
||||
/* Call any port specific preprocessing. */
|
||||
TX_PORT_SPECIFIC_PRE_INITIALIZATION
|
||||
|
||||
|
||||
/* Invoke the low-level initialization to handle all processor specific
|
||||
initialization issues. */
|
||||
_tx_initialize_low_level();
|
||||
|
||||
|
||||
/* Invoke the high-level initialization to exercise all of the
|
||||
ThreadX components and the application's initialization
|
||||
function. */
|
||||
_tx_initialize_high_level();
|
||||
|
||||
|
||||
/* Call any port specific post-processing. */
|
||||
TX_PORT_SPECIFIC_POST_INITIALIZATION
|
||||
}
|
||||
@@ -150,4 +153,3 @@ VOID _tx_initialize_kernel_enter(VOID)
|
||||
TX_SAFETY_CRITICAL_EXCEPTION(__FILE__, __LINE__, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -109,6 +109,19 @@ TX_THREAD *previous_thread;
|
||||
{
|
||||
#else
|
||||
|
||||
/* TX_NOT_INTERRUPTABLE path: the revalidation guards present in the
|
||||
interruptable path above (cleanup pointer, suspension sequence, NULL
|
||||
queue pointer, queue ID, and suspended count checks) are intentionally
|
||||
omitted here. Those guards exist to handle the race window that opens
|
||||
when the interruptable path calls TX_RESTORE before invoking cleanup,
|
||||
allowing another context to service or abort the suspension in between.
|
||||
In TX_NOT_INTERRUPTABLE mode the caller keeps interrupts disabled across
|
||||
the entire cleanup call, so that race window never exists. Additionally,
|
||||
every path that resumes a suspended thread (tx_queue_send, tx_queue_receive,
|
||||
tx_queue_flush, tx_queue_delete) clears tx_thread_suspend_cleanup before
|
||||
calling _tx_thread_system_ni_resume, making a double-cleanup impossible
|
||||
under the NI serialisation guarantee. */
|
||||
|
||||
/* Setup pointer to queue control block. */
|
||||
queue_ptr = TX_VOID_TO_QUEUE_POINTER_CONVERT(thread_ptr -> tx_thread_suspend_control_block);
|
||||
#endif
|
||||
|
||||
@@ -245,6 +245,7 @@ UINT status;
|
||||
do
|
||||
{
|
||||
|
||||
|
||||
/* Create the system timer thread. */
|
||||
status = _tx_thread_create(&_tx_timer_thread,
|
||||
TX_CONST_CHAR_TO_CHAR_POINTER_CONVERT("System Timer Thread"),
|
||||
@@ -253,6 +254,7 @@ UINT status;
|
||||
_tx_timer_stack_start, _tx_timer_stack_size,
|
||||
_tx_timer_priority, _tx_timer_priority, TX_NO_TIME_SLICE, TX_DONT_START);
|
||||
|
||||
|
||||
#ifdef TX_SAFETY_CRITICAL
|
||||
|
||||
/* Check return from thread create - if an error is detected throw an exception. */
|
||||
@@ -295,4 +297,3 @@ UINT status;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ TX_TRACE_OBJECT_ENTRY *entry_ptr;
|
||||
/* Trace buffer is enabled, proceed. */
|
||||
|
||||
/* Pickup the total entries. */
|
||||
entries = _tx_trace_total_registry_entries;
|
||||
entries = (UINT) _tx_trace_total_registry_entries;
|
||||
|
||||
/* Determine if there are available entries in the registry. */
|
||||
if (_tx_trace_available_registry_entries != ((ULONG) 0))
|
||||
@@ -98,7 +98,7 @@ TX_TRACE_OBJECT_ENTRY *entry_ptr;
|
||||
loop_break = TX_FALSE;
|
||||
|
||||
/* Loop to find available entry. */
|
||||
i = _tx_trace_registry_search_start;
|
||||
i = (UINT) _tx_trace_registry_search_start;
|
||||
do
|
||||
{
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ TX_TRACE_OBJECT_ENTRY *entry_ptr;
|
||||
/* Registry is setup, proceed. */
|
||||
|
||||
/* Pickup the total entries. */
|
||||
entries = _tx_trace_total_registry_entries;
|
||||
entries = (UINT) _tx_trace_total_registry_entries;
|
||||
|
||||
/* Loop to find available entry. */
|
||||
for (i = ((ULONG) 0); i < entries; i++)
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
function(target_sources_if_not_overridden filename)
|
||||
list(FIND TX_SRC_OVERRIDES ${filename} OVERRIDE_FOUND)
|
||||
if( OVERRIDE_FOUND EQUAL -1 )
|
||||
# message(STATUS "** Using original ${filename} from common_smp/src **")
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/src/${filename})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# These files can be overridden by setting them in the variable list named TX_SRC_OVERRIDES
|
||||
target_sources_if_not_overridden("tx_thread_delete.c")
|
||||
target_sources_if_not_overridden("tx_thread_reset.c")
|
||||
|
||||
target_sources(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
# {{BEGIN_TARGET_SOURCES}}
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_allocate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_cleanup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_pool_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_block_release.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_allocate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_cleanup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_pool_search.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_byte_release.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_cleanup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_set_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_event_flags_set.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_high_level.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_kernel_enter.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_initialize_kernel_setup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_misra.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_cleanup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_priority_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_mutex_put.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_cleanup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_flush.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_front_send.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_receive.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_send_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_queue_send.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_ceiling_put.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_cleanup.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_put_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_semaphore_put.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_entry_exit_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_identify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_preemption_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_priority_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_relinquish.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_reset.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_resume.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_shell_entry.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_sleep.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_core_exclude_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_core_exclude.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_current_state_set.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_debug_entry_insert.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_high_level_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_rebalance_execute_list.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_smp_utilities.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_stack_analyze.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_stack_error_handler.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_stack_error_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_suspend.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_system_preempt_check.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_system_resume.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_system_suspend.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_terminate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_time_slice_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_time_slice.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_timeout.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_thread_wait_abort.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_time_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_time_set.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_activate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_deactivate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_expiration_process.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_performance_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_performance_system_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_smp_core_exclude_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_smp_core_exclude.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_system_activate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_system_deactivate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_timer_thread_entry.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_buffer_full_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_disable.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_enable.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_event_filter.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_event_unfilter.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_initialize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_interrupt_control.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_isr_enter_insert.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_isr_exit_insert.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_object_register.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_object_unregister.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/tx_trace_user_event_insert.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_block_allocate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_block_pool_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_block_pool_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_block_pool_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_block_pool_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_block_release.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_byte_allocate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_byte_pool_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_byte_pool_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_byte_pool_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_byte_pool_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_byte_release.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_event_flags_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_event_flags_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_event_flags_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_event_flags_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_event_flags_set_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_event_flags_set.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_mutex_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_mutex_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_mutex_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_mutex_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_mutex_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_mutex_put.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_flush.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_front_send.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_receive.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_send_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_queue_send.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_ceiling_put.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_prioritize.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_put_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_semaphore_put.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_entry_exit_notify.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_info_get.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_preemption_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_priority_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_relinquish.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_reset.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_resume.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_suspend.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_terminate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_time_slice_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_thread_wait_abort.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_timer_activate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_timer_change.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_timer_create.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_timer_deactivate.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_timer_delete.c
|
||||
${CMAKE_CURRENT_LIST_DIR}/src/txe_timer_info_get.c
|
||||
# {{END_TARGET_SOURCES}}
|
||||
)
|
||||
|
||||
# Add the Common/inc directory to the project include list
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
SYSTEM
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_LIST_DIR}/inc
|
||||
)
|
||||
@@ -960,4 +960,3 @@ VOID _tx_thread_system_ni_resume(TX_THREAD *thread_ptr)
|
||||
_tx_thread_system_resume(thread_ptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -984,4 +984,3 @@ VOID _tx_thread_system_ni_suspend(TX_THREAD *thread_ptr, ULONG timeout)
|
||||
_tx_thread_system_suspend(thread_ptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
.file "vectors.s"
|
||||
.section .ivt,text
|
||||
|
||||
@@ -308,7 +308,7 @@ void _tx_initialize_start_interrupts(void);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARCv2_EM/MetaWare Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARCv2_EM/MetaWare Version 6.5.1.202602 *";
|
||||
#else
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
extern CHAR _tx_version_id[100];
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
.file "vectors.s"
|
||||
.section .ivt,text
|
||||
|
||||
@@ -322,7 +322,7 @@ VOID tx_thread_register_bank_assign(VOID *thread_ptr, UINT register_bank);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARC_HS/MetaWare Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARC_HS/MetaWare Version 6.5.1.202602 *";
|
||||
#else
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
extern CHAR _tx_version_id[100];
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -311,7 +311,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM11/AC5 Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM11/AC5 Version 6.5.1.202602 *";
|
||||
#else
|
||||
extern CHAR _tx_version_id[];
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -300,7 +300,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM11/GNU Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM11/GNU Version 6.5.1.202602 *";
|
||||
#else
|
||||
extern CHAR _tx_version_id[];
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -366,7 +366,7 @@ void _tx_thread_interrupt_restore(UINT old_posture);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM11/IAR Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM11/IAR Version 6.5.1.202602 *";
|
||||
#else
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
extern CHAR _tx_version_id[100];
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -313,7 +313,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM9/AC5 Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM9/AC5 Version 6.5.1.202602 *";
|
||||
#else
|
||||
extern CHAR _tx_version_id[];
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -300,7 +300,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM9/GNU Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM9/GNU Version 6.5.1.202602 *";
|
||||
#else
|
||||
extern CHAR _tx_version_id[];
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
|
||||
@@ -366,7 +366,7 @@ void _tx_thread_interrupt_restore(UINT old_posture);
|
||||
|
||||
#ifdef TX_THREAD_INIT
|
||||
CHAR _tx_version_id[] =
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM9/IAR Version 6.5.0.202601 *";
|
||||
"(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARM9/IAR Version 6.5.1.202602 *";
|
||||
#else
|
||||
#ifdef TX_MISRA_ENABLE
|
||||
extern CHAR _tx_version_id[100];
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
TMS320C66xx KeyStone Multicore DSP Software Development Kit (SDK). Rev 2A.
|
||||
Definitions, macros and API functions for DSP Environment.
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
TORNADO AMC modules Software Development Kit (SDK). Rev 4A.
|
||||
General definitions and API functions.
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
TORNADO AMC modules Software Development Kit (SDK). Rev 4A.
|
||||
Definitions, macros and API functions for DSP Environment.
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/*
|
||||
* board_setup.c
|
||||
*
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/*
|
||||
* board_setup.h
|
||||
*
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
/***************************************************************************/
|
||||
/* Copyright (c) 2024 Microsoft Corporation */
|
||||
/* Copyright (c) 2026 Eclipse ThreadX contributors */
|
||||
/* */
|
||||
/* This program and the accompanying materials are made available under */
|
||||
/* the terms of the MIT License which is available at */
|
||||
/* https://opensource.org/licenses/MIT. */
|
||||
/* */
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
/***************************************************************************/
|
||||
|
||||
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
|
||||
threads of different priorities, using a message queue, semaphore, mutex, event flags group,
|
||||
byte pool, and block pool. */
|
||||
@@ -89,7 +100,7 @@ void tx_application_define(void *first_unused_memory)
|
||||
CHAR *pointer = TX_NULL;
|
||||
UINT status;
|
||||
|
||||
/* Enable event tracing using the global “trace_buffer” memory and supporting
|
||||
/* Enable event tracing using the global �trace_buffer� memory and supporting
|
||||
a maximum of TRACE_OBJECTS_COUNT ThreadX objects in the registry. */
|
||||
if ((status = tx_trace_enable(tx_trace_buffer, TRACE_BUFFER_SIZE, TRACE_OBJECTS_COUNT)) != TX_SUCCESS)
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user