Add rxv1, v2, v3 port: removed system state macro, added missing interrupt control defines, and added missing thread preemption logic.

This commit is contained in:
Yuxin Zhou
2022-02-01 23:21:49 -08:00
parent f7f0957188
commit fd403521e9
90 changed files with 600 additions and 165 deletions

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv1/CCRX */ /* tx_port.h RXv1/CCRX */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -50,6 +50,11 @@
/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ /* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
/* 10-15-2021 William E. Lamie Modified comment(s), */ /* 10-15-2021 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), removed */
/* system state macro, and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -80,6 +85,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -246,19 +257,6 @@ static void _tx_thread_system_return_inline(void)
} }
#ifndef TX_THREAD_GET_SYSTEM_STATE
#pragma inline_asm _get_psw
static UINT _get_psw(void){
MVFC PSW,R1 ;
}
extern volatile ULONG _tx_thread_system_state;
#define TX_THREAD_GET_SYSTEM_STATE() (_tx_thread_system_state | ((~_get_psw()) & (1u << 17u)))
#endif
/* Define the interrupt lockout macros for each ThreadX object. */ /* Define the interrupt lockout macros for each ThreadX object. */
#define TX_BLOCK_POOL_DISABLE TX_DISABLE #define TX_BLOCK_POOL_DISABLE TX_DISABLE
@@ -273,7 +271,7 @@ extern volatile ULONG _tx_thread_system_state;
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/CCRX Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/CCRX Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -150,6 +150,11 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added
missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_thread_context_restore.src Removed unnecessary stack type placement tx_thread_context_restore.src Removed unnecessary stack type placement
tx_thread_schedule.src Removed unnecessary stack type checking tx_thread_schedule.src Removed unnecessary stack type checking
@@ -158,7 +163,7 @@ information associated with this specific port of ThreadX:
08-02-2021 Initial ThreadX release for the RXv1 using CC-RXX tools, version 6.1.8 08-02-2021 Initial ThreadX release for the RXv1 using CC-RXX tools, version 6.1.8
Copyright(c) 1996-2021 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv1/CCRX */ ;/* _tx_initialize_low_level RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv1/CCRX */ ;/* _tx_thread_context_restore RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +82,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv1/CCRX */ ;/* _tx_thread_context_save RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -35,7 +35,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv1/CCRX */ ;/* _tx_thread_interrupt_control RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv1/CCRX */ ;/* _tx_thread_schedule RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -80,6 +80,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type checking, */ ;/* type checking, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv1/CCRX */ ;/* _tx_thread_stack_build RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv1/CCRX */ ;/* _tx_thread_system_return RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* removed unused code, */ ;/* removed unused code, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -32,6 +32,9 @@
; ;
;Define Assembly language external references... ;Define Assembly language external references...
; ;
SWI0 .EQU 872E0H
.GLB __tx_timer_time_slice .GLB __tx_timer_time_slice
.GLB __tx_timer_system_clock .GLB __tx_timer_system_clock
.GLB __tx_timer_current_ptr .GLB __tx_timer_current_ptr
@@ -43,6 +46,9 @@
.GLB __tx_thread_context_save .GLB __tx_thread_context_save
.GLB __tx_thread_time_slice .GLB __tx_thread_time_slice
.GLB __tx_thread_context_restore .GLB __tx_thread_context_restore
.GLB __tx_thread_preempt_disable
.GLB __tx_thread_execute_ptr
.GLB __tx_thread_current_ptr
; ;
.SECTION P,CODE .SECTION P,CODE
;/**************************************************************************/ ;/**************************************************************************/
@@ -50,7 +56,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv1/CCRX */ ;/* _tx_timer_interrupt RXv1/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -89,6 +95,10 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)
@@ -236,6 +246,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv1/GNURX */ /* tx_port.h RXv1/GNURX */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -50,6 +50,10 @@
/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ /* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
/* 10-15-2021 William E. Lamie Modified comment(s), */ /* 10-15-2021 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -83,6 +87,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -257,7 +267,7 @@ static void _tx_thread_system_return_inline(void)
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/GNURX Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/GNURX Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -146,6 +146,10 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Added missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_thread_context_restore.s Removed unnecessary stack type placement tx_thread_context_restore.s Removed unnecessary stack type placement
tx_thread_schedule.s Removed unnecessary stack type checking tx_thread_schedule.s Removed unnecessary stack type checking
@@ -154,7 +158,7 @@ information associated with this specific port of ThreadX:
08-02-2021 Initial ThreadX release for the RXv1 using GNURX tools, version 6.1.8 08-02-2021 Initial ThreadX release for the RXv1 using GNURX tools, version 6.1.8
Copyright(c) 1996-2021 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv1/GNURX */ ;/* _tx_initialize_low_level RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
.global __tx_initialize_low_level .global __tx_initialize_low_level

View File

@@ -46,7 +46,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv1/GNURX */ ;/* _tx_thread_context_restore RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +83,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -30,7 +30,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv1/GNURX */ ;/* _tx_thread_context_save RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -64,6 +64,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -26,7 +26,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv1/GNURX */ ;/* _tx_thread_interrupt_control RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -59,6 +59,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv1/GNURX */ ;/* _tx_thread_schedule RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type checking, */ ;/* type checking, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -26,7 +26,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv1/GNURX */ ;/* _tx_thread_stack_build RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -63,6 +63,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -30,7 +30,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv1/GNURX */ ;/* _tx_thread_system_return RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -66,6 +66,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* removed unused code, */ ;/* removed unused code, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -20,6 +20,7 @@
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
.equ SWI0, 872E0H
.global __tx_timer_time_slice .global __tx_timer_time_slice
.global __tx_timer_system_clock .global __tx_timer_system_clock
.global __tx_timer_current_ptr .global __tx_timer_current_ptr
@@ -31,6 +32,9 @@
.global __tx_thread_context_save .global __tx_thread_context_save
.global __tx_thread_time_slice .global __tx_thread_time_slice
.global __tx_thread_context_restore .global __tx_thread_context_restore
.global __tx_thread_preempt_disable
.global __tx_thread_execute_ptr
.global __tx_thread_current_ptr
.SECTION P,CODE .SECTION P,CODE
;/**************************************************************************/ ;/**************************************************************************/
@@ -38,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv1/GNURX */ ;/* _tx_timer_interrupt RXv1/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -77,6 +81,10 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)
@@ -224,6 +232,24 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv1/IAR */ /* tx_port.h RXv1/IAR */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -50,6 +50,11 @@
/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ /* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
/* 10-15-2021 William E. Lamie Modified comment(s), */ /* 10-15-2021 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), removed */
/* system state macro, and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -83,6 +88,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -243,14 +254,6 @@ static void _tx_thread_system_return_inline(void)
#endif #endif
#ifndef TX_THREAD_GET_SYSTEM_STATE
extern volatile ULONG _tx_thread_system_state;
#define TX_THREAD_GET_SYSTEM_STATE() (_tx_thread_system_state | ((~__get_PSW_register()) & (1u << 17u)))
#endif
/* Define the interrupt lockout macros for each ThreadX object. */ /* Define the interrupt lockout macros for each ThreadX object. */
#define TX_BLOCK_POOL_DISABLE TX_DISABLE #define TX_BLOCK_POOL_DISABLE TX_DISABLE
@@ -265,7 +268,7 @@ extern volatile ULONG _tx_thread_system_state;
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/IAR Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/IAR Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -143,6 +143,11 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added
missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_thread_context_restore.s Removed unnecessary stack type placement tx_thread_context_restore.s Removed unnecessary stack type placement
tx_thread_schedule.s Removed unnecessary stack type checking tx_thread_schedule.s Removed unnecessary stack type checking
@@ -151,7 +156,7 @@ information associated with this specific port of ThreadX:
08-02-2021 Initial ThreadX release for the RXv1using IAR tools, version 6.1.8 08-02-2021 Initial ThreadX release for the RXv1using IAR tools, version 6.1.8
Copyright(c) 1996-2021 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv1/IAR */ ;/* _tx_initialize_low_level RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_initialize_low_level public __tx_initialize_low_level

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv1/IAR */ ;/* _tx_thread_context_restore RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_thread_context_restore public __tx_thread_context_restore

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv1/IAR */ ;/* _tx_thread_context_save RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -63,6 +63,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -26,7 +26,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv1/IAR */ ;/* _tx_thread_interrupt_control RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -59,6 +59,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv1/IAR */ ;/* _tx_thread_schedule RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type checking, */ ;/* type checking, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -28,7 +28,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv1/IAR */ ;/* _tx_thread_stack_build RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,7 +65,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -27,7 +27,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv1/IAR */ ;/* _tx_thread_system_return RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -62,6 +62,8 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -20,6 +20,8 @@
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
SWI0 EQU 0x872E0
extern __tx_timer_expiration_process extern __tx_timer_expiration_process
extern __tx_timer_system_clock extern __tx_timer_system_clock
extern __tx_timer_expired_time_slice extern __tx_timer_expired_time_slice
@@ -29,6 +31,9 @@
extern __tx_timer_time_slice extern __tx_timer_time_slice
extern __tx_timer_list_end extern __tx_timer_list_end
extern __tx_thread_time_slice extern __tx_thread_time_slice
extern __tx_thread_preempt_disable
extern __tx_thread_execute_ptr
extern __tx_thread_current_ptr
section .text:CODE:ROOT section .text:CODE:ROOT
@@ -37,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv1/IAR */ ;/* _tx_timer_interrupt RXv1/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +81,10 @@
;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */ ;/* 08-02-2021 William E. Lamie Initial Version 6.1.8 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
@@ -222,6 +231,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv2/CCRX */ /* tx_port.h RXv2/CCRX */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -52,6 +52,11 @@
/* resulting in version 6.1.7 */ /* resulting in version 6.1.7 */
/* 10-15-2021 William E. Lamie Modified comment(s), */ /* 10-15-2021 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), removed */
/* system state macro, and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -82,6 +87,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -248,19 +259,6 @@ static void _tx_thread_system_return_inline(void)
} }
#ifndef TX_THREAD_GET_SYSTEM_STATE
#pragma inline_asm _get_psw
static UINT _get_psw(void){
MVFC PSW,R1 ;
}
extern volatile ULONG _tx_thread_system_state;
#define TX_THREAD_GET_SYSTEM_STATE() (_tx_thread_system_state | ((~_get_psw()) & (1u << 17u)))
#endif
/* Define the interrupt lockout macros for each ThreadX object. */ /* Define the interrupt lockout macros for each ThreadX object. */
#define TX_BLOCK_POOL_DISABLE TX_DISABLE #define TX_BLOCK_POOL_DISABLE TX_DISABLE
@@ -275,7 +273,7 @@ extern volatile ULONG _tx_thread_system_state;
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/CCRX Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/CCRX Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -153,6 +153,11 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added
missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_thread_context_restore.src Removed unnecessary stack type placement tx_thread_context_restore.src Removed unnecessary stack type placement
tx_thread_schedule.src Removed unnecessary stack type checking tx_thread_schedule.src Removed unnecessary stack type checking
@@ -167,7 +172,7 @@ information associated with this specific port of ThreadX:
12-31-2020 Initial ThreadX release for the RXv2 using CC-RXX tools, version 6.1.3 12-31-2020 Initial ThreadX release for the RXv2 using CC-RXX tools, version 6.1.3
Copyright(c) 1996-2020 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv2/CCRX */ ;/* _tx_initialize_low_level RXv2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,7 +70,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv2/CCRX */ ;/* _tx_thread_context_restore RXv2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +82,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv2/CCRX */ ;/* _tx_thread_context_save RXv2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -35,7 +35,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXc2/CCRX */ ;/* _tx_thread_interrupt_control RXc2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv2/CCRX */ ;/* _tx_thread_schedule RXv2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -80,6 +80,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type checking, */ ;/* type checking, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXc2/CCRX */ ;/* _tx_thread_stack_build RXc2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv2/CCRX */ ;/* _tx_thread_system_return RXv2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* removed unused code, */ ;/* removed unused code, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -32,6 +32,9 @@
; ;
;Define Assembly language external references... ;Define Assembly language external references...
; ;
SWI0 .EQU 872E0H
.GLB __tx_timer_time_slice .GLB __tx_timer_time_slice
.GLB __tx_timer_system_clock .GLB __tx_timer_system_clock
.GLB __tx_timer_current_ptr .GLB __tx_timer_current_ptr
@@ -43,6 +46,9 @@
.GLB __tx_thread_context_save .GLB __tx_thread_context_save
.GLB __tx_thread_time_slice .GLB __tx_thread_time_slice
.GLB __tx_thread_context_restore .GLB __tx_thread_context_restore
.GLB __tx_thread_preempt_disable
.GLB __tx_thread_execute_ptr
.GLB __tx_thread_current_ptr
; ;
.SECTION P,CODE .SECTION P,CODE
;/**************************************************************************/ ;/**************************************************************************/
@@ -50,7 +56,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv2/CCRX */ ;/* _tx_timer_interrupt RXv2/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -89,6 +95,10 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)
@@ -236,6 +246,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv2/GNURX */ /* tx_port.h RXv2/GNURX */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -52,6 +52,10 @@
/* resulting in version 6.1.7 */ /* resulting in version 6.1.7 */
/* 10-15-2021 William E. Lamie Modified comment(s), */ /* 10-15-2021 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -85,6 +89,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -259,7 +269,7 @@ static void _tx_thread_system_return_inline(void)
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/GNURX Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/GNURX Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -149,6 +149,10 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Added missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_thread_context_restore.s Removed unnecessary stack type placement tx_thread_context_restore.s Removed unnecessary stack type placement
tx_thread_schedule.s Removed unnecessary stack type checking tx_thread_schedule.s Removed unnecessary stack type checking
@@ -165,7 +169,7 @@ information associated with this specific port of ThreadX:
12-31-2020 Initial ThreadX release for the RXv2 using GNURX tools, version 6.1.3 12-31-2020 Initial ThreadX release for the RXv2 using GNURX tools, version 6.1.3
Copyright(c) 1996-2020 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv2/GNURX */ ;/* _tx_initialize_low_level RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
.global __tx_initialize_low_level .global __tx_initialize_low_level

View File

@@ -46,7 +46,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv2/GNURX */ ;/* _tx_thread_context_restore RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +83,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv2/GNURX */ ;/* _tx_thread_context_save RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -35,7 +35,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv2/GNURX */ ;/* _tx_thread_interrupt_control RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv2/GNURX */ ;/* _tx_thread_schedule RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -80,6 +80,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type checking, */ ;/* type checking, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv2/GNURX */ ;/* _tx_thread_stack_build RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -30,7 +30,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv2/GNURX */ ;/* _tx_thread_system_return RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -66,6 +66,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* removed unused code, */ ;/* removed unused code, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -32,6 +32,8 @@
; ;
;Define Assembly language external references... ;Define Assembly language external references...
; ;
.equ SWI0, 872E0H
.global __tx_timer_time_slice .global __tx_timer_time_slice
.global __tx_timer_system_clock .global __tx_timer_system_clock
.global __tx_timer_current_ptr .global __tx_timer_current_ptr
@@ -43,6 +45,9 @@
.global __tx_thread_context_save .global __tx_thread_context_save
.global __tx_thread_time_slice .global __tx_thread_time_slice
.global __tx_thread_context_restore .global __tx_thread_context_restore
.global __tx_thread_preempt_disable
.global __tx_thread_execute_ptr
.global __tx_thread_current_ptr
; ;
.SECTION P,CODE .SECTION P,CODE
;/**************************************************************************/ ;/**************************************************************************/
@@ -50,7 +55,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv2/GNURX */ ;/* _tx_timer_interrupt RXv2/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -89,6 +94,10 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)
@@ -236,6 +245,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv2/IAR */ /* tx_port.h RXv2/IAR */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -52,6 +52,11 @@
/* resulting in version 6.1.7 */ /* resulting in version 6.1.7 */
/* 10-15-2021 William E. Lamie Modified comment(s), */ /* 10-15-2021 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), removed */
/* system state macro, and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -85,6 +90,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -244,15 +255,6 @@ static void _tx_thread_system_return_inline(void)
#endif #endif
#ifndef TX_THREAD_GET_SYSTEM_STATE
extern volatile ULONG _tx_thread_system_state;
#define TX_THREAD_GET_SYSTEM_STATE() (_tx_thread_system_state | ((~__get_PSW_register()) & (1u << 17u)))
#endif
/* Define the interrupt lockout macros for each ThreadX object. */ /* Define the interrupt lockout macros for each ThreadX object. */
#define TX_BLOCK_POOL_DISABLE TX_DISABLE #define TX_BLOCK_POOL_DISABLE TX_DISABLE
@@ -267,7 +269,7 @@ extern volatile ULONG _tx_thread_system_state;
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/IAR Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/IAR Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -146,6 +146,11 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added
missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_thread_context_restore.s Removed unnecessary stack type placement tx_thread_context_restore.s Removed unnecessary stack type placement
tx_thread_schedule.s Removed unnecessary stack type checking tx_thread_schedule.s Removed unnecessary stack type checking
@@ -160,7 +165,7 @@ information associated with this specific port of ThreadX:
12-31-2020 Initial ThreadX release for the RXv2using IAR tools, version 6.1.3 12-31-2020 Initial ThreadX release for the RXv2using IAR tools, version 6.1.3
Copyright(c) 1996-2020 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv2/IAR */ ;/* _tx_initialize_low_level RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_initialize_low_level public __tx_initialize_low_level

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv2/IAR */ ;/* _tx_thread_context_restore RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +82,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_thread_context_restore public __tx_thread_context_restore

View File

@@ -39,7 +39,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv2/IAR */ ;/* _tx_thread_context_save RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv2/IAR */ ;/* _tx_thread_interrupt_control RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv2/IAR */ ;/* _tx_thread_schedule RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -80,6 +80,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type checking, */ ;/* type checking, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -28,7 +28,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv2/IAR */ ;/* _tx_thread_stack_build RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* removed unnecessary stack */ ;/* removed unnecessary stack */
;/* type placement, */ ;/* type placement, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_thread_stack_build public __tx_thread_stack_build

View File

@@ -27,7 +27,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv2/IAR */ ;/* _tx_thread_system_return RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -62,6 +62,8 @@
;/* 12-31-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-31-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -20,6 +20,8 @@
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
SWI0 EQU 0x872E0
extern __tx_timer_expiration_process extern __tx_timer_expiration_process
extern __tx_timer_system_clock extern __tx_timer_system_clock
extern __tx_timer_expired_time_slice extern __tx_timer_expired_time_slice
@@ -29,6 +31,9 @@
extern __tx_timer_time_slice extern __tx_timer_time_slice
extern __tx_timer_list_end extern __tx_timer_list_end
extern __tx_thread_time_slice extern __tx_thread_time_slice
extern __tx_thread_preempt_disable
extern __tx_thread_execute_ptr
extern __tx_thread_current_ptr
section .text:CODE:ROOT section .text:CODE:ROOT
@@ -37,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv2/IAR */ ;/* _tx_timer_interrupt RXv2/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +81,10 @@
;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */ ;/* 12-30-2020 William E. Lamie Initial Version 6.1.3 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
@@ -222,6 +231,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv3/CCRX */ /* tx_port.h RXv3/CCRX */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -51,6 +51,11 @@
/* 10-15-2021 William E. Lamie Modified comment(s), and */ /* 10-15-2021 William E. Lamie Modified comment(s), and */
/* added FPU support, */ /* added FPU support, */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), removed */
/* system state macro, and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -81,6 +86,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -247,19 +258,6 @@ static void _tx_thread_system_return_inline(void)
} }
#ifndef TX_THREAD_GET_SYSTEM_STATE
#pragma inline_asm _get_psw
static UINT _get_psw(void){
MVFC PSW,R1 ;
}
extern volatile ULONG _tx_thread_system_state;
#define TX_THREAD_GET_SYSTEM_STATE() (_tx_thread_system_state | ((~_get_psw()) & (1u << 17u)))
#endif
/* Define the interrupt lockout macros for each ThreadX object. */ /* Define the interrupt lockout macros for each ThreadX object. */
#define TX_BLOCK_POOL_DISABLE TX_DISABLE #define TX_BLOCK_POOL_DISABLE TX_DISABLE
@@ -279,7 +277,7 @@ void tx_thread_fpu_disable(void);
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/CCRX Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/CCRX Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -209,6 +209,11 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added
missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_port.h Added FPU support tx_port.h Added FPU support
tx_thread_context_restore.s Added FPU support tx_thread_context_restore.s Added FPU support
@@ -218,7 +223,7 @@ information associated with this specific port of ThreadX:
06-02-2021 Initial ThreadX release for the RXv3 using CC-RXX tools, version 6.1.7 06-02-2021 Initial ThreadX release for the RXv3 using CC-RXX tools, version 6.1.7
Copyright(c) 1996-2021 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv3/CCRX */ ;/* _tx_initialize_low_level RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv3/CCRX */ ;/* _tx_thread_context_restore RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -81,6 +81,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* added FPU support, */ ;/* added FPU support, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv3/CCRX */ ;/* _tx_thread_context_save RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -35,7 +35,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv3/CCRX */ ;/* _tx_thread_interrupt_control RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv3/CCRX */ ;/* _tx_thread_schedule RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -79,6 +79,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* added FPU support, */ ;/* added FPU support, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv3/CCRX */ ;/* _tx_thread_stack_build RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv3/CCRX */ ;/* _tx_thread_system_return RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* removed unused code, */ ;/* removed unused code, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -32,6 +32,9 @@
; ;
;Define Assembly language external references... ;Define Assembly language external references...
; ;
SWI0 .EQU 872E0H
.GLB __tx_timer_time_slice .GLB __tx_timer_time_slice
.GLB __tx_timer_system_clock .GLB __tx_timer_system_clock
.GLB __tx_timer_current_ptr .GLB __tx_timer_current_ptr
@@ -43,6 +46,9 @@
.GLB __tx_thread_context_save .GLB __tx_thread_context_save
.GLB __tx_thread_time_slice .GLB __tx_thread_time_slice
.GLB __tx_thread_context_restore .GLB __tx_thread_context_restore
.GLB __tx_thread_preempt_disable
.GLB __tx_thread_execute_ptr
.GLB __tx_thread_current_ptr
; ;
.SECTION P,CODE .SECTION P,CODE
;/**************************************************************************/ ;/**************************************************************************/
@@ -50,7 +56,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv3/CCRX */ ;/* _tx_timer_interrupt RXv3/CCRX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -89,6 +95,10 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)
@@ -236,6 +246,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv3/GNURX */ /* tx_port.h RXv3/GNURX */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -51,6 +51,10 @@
/* 10-15-2021 William E. Lamie Modified comment(s), and */ /* 10-15-2021 William E. Lamie Modified comment(s), and */
/* added FPU support, */ /* added FPU support, */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -84,6 +88,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -263,7 +273,7 @@ void tx_thread_fpu_disable(void);
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/GNURX Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/GNURX Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -203,6 +203,10 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Added missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_port.h Added FPU support tx_port.h Added FPU support
tx_thread_context_restore.s Added FPU support tx_thread_context_restore.s Added FPU support
@@ -212,7 +216,7 @@ information associated with this specific port of ThreadX:
06-02-2021 Initial ThreadX release for the RXv3 using GNURX tools, version 6.1.7 06-02-2021 Initial ThreadX release for the RXv3 using GNURX tools, version 6.1.7
Copyright(c) 1996-2021 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv3/GNURX */ ;/* _tx_initialize_low_level RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
.global __tx_initialize_low_level .global __tx_initialize_low_level

View File

@@ -46,7 +46,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv3/GNURX */ ;/* _tx_thread_context_restore RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +82,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* added FPU support, */ ;/* added FPU support, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv3/GNURX */ ;/* _tx_thread_context_save RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -35,7 +35,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv3/GNURX */ ;/* _tx_thread_interrupt_control RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv3/GNURX */ ;/* _tx_thread_schedule RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -79,6 +79,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* added FPU support, */ ;/* added FPU support, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv3/GNURX */ ;/* _tx_thread_stack_build RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -40,7 +40,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv3/GNURX */ ;/* _tx_thread_system_return RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* removed unused code, */ ;/* removed unused code, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -32,6 +32,7 @@
; ;
;Define Assembly language external references... ;Define Assembly language external references...
; ;
.equ SWI0, 872E0H
.global __tx_timer_time_slice .global __tx_timer_time_slice
.global __tx_timer_system_clock .global __tx_timer_system_clock
.global __tx_timer_current_ptr .global __tx_timer_current_ptr
@@ -43,6 +44,9 @@
.global __tx_thread_context_save .global __tx_thread_context_save
.global __tx_thread_time_slice .global __tx_thread_time_slice
.global __tx_thread_context_restore .global __tx_thread_context_restore
.global __tx_thread_preempt_disable
.global __tx_thread_execute_ptr
.global __tx_thread_current_ptr
; ;
.SECTION P,CODE .SECTION P,CODE
;/**************************************************************************/ ;/**************************************************************************/
@@ -50,7 +54,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv3/GNURX */ ;/* _tx_timer_interrupt RXv3/GNURX */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -89,6 +93,10 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)
@@ -236,6 +244,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration:

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_port.h RXv3/IAR */ /* tx_port.h RXv3/IAR */
/* 6.1.9 */ /* 6.1.10 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -51,6 +51,11 @@
/* 10-15-2021 William E. Lamie Modified comment(s), and */ /* 10-15-2021 William E. Lamie Modified comment(s), and */
/* added FPU support, */ /* added FPU support, */
/* resulting in version 6.1.9 */ /* resulting in version 6.1.9 */
/* 01-31-2022 William E. Lamie Modified comment(s), removed */
/* system state macro, and */
/* added missing interrupt */
/* control defines, */
/* resulting in version 6.1.10 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -84,6 +89,12 @@ typedef short SHORT;
typedef unsigned short USHORT; typedef unsigned short USHORT;
/* Define interrupt control options. */
#define TX_INT_DISABLE 0x00000000
#define TX_INT_ENABLE 0x00010000
/* Define the priority levels for ThreadX. Legal values range /* Define the priority levels for ThreadX. Legal values range
from 32 to 1024 and MUST be evenly divisible by 32. */ from 32 to 1024 and MUST be evenly divisible by 32. */
@@ -244,14 +255,6 @@ static void _tx_thread_system_return_inline(void)
#endif #endif
#ifndef TX_THREAD_GET_SYSTEM_STATE
extern volatile ULONG _tx_thread_system_state;
#define TX_THREAD_GET_SYSTEM_STATE() (_tx_thread_system_state | ((~__get_PSW_register()) & (1u << 17u)))
#endif
/* Define the interrupt lockout macros for each ThreadX object. */ /* Define the interrupt lockout macros for each ThreadX object. */
#define TX_BLOCK_POOL_DISABLE TX_DISABLE #define TX_BLOCK_POOL_DISABLE TX_DISABLE
@@ -271,7 +274,7 @@ void tx_thread_fpu_disable(void);
#ifdef TX_THREAD_INIT #ifdef TX_THREAD_INIT
CHAR _tx_version_id[] = CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/IAR Version 6.1.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/IAR Version 6.1.10 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -203,6 +203,11 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX: information associated with this specific port of ThreadX:
01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added
missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic
10-15-2021 Release 6.1.9 changes: 10-15-2021 Release 6.1.9 changes:
tx_port.h Added FPU support tx_port.h Added FPU support
tx_thread_context_restore.s Added FPU support tx_thread_context_restore.s Added FPU support
@@ -211,7 +216,7 @@ information associated with this specific port of ThreadX:
06-02-2021 Initial ThreadX release for the RXv3using IAR tools, version 6.1.7 06-02-2021 Initial ThreadX release for the RXv3using IAR tools, version 6.1.7
Copyright(c) 1996-2021 Microsoft Corporation Copyright(c) 1996-2022 Microsoft Corporation
https://azure.com/rtos https://azure.com/rtos

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv3/IAR */ ;/* _tx_initialize_low_level RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_initialize_low_level public __tx_initialize_low_level

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv3/IAR */ ;/* _tx_thread_context_restore RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -81,6 +81,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* added FPU support, */ ;/* added FPU support, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
public __tx_thread_context_restore public __tx_thread_context_restore

View File

@@ -39,7 +39,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save RXv3/IAR */ ;/* _tx_thread_context_save RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control RXv3/IAR */ ;/* _tx_thread_interrupt_control RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv3/IAR */ ;/* _tx_thread_schedule RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -79,6 +79,8 @@
;/* 10-15-2021 William E. Lamie Modified comment(s), and */ ;/* 10-15-2021 William E. Lamie Modified comment(s), and */
;/* added FPU support, */ ;/* added FPU support, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -28,7 +28,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv3/IAR */ ;/* _tx_thread_stack_build RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -63,6 +63,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -27,7 +27,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv3/IAR */ ;/* _tx_thread_system_return RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -62,6 +62,8 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -20,6 +20,8 @@
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
SWI0 EQU 0x872E0
extern __tx_timer_expiration_process extern __tx_timer_expiration_process
extern __tx_timer_system_clock extern __tx_timer_system_clock
extern __tx_timer_expired_time_slice extern __tx_timer_expired_time_slice
@@ -29,6 +31,10 @@
extern __tx_timer_time_slice extern __tx_timer_time_slice
extern __tx_timer_list_end extern __tx_timer_list_end
extern __tx_thread_time_slice extern __tx_thread_time_slice
extern __tx_thread_preempt_disable
extern __tx_thread_execute_ptr
extern __tx_thread_current_ptr
section .text:CODE:ROOT section .text:CODE:ROOT
@@ -37,7 +43,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv3/IAR */ ;/* _tx_timer_interrupt RXv3/IAR */
;/* 6.1.9 */ ;/* 6.1.10 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +82,10 @@
;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */ ;/* 06-02-2021 William E. Lamie Initial Version 6.1.7 */
;/* 10-15-2021 William E. Lamie Modified comment(s), */ ;/* 10-15-2021 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), and */
;/* added missing thread */
;/* preemption logic, */
;/* resulting in version 6.1.10 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
@@ -222,6 +232,23 @@ __tx_timer_dont_activate:
; _tx_thread_time_slice(); ; _tx_thread_time_slice();
BSR __tx_thread_time_slice ; Call time-slice processing BSR __tx_thread_time_slice ; Call time-slice processing
; /* Check if we must trigger a context switch. */
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R1
CMP #0, R1
BNE __tx_timer_not_ts_expiration ; Skip if prempt disabled.
MOV.L #__tx_thread_execute_ptr, R1
MOV.L [R1], R1
MOV.L #__tx_thread_current_ptr, R2
MOV.L [R2], R2
CMP R1, R2
BEQ __tx_timer_not_ts_expiration
MOV.L #SWI0, R1
MOV.L #1, [R1]
; } ; }
; ;
__tx_timer_not_ts_expiration: __tx_timer_not_ts_expiration: