Import RX port update for 6.1.11 release.

This commit is contained in:
Tiejun Zhou
2022-04-26 14:19:28 +08:00
parent cef9cb22a5
commit 408f9fa1b7
90 changed files with 620 additions and 182 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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -55,6 +55,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -271,7 +273,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/CCRX Version 6.1.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/CCRX Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -150,6 +150,9 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.src Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added tx_port.h Removed system state macro, and added
missing interrupt control defines missing interrupt control defines

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv1/CCRX */ ;/* _tx_initialize_low_level RXv1/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -72,6 +72,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv1/CCRX */ ;/* _tx_thread_context_restore RXv1/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -84,6 +84,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
.GLB __tx_thread_execute_ptr .GLB __tx_thread_execute_ptr
.GLB __tx_thread_current_ptr .GLB __tx_thread_current_ptr
.GLB __tx_timer_time_slice .GLB __tx_timer_time_slice
.IF TX_LOW_POWER==1
.GLB _tx_low_power_enter
.GLB _tx_low_power_exit
.GLB __tx_thread_preempt_disable
.ENDIF
; ;
.SECTION P,CODE .SECTION P,CODE
@@ -42,7 +47,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv1/CCRX */ ;/* _tx_thread_schedule RXv1/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +87,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -89,26 +97,48 @@
.GLB __tx_thread_schedule .GLB __tx_thread_schedule
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
SETPSW I ; Enable interrupts
CLRPSW I ; Disable interrupts
MOV.L [R1],R2 ; Pickup next thread to execute MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL? CMP #0,R2 ; Is it NULL?
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
.IF TX_LOW_POWER==1
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
.ENDIF
.IF TX_ENABLE_WAIT==1
WAIT ; Wait for interrupt
.ENDIF
.IF TX_LOW_POWER==1
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
.ENDIF
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv1/CCRX */ ;/* _tx_thread_stack_build RXv1/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -56,7 +56,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv1/CCRX */ ;/* _tx_timer_interrupt RXv1/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -99,6 +99,8 @@
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -54,6 +54,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -267,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 RXv1/GNURX Version 6.1.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/GNURX Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -146,9 +146,12 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.s Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Added missing interrupt control defines tx_port.h Added missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic tx_timer_interrupt.s 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

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv1/GNURX */ ;/* _tx_initialize_low_level RXv1/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
.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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +85,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -66,6 +66,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -61,6 +61,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -23,6 +23,11 @@
.global __tx_thread_execute_ptr .global __tx_thread_execute_ptr
.global __tx_thread_current_ptr .global __tx_thread_current_ptr
.global __tx_timer_time_slice .global __tx_timer_time_slice
#if (TX_LOW_POWER == 1)
.global _tx_low_power_enter
.global _tx_low_power_exit
.global __tx_thread_preempt_disable
#endif
; ;
.text .text
@@ -31,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv1/GNURX */ ;/* _tx_thread_schedule RXv1/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -71,6 +76,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -78,26 +86,48 @@
.global __tx_thread_schedule .global __tx_thread_schedule
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
SETPSW I ; Enable interrupts
CLRPSW I ; Disable interrupts
MOV.L [R1],R2 ; Pickup next thread to execute MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL? CMP #0,R2 ; Is it NULL?
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
#if (TX_LOW_POWER == 1)
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
#endif
#if (TX_ENABLE_WAIT == 1)
WAIT ; Wait for interrupt
#endif
#if (TX_LOW_POWER == 1)
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
#endif
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -26,7 +26,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv1/GNURX */ ;/* _tx_thread_stack_build RXv1/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -42,7 +42,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv1/GNURX */ ;/* _tx_timer_interrupt RXv1/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +85,8 @@
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -55,6 +55,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -268,7 +270,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/IAR Version 6.1.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv1/IAR Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -143,10 +143,13 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.s Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added tx_port.h Removed system state macro, and added
missing interrupt control defines missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic tx_timer_interrupt.s 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

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv1/IAR */ ;/* _tx_initialize_low_level RXv1/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -61,6 +61,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -23,6 +23,11 @@
extern __tx_thread_execute_ptr extern __tx_thread_execute_ptr
extern __tx_thread_current_ptr extern __tx_thread_current_ptr
extern __tx_timer_time_slice extern __tx_timer_time_slice
#if (TX_LOW_POWER == 1)
extern _tx_low_power_enter
extern _tx_low_power_exit
extern __tx_thread_preempt_disable
#endif
section .text:CODE:ROOT section .text:CODE:ROOT
@@ -31,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv1/IAR */ ;/* _tx_thread_schedule RXv1/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -71,6 +76,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -79,26 +87,48 @@
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
SETPSW I ; Enable interrupts
CLRPSW I ; Disable interrupts
MOV.L [R1],R2 ; Pickup next thread to execute MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL? CMP #0,R2 ; Is it NULL?
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
#if (TX_LOW_POWER == 1)
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
#endif
#if (TX_ENABLE_WAIT == 1)
WAIT ; Wait for interrupt
#endif
#if (TX_LOW_POWER == 1)
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
#endif
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -28,7 +28,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv1/IAR */ ;/* _tx_thread_stack_build RXv1/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -27,7 +27,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv1/IAR */ ;/* _tx_thread_system_return RXv1/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -64,6 +64,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -42,7 +42,7 @@ SWI0 EQU 0x872E0
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv1/IAR */ ;/* _tx_timer_interrupt RXv1/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +85,8 @@ SWI0 EQU 0x872E0
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -57,6 +57,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -273,7 +275,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/CCRX Version 6.1.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/CCRX Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -153,6 +153,9 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.src Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added tx_port.h Removed system state macro, and added
missing interrupt control defines missing interrupt control defines

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv2/CCRX */ ;/* _tx_initialize_low_level RXv2/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -72,6 +72,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv2/CCRX */ ;/* _tx_thread_context_restore RXv2/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -84,6 +84,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
.GLB __tx_thread_execute_ptr .GLB __tx_thread_execute_ptr
.GLB __tx_thread_current_ptr .GLB __tx_thread_current_ptr
.GLB __tx_timer_time_slice .GLB __tx_timer_time_slice
.IF TX_LOW_POWER==1
.GLB _tx_low_power_enter
.GLB _tx_low_power_exit
.GLB __tx_thread_preempt_disable
.ENDIF
; ;
.SECTION P,CODE .SECTION P,CODE
@@ -42,7 +47,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv2/CCRX */ ;/* _tx_thread_schedule RXv2/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +87,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -89,26 +97,48 @@
.GLB __tx_thread_schedule .GLB __tx_thread_schedule
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
SETPSW I ; Enable interrupts
CLRPSW I ; Disable interrupts
MOV.L [R1],R2 ; Pickup next thread to execute MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL? CMP #0,R2 ; Is it NULL?
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
.IF TX_LOW_POWER==1
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
.ENDIF
.IF TX_ENABLE_WAIT==1
WAIT ; Wait for interrupt
.ENDIF
.IF TX_LOW_POWER==1
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
.ENDIF
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXc2/CCRX */ ;/* _tx_thread_stack_build RXc2/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -56,7 +56,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv2/CCRX */ ;/* _tx_timer_interrupt RXv2/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -99,6 +99,8 @@
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -56,6 +56,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -269,7 +271,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.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/GNURX Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -149,9 +149,12 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.s Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Added missing interrupt control defines tx_port.h Added missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic tx_timer_interrupt.s 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

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv2/GNURX */ ;/* _tx_initialize_low_level RXv2/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
.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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +85,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
.global __tx_thread_execute_ptr .global __tx_thread_execute_ptr
.global __tx_thread_current_ptr .global __tx_thread_current_ptr
.global __tx_timer_time_slice .global __tx_timer_time_slice
#if (TX_LOW_POWER == 1)
.global _tx_low_power_enter
.global _tx_low_power_exit
.global __tx_thread_preempt_disable
#endif
; ;
.text .text
@@ -42,7 +47,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv2/GNURX */ ;/* _tx_thread_schedule RXv2/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +87,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -89,26 +97,48 @@
.global __tx_thread_schedule .global __tx_thread_schedule
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
SETPSW I ; Enable interrupts
CLRPSW I ; Disable interrupts
MOV.L [R1],R2 ; Pickup next thread to execute MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL? CMP #0,R2 ; Is it NULL?
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
#if (TX_LOW_POWER == 1)
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
#endif
#if (TX_ENABLE_WAIT == 1)
WAIT ; Wait for interrupt
#endif
#if (TX_LOW_POWER == 1)
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
#endif
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv2/GNURX */ ;/* _tx_thread_stack_build RXv2/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -55,7 +55,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv2/GNURX */ ;/* _tx_timer_interrupt RXv2/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -98,6 +98,8 @@
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -57,6 +57,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -269,7 +271,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/IAR Version 6.1.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv2/IAR Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -146,10 +146,13 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.s Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added tx_port.h Removed system state macro, and added
missing interrupt control defines missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic tx_timer_interrupt.s 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

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv2/IAR */ ;/* _tx_initialize_low_level RXv2/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -84,6 +84,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
extern __tx_thread_execute_ptr extern __tx_thread_execute_ptr
extern __tx_thread_current_ptr extern __tx_thread_current_ptr
extern __tx_timer_time_slice extern __tx_timer_time_slice
#if (TX_LOW_POWER == 1)
extern _tx_low_power_enter
extern _tx_low_power_exit
extern __tx_thread_preempt_disable
#endif
section .text:CODE:ROOT section .text:CODE:ROOT
@@ -42,7 +47,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv2/IAR */ ;/* _tx_thread_schedule RXv2/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -82,6 +87,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -90,26 +98,48 @@
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
SETPSW I ; Enable interrupts
CLRPSW I ; Disable interrupts
MOV.L [R1],R2 ; Pickup next thread to execute MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL? CMP #0,R2 ; Is it NULL?
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
#if (TX_LOW_POWER == 1)
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
#endif
#if (TX_ENABLE_WAIT == 1)
WAIT ; Wait for interrupt
#endif
#if (TX_LOW_POWER == 1)
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
#endif
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -28,7 +28,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv2/IAR */ ;/* _tx_thread_stack_build RXv2/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -64,6 +64,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -42,7 +42,7 @@ SWI0 EQU 0x872E0
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv2/IAR */ ;/* _tx_timer_interrupt RXv2/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +85,8 @@ SWI0 EQU 0x872E0
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -56,6 +56,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -277,7 +279,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.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/CCRX Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -209,6 +209,9 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.src Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added tx_port.h Removed system state macro, and added
missing interrupt control defines missing interrupt control defines
@@ -216,9 +219,9 @@ information associated with this specific port of ThreadX:
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.src Added FPU support
tx_thread_schedule.s Added FPU support tx_thread_schedule.src Added FPU support
tx_thread_system_return.s Added FPU support tx_thread_system_return.src Added FPU support
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

View File

@@ -34,7 +34,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv3/CCRX */ ;/* _tx_initialize_low_level RXv3/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -72,6 +72,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -45,7 +45,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore RXv3/CCRX */ ;/* _tx_thread_context_restore RXv3/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +83,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
.GLB __tx_thread_execute_ptr .GLB __tx_thread_execute_ptr
.GLB __tx_thread_current_ptr .GLB __tx_thread_current_ptr
.GLB __tx_timer_time_slice .GLB __tx_timer_time_slice
.IF TX_LOW_POWER==1
.GLB _tx_low_power_enter
.GLB _tx_low_power_exit
.GLB __tx_thread_preempt_disable
.ENDIF
; ;
.SECTION P,CODE .SECTION P,CODE
@@ -42,7 +47,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv3/CCRX */ ;/* _tx_thread_schedule RXv3/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -81,6 +86,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -88,26 +96,48 @@
.GLB __tx_thread_schedule .GLB __tx_thread_schedule
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
MOV.L [R1],R2 ; Pickup next thread to execute SETPSW I ; Enable interrupts
CMP #0,R2 ; Is it NULL? CLRPSW I ; Disable interrupts
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL?
BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
.IF TX_LOW_POWER==1
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
.ENDIF
.IF TX_ENABLE_WAIT==1
WAIT ; Wait for interrupt
.ENDIF
.IF TX_LOW_POWER==1
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
.ENDIF
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv3/CCRX */ ;/* _tx_thread_stack_build RXv3/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -56,7 +56,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv3/CCRX */ ;/* _tx_timer_interrupt RXv3/CCRX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -99,6 +99,8 @@
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -55,6 +55,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -273,7 +275,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.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/GNURX Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -203,9 +203,12 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.s Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Added missing interrupt control defines tx_port.h Added missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic tx_timer_interrupt.s 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

View File

@@ -29,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv3/GNURX */ ;/* _tx_initialize_low_level RXv3/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
.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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -84,6 +84,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
.global __tx_thread_execute_ptr .global __tx_thread_execute_ptr
.global __tx_thread_current_ptr .global __tx_thread_current_ptr
.global __tx_timer_time_slice .global __tx_timer_time_slice
#if (TX_LOW_POWER == 1)
.global _tx_low_power_enter
.global _tx_low_power_exit
.global __tx_thread_preempt_disable
#endif
; ;
.text .text
@@ -81,6 +86,9 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), and */
;/* added low power support, */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)
@@ -88,26 +96,48 @@
.global __tx_thread_schedule .global __tx_thread_schedule
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
MOV.L [R1],R2 ; Pickup next thread to execute SETPSW I ; Enable interrupts
CMP #0,R2 ; Is it NULL? CLRPSW I ; Disable interrupts
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL?
BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
#if (TX_LOW_POWER == 1)
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
#endif
#if (TX_ENABLE_WAIT == 1)
WAIT ; Wait for interrupt
#endif
#if (TX_LOW_POWER == 1)
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
#endif
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -36,7 +36,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv3/GNURX */ ;/* _tx_thread_stack_build RXv3/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -54,7 +54,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv3/GNURX */ ;/* _tx_timer_interrupt RXv3/GNURX */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -97,6 +97,8 @@
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

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.10 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -56,6 +56,8 @@
/* added missing interrupt */ /* added missing interrupt */
/* control defines, */ /* control defines, */
/* resulting in version 6.1.10 */ /* resulting in version 6.1.10 */
/* 04-25-2022 William E. Lamie Modified comment(s), */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -274,7 +276,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.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX RXv3/IAR Version 6.1.11 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -203,10 +203,13 @@ 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:
04-25-2022 Release 6.1.11 changes:
tx_thread_schedule.s Added low power support
01-31-2022 Release 6.1.10 changes: 01-31-2022 Release 6.1.10 changes:
tx_port.h Removed system state macro, and added tx_port.h Removed system state macro, and added
missing interrupt control defines missing interrupt control defines
tx_timer_interrupt.src Added missing thread preemption logic tx_timer_interrupt.s 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

View File

@@ -31,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_low_level RXv3/IAR */ ;/* _tx_initialize_low_level RXv3/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +83,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;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.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -34,6 +34,11 @@
extern __tx_thread_execute_ptr extern __tx_thread_execute_ptr
extern __tx_thread_current_ptr extern __tx_thread_current_ptr
extern __tx_timer_time_slice extern __tx_timer_time_slice
#if (TX_LOW_POWER == 1)
extern _tx_low_power_enter
extern _tx_low_power_exit
extern __tx_thread_preempt_disable
#endif
section .text:CODE:ROOT section .text:CODE:ROOT
@@ -42,7 +47,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule RXv3/IAR */ ;/* _tx_thread_schedule RXv3/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -89,26 +94,48 @@
__tx_thread_schedule: __tx_thread_schedule:
; ;
; /* Enable interrupts. */
;
SETPSW I
; ;
; /* Wait for a thread to execute. */ ; /* Wait for a thread to execute. */
; do ; do
; { ; {
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
__tx_thread_schedule_loop: __tx_thread_schedule_loop:
MOV.L [R1],R2 ; Pickup next thread to execute SETPSW I ; Enable interrupts
CMP #0,R2 ; Is it NULL? CLRPSW I ; Disable interrupts
BEQ __tx_thread_schedule_loop ; Yes, idle system, keep checking MOV.L [R1],R2 ; Pickup next thread to execute
CMP #0,R2 ; Is it NULL?
BNE __tx_thread_thread_ready ; Not NULL, schedule the thread
; Idle system - no thread is ready
#if (TX_LOW_POWER == 1)
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
ADD #1, R2 ; Disable preemption while enter/exit
MOV.L R2, [R1]
BSR _tx_low_power_enter ; Possibly enter low power mode
#endif
#if (TX_ENABLE_WAIT == 1)
WAIT ; Wait for interrupt
#endif
#if (TX_LOW_POWER == 1)
CLRPSW I ; Disable interrupts (because WAIT enables interrupts)
BSR _tx_low_power_exit ; Possibly exit low power mode
MOV.L #__tx_thread_preempt_disable, R1 ; Load prempt disable flag.
MOV.L [R1], R2
SUB #1, R2 ; Enable preemption
MOV.L R2, [R1]
MOV.L #__tx_thread_execute_ptr, R1 ; Address of thread to executer ptr
#endif
BRA __tx_thread_schedule_loop ; Idle system, keep checking
__tx_thread_thread_ready:
; ;
; } ; }
; while(_tx_thread_execute_ptr == TX_NULL); ; while(_tx_thread_execute_ptr == TX_NULL);
; ;
; /* Yes! We have a thread to execute. Lockout interrupts and ; /* Yes! We have a thread to execute. Note that interrupts are locked out at this point. */
; transfer control to it. */
;
CLRPSW I ; Disable interrupts
; ;
; /* Setup the current thread pointer. */ ; /* Setup the current thread pointer. */
; _tx_thread_current_ptr = _tx_thread_execute_ptr; ; _tx_thread_current_ptr = _tx_thread_execute_ptr;

View File

@@ -28,7 +28,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build RXv3/IAR */ ;/* _tx_thread_stack_build RXv3/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -65,6 +65,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -27,7 +27,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return RXv3/IAR */ ;/* _tx_thread_system_return RXv3/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -64,6 +64,8 @@
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 01-31-2022 William E. Lamie Modified comment(s), */ ;/* 01-31-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/

View File

@@ -43,7 +43,7 @@ SWI0 EQU 0x872E0
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt RXv3/IAR */ ;/* _tx_timer_interrupt RXv3/IAR */
;/* 6.1.10 */ ;/* 6.1.11 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -86,6 +86,8 @@ SWI0 EQU 0x872E0
;/* added missing thread */ ;/* added missing thread */
;/* preemption logic, */ ;/* preemption logic, */
;/* resulting in version 6.1.10 */ ;/* resulting in version 6.1.10 */
;/* 04-25-2022 William E. Lamie Modified comment(s), */
;/* resulting in version 6.1.11 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/