diff options
| author | Frédéric Desbiens <[email protected]> | 2026-06-08 10:01:32 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-06-08 10:01:32 +0200 |
| commit | 87ab09cce305eb9cd4aacac4e8c62af72f665bff (patch) | |
| tree | dd062ebbea5235d1921c64b396bf7e4ce79e9e15 /common | |
| parent | 9ab0cf9683f832cdb48e2099533a5b06a3afcd64 (diff) | |
| parent | 730b61874bc5cf40768987605ae5187fde0fa1e2 (diff) | |
Merge pull request #544 from eclipse-threadx/devv6.5.1.202602_rel
Merging changes for the v.6.5.1.202602 release
Diffstat (limited to 'common')
| -rw-r--r-- | common/inc/tx_api.h | 4 | ||||
| -rw-r--r-- | common/inc/tx_user_sample.h | 2 | ||||
| -rw-r--r-- | common/src/tx_initialize_high_level.c | 7 | ||||
| -rw-r--r-- | common/src/tx_initialize_kernel_enter.c | 4 | ||||
| -rw-r--r-- | common/src/tx_queue_cleanup.c | 13 | ||||
| -rw-r--r-- | common/src/tx_timer_initialize.c | 3 | ||||
| -rw-r--r-- | common/src/tx_trace_object_register.c | 4 | ||||
| -rw-r--r-- | common/src/tx_trace_object_unregister.c | 2 |
8 files changed, 30 insertions, 9 deletions
diff --git a/common/inc/tx_api.h b/common/inc/tx_api.h index 7527c413..a57c5844 100644 --- a/common/inc/tx_api.h +++ b/common/inc/tx_api.h @@ -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 */ diff --git a/common/inc/tx_user_sample.h b/common/inc/tx_user_sample.h index 9621c30c..0733c16c 100644 --- a/common/inc/tx_user_sample.h +++ b/common/inc/tx_user_sample.h @@ -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 diff --git a/common/src/tx_initialize_high_level.c b/common/src/tx_initialize_high_level.c index 77bc3ed7..6de5eed5 100644 --- a/common/src/tx_initialize_high_level.c +++ b/common/src/tx_initialize_high_level.c @@ -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 } - diff --git a/common/src/tx_initialize_kernel_enter.c b/common/src/tx_initialize_kernel_enter.c index 20dc3017..bbb07332 100644 --- a/common/src/tx_initialize_kernel_enter.c +++ b/common/src/tx_initialize_kernel_enter.c @@ -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 } - diff --git a/common/src/tx_queue_cleanup.c b/common/src/tx_queue_cleanup.c index 05a423b3..90607183 100644 --- a/common/src/tx_queue_cleanup.c +++ b/common/src/tx_queue_cleanup.c @@ -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 diff --git a/common/src/tx_timer_initialize.c b/common/src/tx_timer_initialize.c index 2172b4a6..210888a1 100644 --- a/common/src/tx_timer_initialize.c +++ b/common/src/tx_timer_initialize.c @@ -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 } - diff --git a/common/src/tx_trace_object_register.c b/common/src/tx_trace_object_register.c index f7cd4a4a..741896a5 100644 --- a/common/src/tx_trace_object_register.c +++ b/common/src/tx_trace_object_register.c @@ -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 { diff --git a/common/src/tx_trace_object_unregister.c b/common/src/tx_trace_object_unregister.c index 2166c973..5d0330a5 100644 --- a/common/src/tx_trace_object_unregister.c +++ b/common/src/tx_trace_object_unregister.c @@ -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++) |
