summaryrefslogtreecommitdiff
path: root/ports_arch
diff options
context:
space:
mode:
Diffstat (limited to 'ports_arch')
-rw-r--r--ports_arch/ARMv7-A/threadx/common/inc/tx_port.h23
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_restore.S24
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_save.S24
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_restore.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_save.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_end.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_start.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_control.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_disable.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_restore.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_end.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_start.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_schedule.S32
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_stack_build.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_system_return.S24
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_thread_vectored_context_save.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/common/src/tx_timer_interrupt.S21
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/ac5/example_build/tx_initialize_low_level.s16
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/.cproject174
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat2
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/tx_initialize_low_level.S15
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/ac6/example_build/tx/.cproject144
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/gnu/example_build/reset.S7
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/gnu/example_build/sample_threadx.ld14
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.h2
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.s48
-rw-r--r--ports_arch/ARMv7-A/threadx/ports/iar/example_build/tx_initialize_low_level.s17
-rw-r--r--ports_arch/ARMv7-A/update.ps18
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/example_build/sample_threadx.c46
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/example_build/tx_initialize_low_level.s17
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/readme_threadx.txt56
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_restore.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_save.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_control.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_disable.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_restore.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_schedule.s18
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_stack_build.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_system_return.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac5/src/tx_timer_interrupt.s19
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/sample_threadx.c46
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/tx_initialize_low_level.S16
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/example_build/tx/.cproject148
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/readme_threadx.txt60
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_misra.S19
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_restore.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_save.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_control.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_disable.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_restore.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_schedule.S17
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_stack_build.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_system_return.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/ac6/src/tx_timer_interrupt.S18
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/example_build/tx_initialize_low_level.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/inc/tx_el.h13
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/inc/tx_port.h15
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/readme_threadx.txt120
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_el.c13
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_restore.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_save.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_control.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_disable.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_restore.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_schedule.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_stack_build.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_system_return.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/ghs/src/tx_timer_interrupt.arm6
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_crt0.S3
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_vectors.S12
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.c46
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.ld10
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/example_build/tx_initialize_low_level.S16
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/readme_threadx.txt68
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_misra.S19
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_restore.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_save.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_control.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_disable.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_restore.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_schedule.S19
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_stack_build.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_system_return.S15
-rw-r--r--ports_arch/ARMv7-M/threadx/gnu/src/tx_timer_interrupt.S18
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/example_build/cstartup_M.s8
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/example_build/sample_threadx.c48
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/example_build/tx_initialize_low_level.s17
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/readme_threadx.txt60
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_iar.c235
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_misra.s23
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_restore.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_save.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_control.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_disable.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_restore.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_schedule.s18
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_stack_build.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_thread_system_return.s16
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/src/tx_timer_interrupt.s19
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/tx_low_power.c83
-rw-r--r--ports_arch/ARMv7-M/threadx/iar/tx_low_power.h29
-rw-r--r--ports_arch/ARMv7-M/threadx/inc/tx_port.h30
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_initialize.s14
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_thread_shell_entry.c21
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/tx_thread_schedule.s24
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_thread_stack_build.s14
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_user_mode_entry.s14
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_initialize.S16
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_thread_shell_entry.c24
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/tx_thread_schedule.S22
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/txm_module_manager_thread_stack_build.S13
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_alignment_adjust.c33
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_external_memory_enable.c79
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_handler.c17
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_notify.c15
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_mm_register_setup.c17
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/gnu/module_lib/src/txm_module_thread_shell_entry.c21
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/tx_thread_schedule.S24
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/txm_module_manager_thread_stack_build.s14
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/iar/module_lib/src/txm_module_thread_shell_entry.c21
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_iar.c235
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_misra.s23
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_thread_schedule.s23
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/txm_module_manager_thread_stack_build.s14
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/inc/tx_port.h24
-rw-r--r--ports_arch/ARMv7-M/threadx_modules/inc/txm_module_port.h27
-rw-r--r--ports_arch/ARMv8-A/threadx/common/inc/tx_port.h18
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_restore.S16
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_save.S16
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_disable.c15
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_enable.c15
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_control.S18
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_disable.S18
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_restore.S18
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_schedule.S19
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_stack_build.S18
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_thread_system_return.S16
-rw-r--r--ports_arch/ARMv8-A/threadx/common/src/tx_timer_interrupt.S16
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/.cproject156
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.S2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.h2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat4
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_aarch64.h2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_mmu.h2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/example_build/tx/.cproject146
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/ac6/src/tx_initialize_low_level.S18
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/.cproject168
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.S2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.h2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/sample_threadx.ld2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/startup.S2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_aarch64.h2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_mmu.h2
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/example_build/tx/.cproject160
-rw-r--r--ports_arch/ARMv8-A/threadx/ports/gnu/src/tx_initialize_low_level.S20
-rw-r--r--ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_port_dispatch.c13
-rw-r--r--ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_thread_stack_build.S16
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/inc/tx_port.h18
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S23
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_save.S19
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_schedule.S20
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_get.S19
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_preempt.S19
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_state_get.S19
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_thread_get.S19
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_initialize_wait.S19
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_low_level_initialize.S18
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protect.S27
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protection_wait_list_macros.h7
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_time_get.S18
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_unprotect.S22
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_stack_build.S18
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S20
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/common/src/tx_timer_interrupt.S16
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/.cproject146
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.S2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.h2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/sample_threadx.scat26
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_aarch64.h2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_mmu.h2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/tx/.cproject186
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/ac6/src/tx_initialize_low_level.S15
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/.cproject162
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.S2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.h2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/sample_threadx.ld4
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_aarch64.h2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_mmu.h2
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/tx/.cproject198
-rw-r--r--ports_arch/ARMv8-A/threadx_smp/ports/gnu/src/tx_initialize_low_level.S18
-rw-r--r--ports_arch/ARMv8-A/update.ps18
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/readme_threadx.txt58
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_initialize_low_level.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_misra.S19
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_restore.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_save.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_control.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_disable.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_restore.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_schedule.S26
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack.c22
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_allocate.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_free.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_initialize.S19
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_stack_build.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_system_return.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/tx_timer_interrupt.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_allocate.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_free.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/readme_threadx.txt50
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_initialize_low_level.S17
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_misra.S19
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_restore.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_save.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_control.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_disable.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_restore.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_schedule.S27
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack.c22
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_allocate.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_free.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_initialize.S19
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_stack_build.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_system_return.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/tx_timer_interrupt.S15
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_allocate.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_free.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/readme_threadx.txt50
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_iar.c235
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_initialize_low_level.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_misra.s23
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_restore.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_save.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_control.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_disable.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_restore.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_schedule.s26
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_allocate.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_free.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_initialize.s18
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_stack_build.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_thread_system_return.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/tx_timer_interrupt.s14
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_allocate.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_free.c21
-rw-r--r--ports_arch/ARMv8-M/threadx/inc/tx_port.h42
-rw-r--r--ports_arch/ARMv8-M/threadx/inc/tx_secure_interface.h13
248 files changed, 2651 insertions, 4185 deletions
diff --git a/ports_arch/ARMv7-A/threadx/common/inc/tx_port.h b/ports_arch/ARMv7-A/threadx/common/inc/tx_port.h
index f9b96956..f0153046 100644
--- a/ports_arch/ARMv7-A/threadx/common/inc/tx_port.h
+++ b/ports_arch/ARMv7-A/threadx/common/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -42,20 +43,6 @@
/* own special types that can be mapped to actual data types by this */
/* file to guarantee consistency in the interface and functionality. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-02-2021 Bhupendra Naphade Modified comment(s),updated */
-/* macro definition, */
-/* resulting in version 6.1.6 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Updated comments, removed */
-/* unneeded temp variable, */
-/* resulting in version 6.1.12 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -320,7 +307,7 @@ void tx_thread_vfp_disable(void);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX ARMv7-A Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARMv7-A Version 6.5.0.202601 *";
#else
extern CHAR _tx_version_id[];
#endif
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_restore.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_restore.S
index 6b4a561d..41b0b0d0 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -79,23 +80,6 @@ IRQ_MODE = 0x12 // IRQ mode
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
.global _tx_thread_context_restore
.type _tx_thread_context_restore,function
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_save.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_save.S
index eff06283..d2d29d34 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,23 +72,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
.global _tx_thread_context_save
.type _tx_thread_context_save,function
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_restore.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_restore.S
index d2fbebe1..921c322c 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_restore.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -78,20 +79,6 @@ IRQ_MODE_BITS = 0x12 // IRQ mode bits
/* */
/* FIQ ISR Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_fiq_context_restore
.type _tx_thread_fiq_context_restore,function
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_save.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_save.S
index 88472a3d..2f1a6c40 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_save.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,20 +67,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_fiq_context_save
.type _tx_thread_fiq_context_save,function
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_end.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_end.S
index fa3886b8..a7ce701e 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_end.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_end.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -79,20 +80,6 @@ FIQ_MODE_BITS = 0x11 // FIQ mode bits
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_start.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_start.S
index dbed1cf2..4f095dde 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_start.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_fiq_nesting_start.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -72,20 +73,6 @@ SYS_MODE_BITS = 0x1F // System mode bits
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_control.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_control.S
index d1223cb8..a5bc47f7 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_control.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_control.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -68,20 +69,6 @@ FIQ_MASK = 0x040
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_disable.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_disable.S
index a87d1a06..d7b53bc2 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_disable.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_disable.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,20 +62,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_restore.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_restore.S
index 53ff2813..3c31e94b 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_restore.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_interrupt_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -67,20 +68,6 @@ FIQ_MASK = 0x040
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_end.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_end.S
index 18aebc7c..cc4db3a7 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_end.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_end.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -79,20 +80,6 @@ IRQ_MODE_BITS = 0x12 // IRQ mode bits
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_start.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_start.S
index a2ffd35d..3635874d 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_start.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_irq_nesting_start.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -72,20 +73,6 @@ SYS_MODE_BITS = 0x1F // System mode bits
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_schedule.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_schedule.S
index 07dd6f7f..b269dc9f 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -39,6 +40,14 @@
#define IRQ_MODE 0x12 // IRQ mode
#define SVC_MODE 0x13 // SVC mode
+#ifdef TX_ENABLE_VFP_SUPPORT
+#define IRQ_MASK 0x80
+#endif
+
+#ifdef TX_ENABLE_FIQ_SUPPORT
+#define FIQ_MASK 0x40
+#endif
+
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
@@ -73,23 +82,6 @@
/* _tx_thread_system_return Return to system from thread */
/* _tx_thread_context_restore Restore thread's context */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_stack_build.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_stack_build.S
index 3876225a..827554a7 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -74,20 +75,6 @@ CPSR_MASK = 0xBF // Mask initial CPSR, T, IRQ int
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_system_return.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_system_return.S
index 0eed478d..1a17446b 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -68,23 +69,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_vectored_context_save.S b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_vectored_context_save.S
index fe8a98e8..91653b75 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_thread_vectored_context_save.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_thread_vectored_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,20 +67,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-15-2021 William E. Lamie Modified comment(s), added */
-/* execution profile support, */
-/* resulting in version 6.1.9 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_vectored_context_save
.type _tx_thread_vectored_context_save,function
diff --git a/ports_arch/ARMv7-A/threadx/common/src/tx_timer_interrupt.S b/ports_arch/ARMv7-A/threadx/common/src/tx_timer_interrupt.S
index cb0c1fa2..179ac894 100644
--- a/ports_arch/ARMv7-A/threadx/common/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv7-A/threadx/common/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -77,20 +78,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* 12-31-2023 Yajun Xia Modified comment(s), */
-/* Added thumb mode support, */
-/* resulting in version 6.4.0 */
-/* */
/**************************************************************************/
#if defined(THUMB_MODE)
.thumb_func
diff --git a/ports_arch/ARMv7-A/threadx/ports/ac5/example_build/tx_initialize_low_level.s b/ports_arch/ARMv7-A/threadx/ports/ac5/example_build/tx_initialize_low_level.s
index 13743df7..bed65664 100644
--- a/ports_arch/ARMv7-A/threadx/ports/ac5/example_build/tx_initialize_low_level.s
+++ b/ports_arch/ARMv7-A/threadx/ports/ac5/example_build/tx_initialize_low_level.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -126,15 +127,6 @@ Reset_Vector
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* */
/**************************************************************************/
EXPORT _tx_initialize_low_level
diff --git a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/.cproject b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/.cproject
index e75dac72..c34527a9 100644
--- a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/.cproject
+++ b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/.cproject
@@ -1,176 +1,176 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.exe.debug.base.469946340">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.exe.debug.base.469946340" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.exe.debug.base.469946340" name="Debug" parent="com.arm.eclipse.build.config.v6.exe.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.exe.debug.base.469946340." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.exe.debug.base.var.arm_compiler_6-6.573134568" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.exe.debug.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.84862199" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" value="Cortex-A7.NoFPU" valueType="string"/>
-
+
<option id="com.arm.toolchain.v6.base.options.floatabi.57442314" name="Float ABI" superClass="com.arm.toolchain.v6.base.options.floatabi" value="com.arm.tool.c.compiler.v6.base.option.floatabi.soft" valueType="enumerated"/>
-
+
<option id="com.arm.toolchain.v6.base.options.inst.560764723" name="Instruction set" superClass="com.arm.toolchain.v6.base.options.inst" value="com.arm.tool.c.compiler.v6.base.option.inst.arm" valueType="enumerated"/>
-
+
<option id="com.arm.toolchain.v6.base.options.debug.level.480956369" name="Debug Level" superClass="com.arm.toolchain.v6.base.options.debug.level" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.exe.debug.base.var.arm_compiler_6-6.573134568.953059653" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/sample_threadx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.2091893653" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.480843237" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.target.665260895" name="Target (--target)" superClass="com.arm.tool.c.compiler.v6.base.option.target" useByScannerDiscovery="true" value="arm-arm-none-eabi" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.2102538095" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-a7" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.fpu.633771589" name="FPU (-mfpu)" superClass="com.arm.tool.c.compiler.v6.base.option.fpu" useByScannerDiscovery="true" value="none" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.floatabi.1961565341" name="Float ABI (-mfloat-abi)" superClass="com.arm.tool.c.compiler.v6.base.option.floatabi" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.floatabi.soft" valueType="enumerated"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.inst.904338235" name="Instruction set" superClass="com.arm.tool.c.compiler.v6.base.option.inst" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.inst.arm" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.1101243778" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1919910001" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.1889095542" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.1580367129" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1827702550" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.1929311259" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.option.target.748329430" name="Target (--target)" superClass="com.arm.tool.assembler.v6.base.option.target" useByScannerDiscovery="false" value="arm-arm-none-eabi" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.289232043" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-a7" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.fpu.2069861530" name="FPU (-mfpu)" superClass="com.arm.tool.assembler.v6.base.option.fpu" useByScannerDiscovery="true" value="none" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.floatabi.1140611893" name="Float ABI (-mfloat-abi)" superClass="com.arm.tool.assembler.v6.base.option.floatabi" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.floatabi.soft" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.inst.1944846971" name="Instruction set" superClass="com.arm.tool.assembler.v6.base.option.inst" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.inst.arm" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.1266868530" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.2014598915" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.1841579990" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.linker.option.entry.1438082076" name="Image entry point (--entry)" superClass="com.arm.tool.c.linker.option.entry" useByScannerDiscovery="false" value="Vectors" valueType="string"/>
-
+
<option id="com.arm.tool.c.linker.option.scatter.295049975" name="Scatter file (--scatter)" superClass="com.arm.tool.c.linker.option.scatter" useByScannerDiscovery="false" value="../sample_threadx.scat" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.linker.libs.1672250850" name="User library files" superClass="com.arm.tool.c.linker.libs" useByScannerDiscovery="false" valueType="libs">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/Debug/tx.a}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.linker.option.imagemap.1579816297" name="Generate image map (--map)" superClass="com.arm.tool.c.linker.option.imagemap" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.c.linker.option.redirectoutput.1433429713" name="Redirect diagnostics output to file (--list)" superClass="com.arm.tool.c.linker.option.redirectoutput" useByScannerDiscovery="false" value="sample_threadx.map" valueType="string"/>
-
+
<option id="com.arm.tool.linker.v6.option.suppress.829979840" name="Suppress (--diag_suppress)" superClass="com.arm.tool.linker.v6.option.suppress" useByScannerDiscovery="false" value="L6306W" valueType="string"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.305140315" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<sourceEntries>
-
+
<entry excluding="timer_interrupts.c|MP_GIC.S|reset.S|crt0.S" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
-
+
<externalSettings containerId="tx;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
-
+
</storageModule>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="sample_threadx.com.arm.eclipse.build.project.v6.exe.1093829338" name="Executable"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat
index d23881cd..66d0d95a 100644
--- a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat
+++ b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat
@@ -1,7 +1,7 @@
;*******************************************************
; Copyright (c) 2011-2016 Arm Limited (or its affiliates). All rights reserved.
; Use, modification and redistribution of this file is subject to your possession of a
-; valid End User License Agreement for the Arm Product of which these examples are part of
+; valid End User License Agreement for the Arm Product of which these examples are part of
; and your compliance with all applicable terms and conditions of such licence agreement.
;*******************************************************
diff --git a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/tx_initialize_low_level.S b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/tx_initialize_low_level.S
index 083a57a7..76395459 100644
--- a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/tx_initialize_low_level.S
+++ b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/sample_threadx/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -91,14 +92,6 @@ $_tx_initialize_low_level:
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* */
/**************************************************************************/
.global _tx_initialize_low_level
.type _tx_initialize_low_level,function
diff --git a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/tx/.cproject b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/tx/.cproject
index 476321bb..f17f3f56 100644
--- a/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/tx/.cproject
+++ b/ports_arch/ARMv7-A/threadx/ports/ac6/example_build/tx/.cproject
@@ -1,146 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.lib.debug.base.934844632">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.lib.debug.base.934844632" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.lib.debug.base.934844632" name="Debug" parent="com.arm.eclipse.build.config.v6.lib.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.934844632." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.1304206628" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.934944269" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" value="Cortex-A7.NoFPU" valueType="string"/>
-
+
<option id="com.arm.toolchain.v6.base.options.floatabi.363048496" name="Float ABI" superClass="com.arm.toolchain.v6.base.options.floatabi" value="com.arm.tool.c.compiler.v6.base.option.floatabi.soft" valueType="enumerated"/>
-
+
<option id="com.arm.toolchain.v6.base.options.inst.1780343986" name="Instruction set" superClass="com.arm.toolchain.v6.base.options.inst" value="com.arm.tool.c.compiler.v6.base.option.inst.arm" valueType="enumerated"/>
-
+
<option id="com.arm.toolchain.v6.base.options.debug.level.1864778484" name="Debug Level" superClass="com.arm.toolchain.v6.base.options.debug.level" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.1304206628.377253723" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/tx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.15498832" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.1220788691" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.target.2070983899" name="Target (--target)" superClass="com.arm.tool.c.compiler.v6.base.option.target" useByScannerDiscovery="true" value="arm-arm-none-eabi" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.1346103117" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-a7" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.fpu.90247954" name="FPU (-mfpu)" superClass="com.arm.tool.c.compiler.v6.base.option.fpu" useByScannerDiscovery="true" value="none" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.floatabi.1142506275" name="Float ABI (-mfloat-abi)" superClass="com.arm.tool.c.compiler.v6.base.option.floatabi" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.floatabi.soft" valueType="enumerated"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.inst.977911686" name="Instruction set" superClass="com.arm.tool.c.compiler.v6.base.option.inst" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.inst.arm" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.1425313179" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1440291498" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.1880232756" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.514805588" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.115990951" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.962352112" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.option.target.1068198178" name="Target (--target)" superClass="com.arm.tool.assembler.v6.base.option.target" useByScannerDiscovery="false" value="arm-arm-none-eabi" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.452335018" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-a7" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.fpu.1016536584" name="FPU (-mfpu)" superClass="com.arm.tool.assembler.v6.base.option.fpu" useByScannerDiscovery="true" value="none" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.floatabi.930478556" name="Float ABI (-mfloat-abi)" superClass="com.arm.tool.assembler.v6.base.option.floatabi" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.floatabi.soft" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.inst.896699076" name="Instruction set" superClass="com.arm.tool.assembler.v6.base.option.inst" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.inst.arm" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.1163443645" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.1702147376" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.149261228" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6"/>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.1983404149" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="tx.com.arm.eclipse.build.project.v6.lib.1435017208" name="Static Library"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
</cproject>
diff --git a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/reset.S b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/reset.S
index 3ce9efb7..f2e0522b 100644
--- a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/reset.S
+++ b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/reset.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/sample_threadx.ld b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/sample_threadx.ld
index cb42c11c..d43e28f1 100644
--- a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/sample_threadx.ld
+++ b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/sample_threadx.ld
@@ -7,7 +7,7 @@ OUTPUT_ARCH(arm)
SECTIONS
{
. = 0x00000000;
-
+
.vectors : {reset.o(.text) }
/* Read-only sections, merged into text segment: */
@@ -94,8 +94,8 @@ SECTIONS
*(.gnu.linkonce.t*)
*(.glue_7t) *(.glue_7)
} =0
- .init :
- {
+ .init :
+ {
KEEP (*(.init))
} =0
_etext = .;
@@ -120,7 +120,7 @@ SECTIONS
.data1 : { *(.data1) }
.eh_frame : { KEEP (*(.eh_frame)) }
.gcc_except_table : { *(.gcc_except_table) }
- .ctors :
+ .ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
@@ -153,9 +153,9 @@ SECTIONS
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
- .sdata :
+ .sdata :
{
- *(.sdata)
+ *(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
}
@@ -191,7 +191,7 @@ SECTIONS
_stack_bottom = ABSOLUTE(.) ;
- /* Allocate room for stack. This must be big enough for the IRQ, FIQ, and
+ /* Allocate room for stack. This must be big enough for the IRQ, FIQ, and
SYS stack if nested interrupts are enabled. */
. = ALIGN(8) ;
. += 4096 ;
diff --git a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.h b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.h
index 5a08b43f..c18b945c 100644
--- a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.h
+++ b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.h
@@ -4,7 +4,7 @@
//
// Copyright (c) 2011-2016 Arm Limited (or its affiliates). All rights reserved.
// Use, modification and redistribution of this file is subject to your possession of a
-// valid End User License Agreement for the Arm Product of which these examples are part of
+// valid End User License Agreement for the Arm Product of which these examples are part of
// and your compliance with all applicable terms and conditions of such licence agreement.
// ------------------------------------------------------------
diff --git a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.s b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.s
index 82c9ab1e..9487ddde 100644
--- a/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.s
+++ b/ports_arch/ARMv7-A/threadx/ports/gnu/example_build/v7.s
@@ -3,7 +3,7 @@
//
// Copyright (c) 2011-2018 Arm Limited (or its affiliates). All rights reserved.
// Use, modification and redistribution of this file is subject to your possession of a
-// valid End User License Agreement for the Arm Product of which these examples are part of
+// valid End User License Agreement for the Arm Product of which these examples are part of
// and your compliance with all applicable terms and conditions of such licence agreement.
// ------------------------------------------------------------
@@ -20,7 +20,7 @@
enableInterrupts:
CPSIE i
BX lr
-
+
.global disableInterrupts
.type disableInterrupts,function
@@ -28,7 +28,7 @@ enableInterrupts:
disableInterrupts:
CPSID i
BX lr
-
+
// ------------------------------------------------------------
// Cache Maintenance
@@ -44,7 +44,7 @@ enableCaches:
MCR p15, 0, r0, c1, c0, 0 // Write System Control Register
ISB
BX lr
-
+
.global disableCaches
@@ -57,7 +57,7 @@ disableCaches:
MCR p15, 0, r0, c1, c0, 0 // Write System Control Register
ISB
BX lr
-
+
.global cleanDCache
@@ -114,7 +114,7 @@ clean_dcache_finished:
POP {r4-r12}
BX lr
-
+
.global cleanInvalidateDCache
.type cleanInvalidateDCache,function
@@ -170,7 +170,7 @@ clean_invalidate_dcache_finished:
POP {r4-r12}
BX lr
-
+
.global invalidateCaches
@@ -229,7 +229,7 @@ invalidate_caches_skip:
invalidate_caches_finished:
POP {r4-r12}
BX lr
-
+
.global invalidateCaches_IS
@@ -284,7 +284,7 @@ invalidate_caches_is_skip:
invalidate_caches_is_finished:
POP {r4-r12}
BX lr
-
+
// ------------------------------------------------------------
// TLB
@@ -297,7 +297,7 @@ invalidateUnifiedTLB:
MOV r0, #0
MCR p15, 0, r0, c8, c7, 0 // TLBIALL - Invalidate entire unified TLB
BX lr
-
+
.global invalidateUnifiedTLB_IS
.type invalidateUnifiedTLB_IS,function
@@ -306,7 +306,7 @@ invalidateUnifiedTLB_IS:
MOV r0, #1
MCR p15, 0, r0, c8, c3, 0 // TLBIALLIS - Invalidate entire unified TLB Inner Shareable
BX lr
-
+
// ------------------------------------------------------------
// Branch Prediction
@@ -319,7 +319,7 @@ flushBranchTargetCache:
MOV r0, #0
MCR p15, 0, r0, c7, c5, 6 // BPIALL - Invalidate entire branch predictor array
BX lr
-
+
.global flushBranchTargetCache_IS
.type flushBranchTargetCache_IS,function
@@ -328,7 +328,7 @@ flushBranchTargetCache_IS:
MOV r0, #0
MCR p15, 0, r0, c7, c1, 6 // BPIALLIS - Invalidate entire branch predictor array Inner Shareable
BX lr
-
+
// ------------------------------------------------------------
// High Vecs
@@ -343,7 +343,7 @@ enableHighVecs:
MCR p15, 0, r0, c1, c0, 0 // Write Control Register
ISB
BX lr
-
+
.global disableHighVecs
.type disableHighVecs,function
@@ -354,7 +354,7 @@ disableHighVecs:
MCR p15, 0, r0, c1, c0, 0 // Write Control Register
ISB
BX lr
-
+
// ------------------------------------------------------------
// Context ID
@@ -366,7 +366,7 @@ disableHighVecs:
getContextID:
MRC p15, 0, r0, c13, c0, 1 // Read Context ID Register
BX lr
-
+
.global setContextID
.type setContextID,function
@@ -374,7 +374,7 @@ getContextID:
setContextID:
MCR p15, 0, r0, c13, c0, 1 // Write Context ID Register
BX lr
-
+
// ------------------------------------------------------------
// ID registers
@@ -386,7 +386,7 @@ setContextID:
getMIDR:
MRC p15, 0, r0, c0, c0, 0 // Read Main ID Register (MIDR)
BX lr
-
+
.global getMPIDR
.type getMPIDR,function
@@ -394,7 +394,7 @@ getMIDR:
getMPIDR:
MRC p15, 0, r0, c0 ,c0, 5// Read Multiprocessor ID register (MPIDR)
BX lr
-
+
// ------------------------------------------------------------
// CP15 SMP related
@@ -407,7 +407,7 @@ getMPIDR:
getBaseAddr:
MRC p15, 4, r0, c15, c0, 0 // Read peripheral base address
BX lr
-
+
// ------------------------------------------------------------
@@ -419,7 +419,7 @@ getCPUID:
MRC p15, 0, r0, c0, c0, 5 // Read CPU ID register
AND r0, r0, #0x03 // Mask off, leaving the CPU ID field
BX lr
-
+
// ------------------------------------------------------------
@@ -431,7 +431,7 @@ goToSleep:
WFI // Go into standby
B goToSleep // Catch in case of rogue events
BX lr
-
+
// ------------------------------------------------------------
@@ -451,7 +451,7 @@ joinSMP:
ISB
BX lr
-
+
// ------------------------------------------------------------
@@ -469,7 +469,7 @@ leaveSMP:
ISB
BX lr
-
+
// ------------------------------------------------------------
// End of v7.s
diff --git a/ports_arch/ARMv7-A/threadx/ports/iar/example_build/tx_initialize_low_level.s b/ports_arch/ARMv7-A/threadx/ports/iar/example_build/tx_initialize_low_level.s
index a1ecbe93..96c5b0a0 100644
--- a/ports_arch/ARMv7-A/threadx/ports/iar/example_build/tx_initialize_low_level.s
+++ b/ports_arch/ARMv7-A/threadx/ports/iar/example_build/tx_initialize_low_level.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -93,16 +94,6 @@ __tx_free_memory_start
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 04-25-2022 Zhen Kong Updated comments, */
-/* resulting in version 6.1.11 */
-/* */
-/* */
/**************************************************************************/
//VOID _tx_initialize_low_level(VOID)
//{
diff --git a/ports_arch/ARMv7-A/update.ps1 b/ports_arch/ARMv7-A/update.ps1
index c444f1d6..5c3e9905 100644
--- a/ports_arch/ARMv7-A/update.ps1
+++ b/ports_arch/ARMv7-A/update.ps1
@@ -104,7 +104,7 @@ If (-Not (Test-Path -Path $LogDir -PathType Container)) {
Function Copy-FilesVerbose {
[CmdletBinding()] Param (
- [string] $source,
+ [string] $source,
[string] $destination_directory
)
Write-Verbose ("Copying common files...")
@@ -126,9 +126,9 @@ ForEach ($PortSet in $PortSets) {
$compiler_directory = $core_directory + "\" + $compiler
Write-Verbose ("Compiler directory: $compiler_directory")
$compiler_directory_object = New-Item -Path $compiler_directory -ItemType "directory" -Force
-
+
$destination_directory = $compiler_directory
-
+
If ($CopyCommonFiles) {
Copy-FilesVerbose -source "threadx\common\*" -destination_directory $destination_directory
}
@@ -136,7 +136,7 @@ ForEach ($PortSet in $PortSets) {
If ($CopyPortFiles) {
Copy-FilesVerbose -source "threadx\ports\$compiler\*" -destination_directory $destination_directory
}
-
+
If ($PortSet -eq 'tx_smp') {
If ($CopyCommonFiles) {
Copy-FilesVerbose -source "threadx_smp\common\*" -destination_directory $destination_directory
diff --git a/ports_arch/ARMv7-M/threadx/ac5/example_build/sample_threadx.c b/ports_arch/ARMv7-M/threadx/ac5/example_build/sample_threadx.c
index 418ec634..8c61de06 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/example_build/sample_threadx.c
+++ b/ports_arch/ARMv7-M/threadx/ac5/example_build/sample_threadx.c
@@ -1,5 +1,5 @@
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
- threads of different priorities, using a message queue, semaphore, mutex, event flags group,
+ threads of different priorities, using a message queue, semaphore, mutex, event flags group,
byte pool, and block pool. */
#include "tx_api.h"
@@ -80,42 +80,42 @@ CHAR *pointer = TX_NULL;
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create the main thread. */
- tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
+ pointer, DEMO_STACK_SIZE,
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 1. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 1 and 2. These threads pass information through a ThreadX
+ /* Create threads 1 and 2. These threads pass information through a ThreadX
message queue. It is also interesting to note that these threads have a time
slice. */
- tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 2. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 3. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
+ /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
An interesting thing here is that both threads share the same instruction area. */
- tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 4. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 5. */
@@ -123,23 +123,23 @@ CHAR *pointer = TX_NULL;
/* Create thread 5. This thread simply pends on an event flag which will be set
by thread_0. */
- tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
+ pointer, DEMO_STACK_SIZE,
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 6. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
- tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 7. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the message queue. */
@@ -242,11 +242,11 @@ UINT status;
/* Retrieve a message from the queue. */
status = tx_queue_receive(&queue_0, &received_message, TX_WAIT_FOREVER);
- /* Check completion status and make sure the message is what we
+ /* Check completion status and make sure the message is what we
expected. */
if ((status != TX_SUCCESS) || (received_message != thread_2_messages_received))
break;
-
+
/* Otherwise, all is okay. Increment the received message count. */
thread_2_messages_received++;
}
@@ -305,7 +305,7 @@ ULONG actual_flags;
thread_5_counter++;
/* Wait for event flag 0. */
- status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
+ status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
&actual_flags, TX_WAIT_FOREVER);
/* Check status. */
@@ -358,7 +358,7 @@ UINT status;
if (status != TX_SUCCESS)
break;
- /* Release the mutex again. This will actually
+ /* Release the mutex again. This will actually
release ownership since it was obtained twice. */
status = tx_mutex_put(&mutex_0);
diff --git a/ports_arch/ARMv7-M/threadx/ac5/example_build/tx_initialize_low_level.s b/ports_arch/ARMv7-M/threadx/ac5/example_build/tx_initialize_low_level.s
index 5ebe3739..c51e67cf 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/example_build/tx_initialize_low_level.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/example_build/tx_initialize_low_level.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -134,16 +135,6 @@ Reset_Handler
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/readme_threadx.txt b/ports_arch/ARMv7-M/threadx/ac5/readme_threadx.txt
index b7b7cee9..e261213e 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/readme_threadx.txt
+++ b/ports_arch/ARMv7-M/threadx/ac5/readme_threadx.txt
@@ -5,14 +5,14 @@
1. Building the ThreadX run-time Library
-Navigate to the "example_build" directory. Ensure that
-you have setup your path and other environment variables necessary for the AC5
-compiler. At this point you may run the build_threadx.bat batch file. This will
-build the ThreadX run-time environment in the "example_build" directory.
+Navigate to the "example_build" directory. Ensure that
+you have setup your path and other environment variables necessary for the AC5
+compiler. At this point you may run the build_threadx.bat batch file. This will
+build the ThreadX run-time environment in the "example_build" directory.
-You should observe assembly and compilation of a series of ThreadX source
-files. At the end of the batch file, they are all combined into the
-run-time library file: tx.a. This file must be linked with your
+You should observe assembly and compilation of a series of ThreadX source
+files. At the end of the batch file, they are all combined into the
+run-time library file: tx.a. This file must be linked with your
application in order to use ThreadX.
@@ -21,28 +21,28 @@ application in order to use ThreadX.
The ThreadX demonstration is designed to execute under the ARM DS Cortex-M
simulator.
-Building the demonstration is easy; simply execute the build_threadx_sample.bat
+Building the demonstration is easy; simply execute the build_threadx_sample.bat
batch file while inside the "example_build" directory.
-You should observe the compilation of sample_threadx.c (which is the demonstration
-application) and linking with tx.a. The resulting file sample_threadx.axf
+You should observe the compilation of sample_threadx.c (which is the demonstration
+application) and linking with tx.a. The resulting file sample_threadx.axf
is a binary file that can be downloaded and executed on the ARM DS Cortex-M
simulator.
3. System Initialization
-The entry point in ThreadX for the Cortex-M using AC5 tools is at label
-__main. This is defined within the AC5 compiler's startup code. In
-addition, this is where all static and global pre-set C variable
+The entry point in ThreadX for the Cortex-M using AC5 tools is at label
+__main. This is defined within the AC5 compiler's startup code. In
+addition, this is where all static and global pre-set C variable
initialization processing takes place.
-The ThreadX tx_initialize_low_level.s file is responsible for setting up
-various system data structures, the vector area, and a periodic timer interrupt
-source.
+The ThreadX tx_initialize_low_level.s file is responsible for setting up
+various system data structures, the vector area, and a periodic timer interrupt
+source.
-In addition, _tx_initialize_low_level determines the first available
-address for use by the application, which is supplied as the sole input
+In addition, _tx_initialize_low_level determines the first available
+address for use by the application, which is supplied as the sole input
parameter to your application definition function, tx_application_define.
@@ -51,7 +51,7 @@ parameter to your application definition function, tx_application_define.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-M version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -134,21 +134,21 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
5. Improving Performance
-The distribution version of ThreadX is built without any compiler
-optimizations. This makes it easy to debug because you can trace or set
-breakpoints inside of ThreadX itself. Of course, this costs some
+The distribution version of ThreadX is built without any compiler
+optimizations. This makes it easy to debug because you can trace or set
+breakpoints inside of ThreadX itself. Of course, this costs some
performance. To make it run faster, you can change the ThreadX library
project to enable various compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
6. Interrupt Handling
ThreadX provides complete and high-performance interrupt handling for Cortex-M
-targets. There are a certain set of requirements that are defined in the
+targets. There are a certain set of requirements that are defined in the
following sub-sections:
@@ -187,8 +187,8 @@ your_assembly_isr
7. FPU Support
-ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context - no additional setup by the application.
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_restore.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_restore.s
index 7b61ef86..37419f33 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_restore.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,15 +60,6 @@
/* CALLED BY */
/* */
/* ISRs Interrupt Service Routines */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_save.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_save.s
index e038a391..17f1230a 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_save.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_context_save.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,15 +60,6 @@
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_control.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_control.s
index f3ef40fc..c564ecf1 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_control.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_control.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,15 +55,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_disable.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_disable.s
index 263a7a73..ffa91327 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_disable.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_disable.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,15 +55,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_restore.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_restore.s
index e96af978..ef5da941 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_restore.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_interrupt_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,15 +55,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_schedule.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_schedule.s
index 2ea9b0bc..12da7d69 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_schedule.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_schedule.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -67,17 +68,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_stack_build.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_stack_build.s
index 0583d81a..136cd319 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_stack_build.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,15 +57,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_system_return.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_system_return.s
index 73466e78..4de21997 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_system_return.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_thread_system_return.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,15 +57,6 @@
/* CALLED BY */
/* */
/* ThreadX components */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac5/src/tx_timer_interrupt.s b/ports_arch/ARMv7-M/threadx/ac5/src/tx_timer_interrupt.s
index 1245455d..b89a6239 100644
--- a/ports_arch/ARMv7-M/threadx/ac5/src/tx_timer_interrupt.s
+++ b/ports_arch/ARMv7-M/threadx/ac5/src/tx_timer_interrupt.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,18 +72,6 @@
/* CALLED BY */
/* */
/* interrupt vector */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/sample_threadx.c b/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/sample_threadx.c
index 597f373c..13ffadba 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/sample_threadx.c
+++ b/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/sample_threadx.c
@@ -1,5 +1,5 @@
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
- threads of different priorities, using a message queue, semaphore, mutex, event flags group,
+ threads of different priorities, using a message queue, semaphore, mutex, event flags group,
byte pool, and block pool. */
#include "tx_api.h"
@@ -81,42 +81,42 @@ CHAR *pointer = TX_NULL;
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create the main thread. */
- tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
+ pointer, DEMO_STACK_SIZE,
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 1. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 1 and 2. These threads pass information through a ThreadX
+ /* Create threads 1 and 2. These threads pass information through a ThreadX
message queue. It is also interesting to note that these threads have a time
slice. */
- tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 2. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 3. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
+ /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
An interesting thing here is that both threads share the same instruction area. */
- tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 4. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 5. */
@@ -124,23 +124,23 @@ CHAR *pointer = TX_NULL;
/* Create thread 5. This thread simply pends on an event flag which will be set
by thread_0. */
- tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
+ pointer, DEMO_STACK_SIZE,
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 6. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
- tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 7. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the message queue. */
@@ -243,11 +243,11 @@ UINT status;
/* Retrieve a message from the queue. */
status = tx_queue_receive(&queue_0, &received_message, TX_WAIT_FOREVER);
- /* Check completion status and make sure the message is what we
+ /* Check completion status and make sure the message is what we
expected. */
if ((status != TX_SUCCESS) || (received_message != thread_2_messages_received))
break;
-
+
/* Otherwise, all is okay. Increment the received message count. */
thread_2_messages_received++;
}
@@ -306,7 +306,7 @@ ULONG actual_flags;
thread_5_counter++;
/* Wait for event flag 0. */
- status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
+ status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
&actual_flags, TX_WAIT_FOREVER);
/* Check status. */
@@ -359,7 +359,7 @@ UINT status;
if (status != TX_SUCCESS)
break;
- /* Release the mutex again. This will actually
+ /* Release the mutex again. This will actually
release ownership since it was obtained twice. */
status = tx_mutex_put(&mutex_0);
diff --git a/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/tx_initialize_low_level.S b/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/tx_initialize_low_level.S
index 3546dee5..af332d80 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/tx_initialize_low_level.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/example_build/sample_threadx/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -76,15 +77,6 @@ SYSTICK_CYCLES = ((SYSTEM_CLOCK / 100) -1)
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/example_build/tx/.cproject b/ports_arch/ARMv7-M/threadx/ac6/example_build/tx/.cproject
index b7df20f1..4965a680 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/example_build/tx/.cproject
+++ b/ports_arch/ARMv7-M/threadx/ac6/example_build/tx/.cproject
@@ -1,150 +1,150 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.lib.debug.base.1507005551">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.lib.debug.base.1507005551" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.lib.debug.base.1507005551" name="Debug" parent="com.arm.eclipse.build.config.v6.lib.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.1507005551." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.1022814766" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.688166309" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" useByScannerDiscovery="false" value="Cortex-M7.FPv5_D16" valueType="string"/>
-
+
<option id="com.arm.toolchain.v6.base.options.floatabi.197203083" name="Float ABI" superClass="com.arm.toolchain.v6.base.options.floatabi" useByScannerDiscovery="false" value="com.arm.tool.c.compiler.v6.base.option.floatabi.hard" valueType="enumerated"/>
-
+
<option id="com.arm.toolchain.v6.base.options.inst.552700328" name="Instruction set" superClass="com.arm.toolchain.v6.base.options.inst" useByScannerDiscovery="false" value="com.arm.tool.c.compiler.v6.base.option.inst.thumb" valueType="enumerated"/>
-
+
<option id="com.arm.toolchain.v6.base.options.debug.level.1623863720" name="Debug Level" superClass="com.arm.toolchain.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.1022814766.195306460" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/tx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.1164059605" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.100103692" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.target.775437314" name="Target (--target)" superClass="com.arm.tool.c.compiler.v6.base.option.target" useByScannerDiscovery="true" value="arm-arm-none-eabi" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.957518664" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-m7" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.fpu.1476959906" name="FPU (-mfpu)" superClass="com.arm.tool.c.compiler.v6.base.option.fpu" useByScannerDiscovery="true" value="fpv5-d16" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.floatabi.2113301488" name="Float ABI (-mfloat-abi)" superClass="com.arm.tool.c.compiler.v6.base.option.floatabi" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.floatabi.hard" valueType="enumerated"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.inst.36110020" name="Instruction set" superClass="com.arm.tool.c.compiler.v6.base.option.inst" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.inst.thumb" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.1498990421" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.536480260" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.arm.tool.c.compiler.v6.base.option.flags.694010683" name="Other flags" superClass="com.arm.tool.c.compiler.v6.base.option.flags" useByScannerDiscovery="true" valueType="stringList"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.1961882835" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.262825882" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1390685682" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.596919840" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.option.target.1155866423" name="Target (--target)" superClass="com.arm.tool.assembler.v6.base.option.target" useByScannerDiscovery="false" value="arm-arm-none-eabi" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.1741335442" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-m7" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.fpu.169397194" name="FPU (-mfpu)" superClass="com.arm.tool.assembler.v6.base.option.fpu" useByScannerDiscovery="true" value="fpv5-d16" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.floatabi.1378563076" name="Float ABI (-mfloat-abi)" superClass="com.arm.tool.assembler.v6.base.option.floatabi" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.floatabi.hard" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.inst.213408634" name="Instruction set" superClass="com.arm.tool.assembler.v6.base.option.inst" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.option.inst.thumb" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.383141003" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.arm.tool.assembler.v6.base.option.flags.982140214" name="Other flags" superClass="com.arm.tool.assembler.v6.base.option.flags" useByScannerDiscovery="true" valueType="stringList"/>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.1847017761" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.1124663047" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6"/>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.1439633481" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="tx.com.arm.eclipse.build.project.v6.lib.1408735755" name="Static Library"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv7-M/threadx/ac6/readme_threadx.txt b/ports_arch/ARMv7-M/threadx/ac6/readme_threadx.txt
index d98c90cb..6447c517 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/readme_threadx.txt
+++ b/ports_arch/ARMv7-M/threadx/ac6/readme_threadx.txt
@@ -5,12 +5,12 @@
1. Building the ThreadX run-time Library
-In order to build the ThreadX library and the ThreadX demonstration, first import
-the 'tx' and 'sample_threadx' projects (located in the "example_build" directory)
+In order to build the ThreadX library and the ThreadX demonstration, first import
+the 'tx' and 'sample_threadx' projects (located in the "example_build" directory)
into your DS workspace.
-Building the ThreadX library is easy; simply right-click the Eclipse project
-"tx" and then select the "Build Project" button. You should now observe the compilation
+Building the ThreadX library is easy; simply right-click the Eclipse project
+"tx" and then select the "Build Project" button. You should now observe the compilation
and assembly of the ThreadX library. This project build produces the ThreadX
library file tx.a.
@@ -20,27 +20,27 @@ library file tx.a.
The ThreadX demonstration is designed to execute under the DS debugger on the
MPS2_Cortex_Mx Bare Metal simulator.
-Building the demonstration is easy; simply right-click the Eclipse project
-"sample_threadx" and then select the "Build Project" button. You should now observe
-the compilation and assembly of the ThreadX demonstration. This project build produces
-the ThreadX library file sample_threadx.axf. Next, expand the demo ThreadX project folder
+Building the demonstration is easy; simply right-click the Eclipse project
+"sample_threadx" and then select the "Build Project" button. You should now observe
+the compilation and assembly of the ThreadX demonstration. This project build produces
+the ThreadX library file sample_threadx.axf. Next, expand the demo ThreadX project folder
in the Project Explorer window, right-click on the 'cortex-mx_tx.launch' file, click
'Debug As', and then click 'cortex-mx_tx' from the submenu. This will cause the
-debugger to load the sample_threadx.axf ELF file and run to main. You are now ready
+debugger to load the sample_threadx.axf ELF file and run to main. You are now ready
to execute the ThreadX demonstration.
3. System Initialization
-The entry point in ThreadX for the Cortex-M using AC6 tools uses the standard GNU
+The entry point in ThreadX for the Cortex-M using AC6 tools uses the standard GNU
Cortex-M reset sequence. From the reset vector the C runtime will be initialized.
-The ThreadX tx_initialize_low_level.S file is responsible for setting up
-various system data structures, the vector area, and a periodic timer interrupt
-source.
+The ThreadX tx_initialize_low_level.S file is responsible for setting up
+various system data structures, the vector area, and a periodic timer interrupt
+source.
-In addition, _tx_initialize_low_level determines the first available
-address for use by the application, which is supplied as the sole input
+In addition, _tx_initialize_low_level determines the first available
+address for use by the application, which is supplied as the sole input
parameter to your application definition function, tx_application_define.
@@ -49,7 +49,7 @@ parameter to your application definition function, tx_application_define.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-M version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -132,34 +132,34 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
5. Improving Performance
-The distribution version of ThreadX is built without any compiler
-optimizations. This makes it easy to debug because you can trace or set
-breakpoints inside of ThreadX itself. Of course, this costs some
+The distribution version of ThreadX is built without any compiler
+optimizations. This makes it easy to debug because you can trace or set
+breakpoints inside of ThreadX itself. Of course, this costs some
performance. To make it run faster, you can change the ThreadX library
project to enable various compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
6. Interrupt Handling
ThreadX provides complete and high-performance interrupt handling for Cortex-M
-targets. There are a certain set of requirements that are defined in the
+targets. There are a certain set of requirements that are defined in the
following sub-sections:
6.1 Vector Area
The Cortex-M vectors start at the label __tx_vectors or similar. The application may modify
-the vector area according to its needs. There is code in tx_initialize_low_level() that will
-configure the vector base register.
+the vector area according to its needs. There is code in tx_initialize_low_level() that will
+configure the vector base register.
6.2 Managed Interrupts
-A ThreadX managed interrupt is defined below. By following these conventions, the
+A ThreadX managed interrupt is defined below. By following these conventions, the
application ISR is then allowed access to various ThreadX services from the ISR.
Here is the standard template for managed ISRs in ThreadX:
@@ -181,15 +181,15 @@ __tx_IntHandler:
Note: the Cortex-M requires exception handlers to be thumb labels, this implies bit 0 set.
To accomplish this, the declaration of the label has to be preceded by the assembler directive
-.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
-be inserted in the correct location in the interrupt vector table. This table is typically
+.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
+be inserted in the correct location in the interrupt vector table. This table is typically
located in either your runtime startup file or in the tx_initialize_low_level.S file.
7. FPU Support
-ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context - no additional setup by the application.
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_misra.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_misra.S
index 8ac0c629..10548671 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_misra.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_misra.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -667,7 +668,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -682,7 +683,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARM_FP
/***********************************************************************************************/
@@ -699,8 +700,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -714,9 +715,9 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
+
.data
.word 0
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_restore.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_restore.S
index f7806505..530ef2ff 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,14 +62,6 @@
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_save.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_save.S
index 9e995227..d36f71a0 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -60,14 +61,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_control.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_control.S
index f40060d4..6b78eb9d 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_control.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_control.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_disable.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_disable.S
index 0b7cb34a..3f4aafc3 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_disable.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_disable.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_restore.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_restore.S
index 678b6753..07b0134c 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_restore.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_interrupt_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_schedule.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_schedule.S
index f6a5b271..1aade9e5 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -70,16 +71,6 @@
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_stack_build.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_stack_build.S
index 17a07275..66427498 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,14 +60,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_system_return.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_system_return.S
index bfcbc652..75d51813 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,14 +60,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ac6/src/tx_timer_interrupt.S b/ports_arch/ARMv7-M/threadx/ac6/src/tx_timer_interrupt.S
index 67a48265..39bd280f 100644
--- a/ports_arch/ARMv7-M/threadx/ac6/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv7-M/threadx/ac6/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -70,17 +71,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/ghs/example_build/tx_initialize_low_level.arm b/ports_arch/ARMv7-M/threadx/ghs/example_build/tx_initialize_low_level.arm
index 56269d1a..57c964b3 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/example_build/tx_initialize_low_level.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/example_build/tx_initialize_low_level.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/inc/tx_el.h b/ports_arch/ARMv7-M/threadx/ghs/inc/tx_el.h
index b8926921..72e5bbe3 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/inc/tx_el.h
+++ b/ports_arch/ARMv7-M/threadx/ghs/inc/tx_el.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -36,12 +37,6 @@
/* EventAnalyzer. It is assumed that tx_api.h and tx_port.h have */
/* already been included. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* */
/**************************************************************************/
#ifndef TX_EL_H
diff --git a/ports_arch/ARMv7-M/threadx/ghs/inc/tx_port.h b/ports_arch/ARMv7-M/threadx/ghs/inc/tx_port.h
index d98914d7..eb5c9daf 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/inc/tx_port.h
+++ b/ports_arch/ARMv7-M/threadx/ghs/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -45,12 +46,6 @@
/* This file replaces the previous Cortex-M3/M4/M7 files. It unifies */
/* the ARMv7-M architecture and compilers into one common file. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -392,7 +387,7 @@ void tx_thread_fpu_disable(void);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX ARMv7-M Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARMv7-M Version 6.5.0.202601 *";
#else
#ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100];
diff --git a/ports_arch/ARMv7-M/threadx/ghs/readme_threadx.txt b/ports_arch/ARMv7-M/threadx/ghs/readme_threadx.txt
index 2f0cc0ea..784ccf41 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/readme_threadx.txt
+++ b/ports_arch/ARMv7-M/threadx/ghs/readme_threadx.txt
@@ -4,16 +4,16 @@
1. Open the ThreadX Project Workspace
-In order to build the ThreadX library and the ThreadX demonstration first load
-the Azure RTOS Workspace azure_rtos_workspace.gpj, which is located inside the
-"example_build" directory.
+In order to build the ThreadX library and the ThreadX demonstration first load
+the Azure RTOS Workspace azure_rtos_workspace.gpj, which is located inside the
+"example_build" directory.
2. Building the ThreadX run-time Library
-Building the ThreadX library is easy; simply select the MULTI project file
-tx.gpj and then select the build button. You should now observe the
-compilation and assembly of the ThreadX library. This project build produces
+Building the ThreadX library is easy; simply select the MULTI project file
+tx.gpj and then select the build button. You should now observe the
+compilation and assembly of the ThreadX library. This project build produces
the ThreadX library file tx.a.
@@ -21,52 +21,52 @@ the ThreadX library file tx.a.
The ThreadX demonstration is designed to execute under the MULTI environment
on the Green Hills Cortex-M7 simulator. The instructions that follow describe
-how to get the ThreadX evaluation running under the MULTI Cortex-M7 simulation
+how to get the ThreadX evaluation running under the MULTI Cortex-M7 simulation
environment.
-Building the demonstration is easy; simply select the MULTI project file
-sample_threadx.gpj. At this point, select the "Project Build" button and observe
-the compilation, assembly, and linkage of the ThreadX demonstration application.
+Building the demonstration is easy; simply select the MULTI project file
+sample_threadx.gpj. At this point, select the "Project Build" button and observe
+the compilation, assembly, and linkage of the ThreadX demonstration application.
-After the demonstration is built, invoke the MULTI ARM simulator by selecting
-the simulator connection from within the sample_threadx.con connection file.
-Once connected to the simulator, select the "Debug" button. You should now
-observe the main function of sample_threadx.c.
+After the demonstration is built, invoke the MULTI ARM simulator by selecting
+the simulator connection from within the sample_threadx.con connection file.
+Once connected to the simulator, select the "Debug" button. You should now
+observe the main function of sample_threadx.c.
-You are now ready to execute the ThreadX demonstration system. Select
-breakpoints and data watches to observe the execution of the sample_threadx.c
+You are now ready to execute the ThreadX demonstration system. Select
+breakpoints and data watches to observe the execution of the sample_threadx.c
application.
4. EventAnalyzer Demonstration
-To build a demonstration system that also logs events for the MULTI EventAnalyzer,
-perform the same steps as the regular demo, except build the ThreadX library with
-txe.gpj file and use the sample_threadx_el.gpj build file to build the demonstration.
-The resulting image will log all system events, which can then be displayed by the
+To build a demonstration system that also logs events for the MULTI EventAnalyzer,
+perform the same steps as the regular demo, except build the ThreadX library with
+txe.gpj file and use the sample_threadx_el.gpj build file to build the demonstration.
+The resulting image will log all system events, which can then be displayed by the
MULTI EventAnalyzer.
5. System Initialization
-The system entry point using the Green Hills tools is at the label _start.
-This is defined within the crt0.arm file supplied by Green Hills. In addition,
-this is where all static and global preset C variable initialization
+The system entry point using the Green Hills tools is at the label _start.
+This is defined within the crt0.arm file supplied by Green Hills. In addition,
+this is where all static and global preset C variable initialization
processing is called from.
After the Green Hills startup function returns, ThreadX initialization is
called. The main initialization function is _tx_initialize_low_level and
-is located in the file tx_initialize_low_level.arm. This function is responsible
-for setting up various system data structures, interrupt vectors, and the
+is located in the file tx_initialize_low_level.arm. This function is responsible
+for setting up various system data structures, interrupt vectors, and the
periodic timer interrupt source of ThreadX.
-In addition, _tx_initialize_low_level determines where the first available
+In addition, _tx_initialize_low_level determines where the first available
RAM memory address is located. This address is supplied to tx_application_define.
-By default, the first available RAM memory address is assumed to start at the
-beginning of the ThreadX section .free_mem. If changes are made to the
-sample_threadx.ld file, the .free_mem section should remain the last allocated
-section in the main RAM area. The starting address of this section is passed
+By default, the first available RAM memory address is assumed to start at the
+beginning of the ThreadX section .free_mem. If changes are made to the
+sample_threadx.ld file, the .free_mem section should remain the last allocated
+section in the main RAM area. The starting address of this section is passed
to tx_application_define.
@@ -75,13 +75,13 @@ to tx_application_define.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-M7 version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
- Stack Offset Stack Contents
+ Stack Offset Stack Contents
0x00 r4
0x04 r5
@@ -102,7 +102,7 @@ Non-FPU Stack Frame:
FPU Stack Frame (only interrupted thread with FPU enabled):
- Stack Offset Stack Contents
+ Stack Offset Stack Contents
0x00 s0
0x04 s1
@@ -137,41 +137,41 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
0x78 s30
0x7C s31
0x80 fpscr
- 0x84 r4
- 0x88 r5
- 0x8C r6
- 0x90 r7
- 0x94 r8
- 0x98 r9
- 0x9C r10 (sl)
- 0xA0 r11
+ 0x84 r4
+ 0x88 r5
+ 0x8C r6
+ 0x90 r7
+ 0x94 r8
+ 0x98 r9
+ 0x9C r10 (sl)
+ 0xA0 r11
0xA4 r0 (Hardware stack starts here!!)
- 0xA8 r1
- 0xAC r2
- 0xB0 r3
- 0xB4 r12
- 0xB8 lr
- 0xBC pc
- 0xC0 xPSR
+ 0xA8 r1
+ 0xAC r2
+ 0xB0 r3
+ 0xB4 r12
+ 0xB8 lr
+ 0xBC pc
+ 0xC0 xPSR
7. Improving Performance
-The distribution version of ThreadX is built without any compiler
-optimizations. This makes it easy to debug because you can trace or set
-breakpoints inside of ThreadX itself. Of course, this costs some
+The distribution version of ThreadX is built without any compiler
+optimizations. This makes it easy to debug because you can trace or set
+breakpoints inside of ThreadX itself. Of course, this costs some
performance. To make ThreadX run faster, you can change the tx.gpj project
-to disable debug information and enable the desired optimizations.
+to disable debug information and enable the desired optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined before tx_api.h is included.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined before tx_api.h is included.
8. Interrupt Handling
ThreadX provides complete and high-performance interrupt handling for Cortex-M7
-targets. There are a certain set of requirements that are defined in the
+targets. There are a certain set of requirements that are defined in the
following sub-sections:
@@ -183,7 +183,7 @@ the vector area according to its needs.
8.2 Managed Interrupts
-A ThreadX managed interrupt is defined below. By following these conventions, the
+A ThreadX managed interrupt is defined below. By following these conventions, the
application ISR is then allowed access to various ThreadX services from the ISR.
Here is the standard template for managed ISRs in ThreadX:
@@ -192,7 +192,7 @@ Here is the standard template for managed ISRs in ThreadX:
__tx_IntHandler:
PUSH {lr}
BL _tx_thread_context_save
-
+
/* Do interrupt handler work here */
B _tx_thread_context_restore
@@ -202,7 +202,7 @@ __tx_IntHandler:
By default, FPU support is disabled for each thread. If saving the context of the FPU registers
is needed, the ThreadX library should be re-built with TX_ENABLE_FPU_SUPPORT defined. In addition,
-the following API call must be made from the context of the application thread - before
+the following API call must be made from the context of the application thread - before
the FPU usage:
void tx_thread_fpu_enable(void);
@@ -223,7 +223,7 @@ For generic code revision information, please refer to the readme_threadx_generi
file, which is included in your distribution. The following details the revision
information associated with this specific port of ThreadX:
-05/19/2020 Initial ThreadX version of Cortex-M7/Green Hills port.
+05/19/2020 Initial ThreadX version of Cortex-M7/Green Hills port.
Copyright(c) 1996-2020 Microsoft Corporation
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_el.c b/ports_arch/ARMv7-M/threadx/ghs/src/tx_el.c
index 365622cd..b5d3b8b7 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_el.c
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_el.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -82,12 +83,6 @@ UINT _tx_thread_interrupt_control(UINT new_posture);
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* */
/**************************************************************************/
VOID _tx_el_initialize(VOID)
{
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_restore.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_restore.arm
index 3c1e598e..baede5ae 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_restore.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_restore.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_save.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_save.arm
index 03ae47d3..fe0497e9 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_save.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_context_save.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_control.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_control.arm
index a3272bcb..89972e7c 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_control.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_control.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_disable.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_disable.arm
index feb445a1..e45bd1b7 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_disable.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_disable.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_restore.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_restore.arm
index f07e4cc7..ccde153e 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_restore.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_interrupt_restore.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_schedule.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_schedule.arm
index 71ae7209..428c8833 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_schedule.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_schedule.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_stack_build.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_stack_build.arm
index 3a6160dc..37b19779 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_stack_build.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_stack_build.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_system_return.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_system_return.arm
index 8a0f1758..0f40b87e 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_system_return.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_thread_system_return.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/ghs/src/tx_timer_interrupt.arm b/ports_arch/ARMv7-M/threadx/ghs/src/tx_timer_interrupt.arm
index 7cba814e..08a636e3 100644
--- a/ports_arch/ARMv7-M/threadx/ghs/src/tx_timer_interrupt.arm
+++ b/ports_arch/ARMv7-M/threadx/ghs/src/tx_timer_interrupt.arm
@@ -1,10 +1,10 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_crt0.S b/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_crt0.S
index 4228fc11..e06430d7 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_crt0.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_crt0.S
@@ -39,7 +39,7 @@ crt0_ctor_loop:
beq crt0_ctor_end
ldr r2, [r0]
add r0, #4
- push {r0-r1}
+ push {r0-r1}
blx r2
pop {r0-r1}
b crt0_ctor_loop
@@ -88,4 +88,3 @@ memory_set_done:
.section .stack, "wa", %nobits
.section .stack_process, "wa", %nobits
.section .heap, "wa", %nobits
- \ No newline at end of file
diff --git a/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_vectors.S b/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_vectors.S
index 714944d5..7f3832f0 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_vectors.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/example_build/cortexm4_vectors.S
@@ -4,8 +4,8 @@
.global __tx_BadHandler
.global __tx_SVCallHandler
.global __tx_DBGHandler
- .global PendSV_Handler
- .global __tx_SysTickHandler
+ .global PendSV_Handler
+ .global __tx_SysTickHandler
.global __tx_BadHandler
.syntax unified
@@ -15,9 +15,9 @@
.global _vectors
_vectors:
- .word __stack_end__
- .word reset_handler
- .word __tx_NMIHandler
+ .word __stack_end__
+ .word reset_handler
+ .word __tx_NMIHandler
.word __tx_HardfaultHandler
.word __tx_BadHandler
.word __tx_BadHandler
@@ -29,7 +29,7 @@ _vectors:
.word __tx_SVCallHandler //_SVC_Handler - used by Threadx scheduler //
.word __tx_DBGHandler
.word 0 // Reserved
- .word PendSV_Handler
+ .word PendSV_Handler
.word __tx_SysTickHandler // Used by Threadx timer functionality
.word __tx_BadHandler // Populate with user Interrupt handler
.word __tx_BadHandler
diff --git a/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.c b/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.c
index 597f373c..13ffadba 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.c
+++ b/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.c
@@ -1,5 +1,5 @@
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
- threads of different priorities, using a message queue, semaphore, mutex, event flags group,
+ threads of different priorities, using a message queue, semaphore, mutex, event flags group,
byte pool, and block pool. */
#include "tx_api.h"
@@ -81,42 +81,42 @@ CHAR *pointer = TX_NULL;
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create the main thread. */
- tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
+ pointer, DEMO_STACK_SIZE,
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 1. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 1 and 2. These threads pass information through a ThreadX
+ /* Create threads 1 and 2. These threads pass information through a ThreadX
message queue. It is also interesting to note that these threads have a time
slice. */
- tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 2. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 3. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
+ /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
An interesting thing here is that both threads share the same instruction area. */
- tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 4. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 5. */
@@ -124,23 +124,23 @@ CHAR *pointer = TX_NULL;
/* Create thread 5. This thread simply pends on an event flag which will be set
by thread_0. */
- tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
+ pointer, DEMO_STACK_SIZE,
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 6. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
- tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 7. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the message queue. */
@@ -243,11 +243,11 @@ UINT status;
/* Retrieve a message from the queue. */
status = tx_queue_receive(&queue_0, &received_message, TX_WAIT_FOREVER);
- /* Check completion status and make sure the message is what we
+ /* Check completion status and make sure the message is what we
expected. */
if ((status != TX_SUCCESS) || (received_message != thread_2_messages_received))
break;
-
+
/* Otherwise, all is okay. Increment the received message count. */
thread_2_messages_received++;
}
@@ -306,7 +306,7 @@ ULONG actual_flags;
thread_5_counter++;
/* Wait for event flag 0. */
- status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
+ status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
&actual_flags, TX_WAIT_FOREVER);
/* Check status. */
@@ -359,7 +359,7 @@ UINT status;
if (status != TX_SUCCESS)
break;
- /* Release the mutex again. This will actually
+ /* Release the mutex again. This will actually
release ownership since it was obtained twice. */
status = tx_mutex_put(&mutex_0);
diff --git a/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.ld b/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.ld
index c65a1346..3f19c29e 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.ld
+++ b/ports_arch/ARMv7-M/threadx/gnu/example_build/sample_threadx.ld
@@ -10,7 +10,7 @@ __HEAPSIZE__ = 128;
SECTIONS
{
- .vectors :
+ .vectors :
{
KEEP(*(.vectors .vectors.*))
} > FLASH
@@ -45,7 +45,7 @@ SECTIONS
KEEP(*(.eh_frame*))
} > FLASH
- .ARM.extab :
+ .ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > FLASH
@@ -59,7 +59,7 @@ SECTIONS
__data_load_start__ = ALIGN (4);
- .data : AT (__data_load_start__)
+ .data : AT (__data_load_start__)
{
__data_start__ = .;
@@ -89,7 +89,7 @@ SECTIONS
KEEP(*(.jcr*))
. = ALIGN(4);
/* All data end */
-
+
__data_end__ = .;
} > RAM
@@ -104,7 +104,7 @@ SECTIONS
__bss_end__ = .;
} > RAM
-
+
.heap (COPY):
{
__heap_start__ = ALIGN(4);
diff --git a/ports_arch/ARMv7-M/threadx/gnu/example_build/tx_initialize_low_level.S b/ports_arch/ARMv7-M/threadx/gnu/example_build/tx_initialize_low_level.S
index afc28b48..8fce83db 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/example_build/tx_initialize_low_level.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/example_build/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -73,15 +74,6 @@ SYSTICK_CYCLES = ((SYSTEM_CLOCK / 100) -1)
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/readme_threadx.txt b/ports_arch/ARMv7-M/threadx/gnu/readme_threadx.txt
index d9063d65..58181f85 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/readme_threadx.txt
+++ b/ports_arch/ARMv7-M/threadx/gnu/readme_threadx.txt
@@ -5,15 +5,15 @@
1. Building the ThreadX run-time Library
-Navigate to the "example_build" directory. Ensure that
-you have setup your path and other environment variables necessary for the ARM
-GNU compiler. At this point you may run the build_threadx.bat batch file.
-This will build the ThreadX run-time environment in the "example_build"
-directory.
+Navigate to the "example_build" directory. Ensure that
+you have setup your path and other environment variables necessary for the ARM
+GNU compiler. At this point you may run the build_threadx.bat batch file.
+This will build the ThreadX run-time environment in the "example_build"
+directory.
-You should observe assembly and compilation of a series of ThreadX source
-files. At the end of the batch file, they are all combined into the
-run-time library file: tx.a. This file must be linked with your
+You should observe assembly and compilation of a series of ThreadX source
+files. At the end of the batch file, they are all combined into the
+run-time library file: tx.a. This file must be linked with your
application in order to use ThreadX.
@@ -22,25 +22,25 @@ application in order to use ThreadX.
The ThreadX demonstration is designed to execute on Cortex-M evaluation boards
or on a dedicated simulator.
-Building the demonstration is easy, simply execute the build_threadx_sample.bat
+Building the demonstration is easy, simply execute the build_threadx_sample.bat
batch file while inside the "example_build" directory.
-You should observe the compilation of sample_threadx.c (which is the demonstration
-application) and linking with tx.a. The resulting file sample_threadx.out is a binary
+You should observe the compilation of sample_threadx.c (which is the demonstration
+application) and linking with tx.a. The resulting file sample_threadx.out is a binary
file that can be downloaded and executed on the a simulator, or downloaded to a board.
3. System Initialization
-The entry point in ThreadX for the Cortex-M using gnu tools uses the standard GNU
+The entry point in ThreadX for the Cortex-M using gnu tools uses the standard GNU
Cortex-M reset sequence. From the reset vector the C runtime will be initialized.
-The ThreadX tx_initialize_low_level.S file is responsible for setting up
-various system data structures, the vector area, and a periodic timer interrupt
-source.
+The ThreadX tx_initialize_low_level.S file is responsible for setting up
+various system data structures, the vector area, and a periodic timer interrupt
+source.
-In addition, _tx_initialize_low_level determines the first available
-address for use by the application, which is supplied as the sole input
+In addition, _tx_initialize_low_level determines the first available
+address for use by the application, which is supplied as the sole input
parameter to your application definition function, tx_application_define.
@@ -49,7 +49,7 @@ parameter to your application definition function, tx_application_define.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-M version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -132,34 +132,34 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
5. Improving Performance
-The distribution version of ThreadX is built without any compiler optimizations.
-This makes it easy to debug because you can trace or set breakpoints inside of
-ThreadX itself. Of course, this costs some performance. To make it run faster,
-you can change the build_threadx.bat file to remove the -g option and enable
-all compiler optimizations.
+The distribution version of ThreadX is built without any compiler optimizations.
+This makes it easy to debug because you can trace or set breakpoints inside of
+ThreadX itself. Of course, this costs some performance. To make it run faster,
+you can change the build_threadx.bat file to remove the -g option and enable
+all compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
6. Interrupt Handling
ThreadX provides complete and high-performance interrupt handling for Cortex-M
-targets. There are a certain set of requirements that are defined in the
+targets. There are a certain set of requirements that are defined in the
following sub-sections:
6.1 Vector Area
The Cortex-M vectors start at the label __tx_vectors or similar. The application may modify
-the vector area according to its needs. There is code in tx_initialize_low_level() that will
-configure the vector base register.
+the vector area according to its needs. There is code in tx_initialize_low_level() that will
+configure the vector base register.
6.2 Managed Interrupts
-A ThreadX managed interrupt is defined below. By following these conventions, the
+A ThreadX managed interrupt is defined below. By following these conventions, the
application ISR is then allowed access to various ThreadX services from the ISR.
Here is the standard template for managed ISRs in ThreadX:
@@ -181,15 +181,15 @@ __tx_IntHandler:
Note: the Cortex-M requires exception handlers to be thumb labels, this implies bit 0 set.
To accomplish this, the declaration of the label has to be preceded by the assembler directive
-.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
-be inserted in the correct location in the interrupt vector table. This table is typically
+.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
+be inserted in the correct location in the interrupt vector table. This table is typically
located in either your runtime startup file or in the tx_initialize_low_level.S file.
7. FPU Support
-ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context - no additional setup by the application.
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_misra.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_misra.S
index 8ac0c629..10548671 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_misra.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_misra.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -667,7 +668,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -682,7 +683,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARM_FP
/***********************************************************************************************/
@@ -699,8 +700,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -714,9 +715,9 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
+
.data
.word 0
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_restore.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_restore.S
index 4c734a07..202da934 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,14 +62,6 @@
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_save.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_save.S
index 7d16fdf7..cfd47ebe 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_control.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_control.S
index fdb3bbb0..5946f28a 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_control.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_control.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_disable.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_disable.S
index 666d934e..3c6e0b80 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_disable.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_disable.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_restore.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_restore.S
index 4adebd17..e8c9ca45 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_restore.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_interrupt_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_schedule.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_schedule.S
index 474eab0c..65c5ad50 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -68,18 +69,6 @@
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Fixed predefined macro name, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_stack_build.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_stack_build.S
index 23563935..bd9718fd 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,14 +60,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_system_return.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_system_return.S
index a0174cc2..8b681747 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,14 +60,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/gnu/src/tx_timer_interrupt.S b/ports_arch/ARMv7-M/threadx/gnu/src/tx_timer_interrupt.S
index 08a75fc1..c966161a 100644
--- a/ports_arch/ARMv7-M/threadx/gnu/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv7-M/threadx/gnu/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -70,17 +71,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/example_build/cstartup_M.s b/ports_arch/ARMv7-M/threadx/iar/example_build/cstartup_M.s
index 8b7fbc0d..a01d262a 100644
--- a/ports_arch/ARMv7-M/threadx/iar/example_build/cstartup_M.s
+++ b/ports_arch/ARMv7-M/threadx/iar/example_build/cstartup_M.s
@@ -2,16 +2,16 @@
PUBLIC __vector_table
SECTION .text:CODE:REORDER(1)
-
+
;; Keep vector table even if it's not referenced
REQUIRE __vector_table
-
+
THUMB
-
+
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
-
+
DATA
__vector_table
diff --git a/ports_arch/ARMv7-M/threadx/iar/example_build/sample_threadx.c b/ports_arch/ARMv7-M/threadx/iar/example_build/sample_threadx.c
index 60f5a3d3..55b63731 100644
--- a/ports_arch/ARMv7-M/threadx/iar/example_build/sample_threadx.c
+++ b/ports_arch/ARMv7-M/threadx/iar/example_build/sample_threadx.c
@@ -1,5 +1,5 @@
/* This is a small demo of the high-performance ThreadX kernel. It includes examples of eight
- threads of different priorities, using a message queue, semaphore, mutex, event flags group,
+ threads of different priorities, using a message queue, semaphore, mutex, event flags group,
byte pool, and block pool. Please refer to Chapter 6 of the ThreadX User Guide for a complete
description of this demonstration. */
@@ -69,7 +69,7 @@ void thread_6_and_7_entry(ULONG thread_input);
int main()
{
-
+
/* Please refer to Chapter 6 of the ThreadX User Guide for a complete
description of this demonstration. */
@@ -101,41 +101,41 @@ CHAR *pointer = TX_NULL;
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create the main thread. */
- tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_0, "thread 0", thread_0_entry, 0,
+ pointer, DEMO_STACK_SIZE,
1, 1, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 1. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 1 and 2. These threads pass information through a ThreadX
+ /* Create threads 1 and 2. These threads pass information through a ThreadX
message queue. It is also interesting to note that these threads have a time
slice. */
- tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 2. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2,
+ pointer, DEMO_STACK_SIZE,
16, 16, 4, TX_AUTO_START);
/* Allocate the stack for thread 3. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
+ /* Create threads 3 and 4. These threads compete for a ThreadX counting semaphore.
An interesting thing here is that both threads share the same instruction area. */
- tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_3, "thread 3", thread_3_and_4_entry, 3,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 4. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_4, "thread 4", thread_3_and_4_entry, 4,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 5. */
@@ -143,23 +143,23 @@ CHAR *pointer = TX_NULL;
/* Create thread 5. This thread simply pends on an event flag which will be set
by thread_0. */
- tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_5, "thread 5", thread_5_entry, 5,
+ pointer, DEMO_STACK_SIZE,
4, 4, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 6. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
/* Create threads 6 and 7. These threads compete for a ThreadX mutex. */
- tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_6, "thread 6", thread_6_and_7_entry, 6,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the stack for thread 7. */
tx_byte_allocate(&byte_pool_0, (VOID **) &pointer, DEMO_STACK_SIZE, TX_NO_WAIT);
- tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
- pointer, DEMO_STACK_SIZE,
+ tx_thread_create(&thread_7, "thread 7", thread_6_and_7_entry, 7,
+ pointer, DEMO_STACK_SIZE,
8, 8, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Allocate the message queue. */
@@ -262,11 +262,11 @@ UINT status;
/* Retrieve a message from the queue. */
status = tx_queue_receive(&queue_0, &received_message, TX_WAIT_FOREVER);
- /* Check completion status and make sure the message is what we
+ /* Check completion status and make sure the message is what we
expected. */
if ((status != TX_SUCCESS) || (received_message != thread_2_messages_received))
break;
-
+
/* Otherwise, all is okay. Increment the received message count. */
thread_2_messages_received++;
}
@@ -325,7 +325,7 @@ ULONG actual_flags;
thread_5_counter++;
/* Wait for event flag 0. */
- status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
+ status = tx_event_flags_get(&event_flags_0, 0x1, TX_OR_CLEAR,
&actual_flags, TX_WAIT_FOREVER);
/* Check status. */
@@ -378,7 +378,7 @@ UINT status;
if (status != TX_SUCCESS)
break;
- /* Release the mutex again. This will actually
+ /* Release the mutex again. This will actually
release ownership since it was obtained twice. */
status = tx_mutex_put(&mutex_0);
diff --git a/ports_arch/ARMv7-M/threadx/iar/example_build/tx_initialize_low_level.s b/ports_arch/ARMv7-M/threadx/iar/example_build/tx_initialize_low_level.s
index 585a3dc8..d2c2e07f 100644
--- a/ports_arch/ARMv7-M/threadx/iar/example_build/tx_initialize_low_level.s
+++ b/ports_arch/ARMv7-M/threadx/iar/example_build/tx_initialize_low_level.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -69,16 +70,6 @@ __tx_free_memory_start
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/readme_threadx.txt b/ports_arch/ARMv7-M/threadx/iar/readme_threadx.txt
index 28b54e03..388c40e6 100644
--- a/ports_arch/ARMv7-M/threadx/iar/readme_threadx.txt
+++ b/ports_arch/ARMv7-M/threadx/iar/readme_threadx.txt
@@ -6,45 +6,45 @@
1. Building the ThreadX run-time Library
Building the ThreadX library is easy. First, open the Azure RTOS workspace
-azure_rtos.eww. Next, make the TX project the "active project" in the
-IAR Embedded Workbench and select the "Make" button. You should observe
-assembly and compilation of a series of ThreadX source files. This
-results in the ThreadX run-time library file tx.a, which is needed by
+azure_rtos.eww. Next, make the TX project the "active project" in the
+IAR Embedded Workbench and select the "Make" button. You should observe
+assembly and compilation of a series of ThreadX source files. This
+results in the ThreadX run-time library file tx.a, which is needed by
the application.
2. Demonstration System
-The ThreadX demonstration is designed to execute under the IAR debugger under
+The ThreadX demonstration is designed to execute under the IAR debugger under
simulation.
Building the demonstration is easy; simply open the threadx.www workspace file,
-make the sample_threadx.ewp project the "active project" in the IAR Embedded
+make the sample_threadx.ewp project the "active project" in the IAR Embedded
Workbench, and select the "Make" button.
-You should observe the compilation of sample_threadx.c (which is the demonstration
-application) and linking with tx.a. The resulting file sample_threadx.out is a
-binary ELF file that can be downloaded and executed on the IAR Windows-based
+You should observe the compilation of sample_threadx.c (which is the demonstration
+application) and linking with tx.a. The resulting file sample_threadx.out is a
+binary ELF file that can be downloaded and executed on the IAR Windows-based
Cortex-M simulator.
3. System Initialization
-The entry point in ThreadX for the Cortex-M using IAR tools is at label
-__iar_program_start. This is defined within the IAR compiler's startup code.
-In addition, this is where all static and global preset C variable
+The entry point in ThreadX for the Cortex-M using IAR tools is at label
+__iar_program_start. This is defined within the IAR compiler's startup code.
+In addition, this is where all static and global preset C variable
initialization processing takes place.
-The ThreadX tx_initialize_low_level.s file is responsible for setting up
-various system data structures, and a periodic timer interrupt source.
+The ThreadX tx_initialize_low_level.s file is responsible for setting up
+various system data structures, and a periodic timer interrupt source.
By default, the vector area is defined at the top of cstartup_M.s, which is
-a slightly modified from the base IAR file.
+a slightly modified from the base IAR file.
The _tx_initialize_low_level function inside of tx_initialize_low_level.s
-also determines the first available address for use by the application, which
-is supplied as the sole input parameter to your application definition function,
-tx_application_define. To accomplish this, a section is created in
-tx_initialize_low_level.s called FREE_MEM, which must be located after all
+also determines the first available address for use by the application, which
+is supplied as the sole input parameter to your application definition function,
+tx_application_define. To accomplish this, a section is created in
+tx_initialize_low_level.s called FREE_MEM, which must be located after all
other RAM sections in memory.
@@ -53,7 +53,7 @@ other RAM sections in memory.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-M version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -136,20 +136,20 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
5. Improving Performance
-The distribution version of ThreadX is built without any compiler
-optimizations. This makes it easy to debug because you can trace or set
-breakpoints inside of ThreadX itself. Of course, this costs some
+The distribution version of ThreadX is built without any compiler
+optimizations. This makes it easy to debug because you can trace or set
+breakpoints inside of ThreadX itself. Of course, this costs some
performance. To make it run faster, you can change the ThreadX library
project to enable various compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
6. Interrupt Handling
-The Cortex-M vectors start at the label __vector_table and is defined in cstartup_M.s.
+The Cortex-M vectors start at the label __vector_table and is defined in cstartup_M.s.
The application may modify the vector area according to its needs.
@@ -188,14 +188,14 @@ should have the following line added (if not already in place):
initialize by copy with packing = none { section __DLIB_PERTHREAD }; // Required in a multi-threaded application
-The project options "General Options -> Library Configuration" should also have the
+The project options "General Options -> Library Configuration" should also have the
"Enable thread support in library" box selected.
8. VFP Support
-ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-M supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context - no additional setup by the application.
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_iar.c b/ports_arch/ARMv7-M/threadx/iar/src/tx_iar.c
index ee47f10f..238b485e 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_iar.c
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_iar.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -37,31 +38,31 @@
#include "tx_mutex.h"
-/* This implementation requires that the following macros are defined in the
+/* This implementation requires that the following macros are defined in the
tx_port.h file and <yvals.h> is included with the following code segments:
-
+
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
#include <yvals.h>
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
+#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
#else
-#define TX_THREAD_EXTENSION_2
+#define TX_THREAD_EXTENSION_2
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
#define TX_THREAD_DELETE_EXTENSION(thread_ptr) __iar_dlib_perthread_deallocate(thread_ptr -> tx_thread_iar_tls_pointer); \
- thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL;
+ thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL;
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION __iar_dlib_perthread_access(0);
#else
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
-#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
+#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
#endif
- This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
- application.
+ This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
+ application.
Finally, the project options General Options -> Library Configuration should have the "Enable thread support in library" box selected.
*/
@@ -90,7 +91,7 @@ void _DLIB_TLS_MEMORY *__iar_dlib_perthread_access(void _DLIB_TLS_MEMORY *symbp)
{
char _DLIB_TLS_MEMORY *p = 0;
-
+
/* Is there a current thread? */
if (_tx_thread_current_ptr)
p = (char _DLIB_TLS_MEMORY *) _tx_thread_current_ptr -> tx_thread_iar_tls_pointer;
@@ -117,19 +118,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_system_lock_mutexes[__tx_iar_system_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_system_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_system_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -138,35 +139,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_system_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR System Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_system_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -185,25 +186,25 @@ void __iar_system_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -215,25 +216,25 @@ void __iar_system_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -267,19 +268,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_file_lock_mutexes[__tx_iar_file_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_file_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_file_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -288,35 +289,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_file_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR File Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_file_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -335,25 +336,25 @@ void __iar_file_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -365,25 +366,25 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -404,17 +405,17 @@ UINT status;
#include "tx_thread.h"
#include "tx_mutex.h"
-/* This implementation requires that the following macros are defined in the
+/* This implementation requires that the following macros are defined in the
tx_port.h file and <yvals.h> is included with the following code segments:
-
+
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
#include <yvals.h>
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
+#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
#else
-#define TX_THREAD_EXTENSION_2
+#define TX_THREAD_EXTENSION_2
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
@@ -422,17 +423,17 @@ void *_tx_iar_create_per_thread_tls_area(void);
void _tx_iar_destroy_per_thread_tls_area(void *tls_ptr);
void __iar_Initlocks(void);
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
#define TX_THREAD_DELETE_EXTENSION(thread_ptr) do {__iar_dlib_perthread_deallocate(thread_ptr -> tx_thread_iar_tls_pointer); \
thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL; } while(0);
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION do {__iar_Initlocks();} while(0);
#else
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
-#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
+#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
#endif
- This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
- application.
+ This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
+ application.
Finally, the project options General Options -> Library Configuration should have the "Enable thread support in library" box selected.
*/
@@ -456,7 +457,7 @@ void * __aeabi_read_tp(void)
TX_THREAD *thread_ptr = _tx_thread_current_ptr;
if (thread_ptr)
{
- p = thread_ptr->tx_thread_iar_tls_pointer;
+ p = thread_ptr->tx_thread_iar_tls_pointer;
}
else
{
@@ -469,9 +470,9 @@ void * __aeabi_read_tp(void)
void* _tx_iar_create_per_thread_tls_area()
{
- UINT tls_size = __iar_tls_size();
-
- /* Get memory for TLS. */
+ UINT tls_size = __iar_tls_size();
+
+ /* Get memory for TLS. */
void *p = malloc(tls_size);
/* Initialize TLS-area and run constructors for objects in TLS */
@@ -483,7 +484,7 @@ void _tx_iar_destroy_per_thread_tls_area(void *tls_ptr)
{
/* Destroy objects living in TLS */
__call_thread_dtors();
- free(tls_ptr);
+ free(tls_ptr);
}
#ifndef _MAX_LOCK
@@ -517,19 +518,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_system_lock_mutexes[__tx_iar_system_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_system_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_system_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -538,35 +539,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_system_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR System Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_system_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -582,28 +583,28 @@ void __iar_system_Mtxdst(__iar_Rmtx *m)
void __iar_system_Mtxlock(__iar_Rmtx *m)
{
if (*m)
- {
+ {
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -616,25 +617,25 @@ void __iar_system_Mtxunlock(__iar_Rmtx *m)
{
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -675,19 +676,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_file_lock_mutexes[__tx_iar_file_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_file_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_file_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -696,35 +697,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_file_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR File Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_file_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -743,25 +744,25 @@ void __iar_file_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -773,25 +774,25 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_misra.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_misra.s
index f86d9a65..642bb89e 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_misra.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_misra.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -120,7 +121,7 @@
SECTION `.data`:DATA:REORDER:NOROOT(2)
DATA
-// 51 CHAR _tx_version_id[100] = "Copyright (c) 2024 Microsoft Corporation. * ThreadX 6.1 MISRA C Compliant *";
+// 51 CHAR _tx_version_id[100] = "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX 6.1 MISRA C Compliant *";
_tx_version_id:
DC8 43H, 6FH, 70H, 79H, 72H, 69H, 67H, 68H
DC8 74H, 20H, 28H, 63H, 29H, 20H, 31H, 39H
@@ -707,7 +708,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -722,7 +723,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARMVFP__
/***********************************************************************************************/
@@ -739,8 +740,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -754,10 +755,10 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
-
+
+
SECTION `.iar_vfe_header`:DATA:NOALLOC:NOROOT(2)
SECTION_TYPE SHT_PROGBITS, 0
DATA
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_restore.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_restore.s
index 657e73c6..b77c22bc 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_restore.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,15 +57,6 @@
/* CALLED BY */
/* */
/* ISRs Interrupt Service Routines */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_save.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_save.s
index c21720ed..0980c63e 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_save.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_context_save.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,15 +57,6 @@
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_control.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_control.s
index 77311f06..c5de9169 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_control.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_control.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,15 +56,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_disable.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_disable.s
index 70310f96..24ff7aaa 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_disable.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_disable.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,15 +56,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_restore.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_restore.s
index aaa927c6..528a9759 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_restore.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_interrupt_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,15 +56,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_schedule.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_schedule.s
index 0035d150..d38774b8 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_schedule.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_schedule.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -67,17 +68,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_stack_build.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_stack_build.s
index 3accc5eb..b5e707d9 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_stack_build.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,15 +58,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_system_return.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_system_return.s
index b820a534..65bec5a5 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_system_return.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_thread_system_return.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,15 +58,6 @@
/* CALLED BY */
/* */
/* ThreadX components */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/src/tx_timer_interrupt.s b/ports_arch/ARMv7-M/threadx/iar/src/tx_timer_interrupt.s
index 7ce6280c..d6101ce4 100644
--- a/ports_arch/ARMv7-M/threadx/iar/src/tx_timer_interrupt.s
+++ b/ports_arch/ARMv7-M/threadx/iar/src/tx_timer_interrupt.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,18 +72,6 @@
/* CALLED BY */
/* */
/* interrupt vector */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comment(s), added */
-/* TX_NO_TIMER support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Included tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx/iar/tx_low_power.c b/ports_arch/ARMv7-M/threadx/iar/tx_low_power.c
index b983ed9e..7a463f65 100644
--- a/ports_arch/ARMv7-M/threadx/iar/tx_low_power.c
+++ b/ports_arch/ARMv7-M/threadx/iar/tx_low_power.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,12 +72,6 @@ UINT tx_low_power_entered;
/* */
/* _tx_thread_schedule Thread scheduling loop */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 05-19-2020 William E. Lamie Initial Version 6.0 */
-/* */
/**************************************************************************/
VOID tx_low_power_enter(VOID)
{
@@ -88,12 +83,12 @@ ULONG any_expired;
/* The below macro is user-defined code to determine
if low power mode is beneficial for the application.
- Reasons for not entering low power mode include
- the overhead associated with entering and exiting low power mode
- outweighs the savings given when the next interrupt is expected.
- In addition, the application might also be in a state where
- responsiveness is more important than power savings. In such
- situations, using a "reduced power mode" might make more sense.
+ Reasons for not entering low power mode include
+ the overhead associated with entering and exiting low power mode
+ outweighs the savings given when the next interrupt is expected.
+ In addition, the application might also be in a state where
+ responsiveness is more important than power savings. In such
+ situations, using a "reduced power mode" might make more sense.
In any case, if low power mode is not desired, simply return at
this point in the code. */
#ifdef TX_LOW_POWER_USER_CHECK
@@ -102,45 +97,45 @@ ULONG any_expired;
/* Disable interrupts while we prepare for low power mode. */
TX_DISABLE
-
+
/* At this point, we want to enter low power mode, since nothing
- meaningful is going on in the system. However, in order to keep
- the ThreadX timer services accurate, we must first determine the
- next ThreadX timer expiration in terms of ticks. This is
+ meaningful is going on in the system. However, in order to keep
+ the ThreadX timer services accurate, we must first determine the
+ next ThreadX timer expiration in terms of ticks. This is
accomplished via the tx_timer_get_next API. */
any_expired = tx_timer_get_next(&tx_low_power_next_expiration);
-
+
/* There are two possibilities:
1: A ThreadX timer is active. tx_timer_get_next returns TX_TRUE.
Program the hardware timer source such that the next timer
- interrupt is equal to: tx_low_power_next_expiration*tick_frequency.
+ interrupt is equal to: tx_low_power_next_expiration*tick_frequency.
In most applications, the tick_frequency is 10ms, but this is
- completely application specific in ThreadX, typically set up
+ completely application specific in ThreadX, typically set up
in tx_low_level_initialize.
2: There are no ThreadX timers active. tx_timer_get_next returns TX_FALSE.
- If you don't care about maintaining the ThreadX system clock, you can simply
- sleep forever (until an interrupt wakes you up).
- If you do want to maintain the ThreadX system clock,
+ If you don't care about maintaining the ThreadX system clock, you can simply
+ sleep forever (until an interrupt wakes you up).
+ If you do want to maintain the ThreadX system clock,
program the hardware timer so you can keep track of elapsed time. */
#ifdef TX_LOW_POWER_USER_TIMER_SETUP
TX_LOW_POWER_USER_TIMER_SETUP(any_expired, tx_low_power_next_expiration);
#endif
-
- /* Set the flag indicating that low power has been entered. This
+
+ /* Set the flag indicating that low power has been entered. This
flag is checked in tx_low_power_exit to determine if the logic
used to adjust the ThreadX time is required. */
tx_low_power_entered = TX_TRUE;
-
+
/* Re-enable interrupts before low power mode is entered. */
TX_RESTORE
-
+
/* User code to enter low power mode. */
#ifdef TX_LOW_POWER_USER_ENTER
TX_LOW_POWER_USER_ENTER;
#endif
- /* If the low power code returns, this routine returns to the
+ /* If the low power code returns, this routine returns to the
tx_thread_schedule loop. */
}
@@ -198,23 +193,23 @@ ULONG tx_low_power_adjust_ticks;
/* Clear the low power entered flag. */
tx_low_power_entered = TX_FALSE;
-
- /* User code to exit low power mode and reprogram the
+
+ /* User code to exit low power mode and reprogram the
timer to the desired interrupt frequency. */
#ifdef TX_LOW_POWER_USER_EXIT
TX_LOW_POWER_USER_EXIT;
#endif
-
- /* User code to determine how many timer ticks (interrupts) that
- the ThreadX time should be incremented to properly adjust
- for the time in low power mode. The result is assumed to be
+
+ /* User code to determine how many timer ticks (interrupts) that
+ the ThreadX time should be incremented to properly adjust
+ for the time in low power mode. The result is assumed to be
placed in tx_low_power_adjust_ticks. */
#ifdef TX_LOW_POWER_USER_TIMER_ADJUST
tx_low_power_adjust_ticks = TX_LOW_POWER_USER_TIMER_ADJUST;
#else
tx_low_power_adjust_ticks = (ULONG)0;
#endif
-
+
/* Determine if the ThreadX timer needs incrementing. */
if (tx_low_power_adjust_ticks)
{
@@ -330,7 +325,7 @@ ULONG expiration_time = (ULONG) 0xFFFFFFFF;
} while (next_timer != *timer_list_head);
}
-
+
/* This timer entry is NULL, so just move to the next one. */
timer_list_head++;
@@ -438,14 +433,14 @@ TX_TIMER_INTERNAL *temp_list_head;
else
_tx_timer_time_slice = 1;
}
-
+
/* Calculate the proper place to position the timer. */
timer_list_head = _tx_timer_current_ptr;
/* Setup the temporary list pointer. */
temp_list_head = TX_NULL;
- /* Loop to pull all timers off the timer structure and put on the
+ /* Loop to pull all timers off the timer structure and put on the
the temporary list head. */
for (i = 0; i < TX_TIMER_ENTRIES; i++)
{
@@ -468,7 +463,7 @@ TX_TIMER_INTERNAL *temp_list_head;
{
/* Calculate the actual expiration time. */
- next_timer -> tx_timer_internal_remaining_ticks =
+ next_timer -> tx_timer_internal_remaining_ticks =
next_timer -> tx_timer_internal_remaining_ticks - (TX_TIMER_ENTRIES - i) + 1;
}
else
@@ -491,7 +486,7 @@ TX_TIMER_INTERNAL *temp_list_head;
if (temp_list_head == TX_NULL)
{
- /* First item on the list. Move the entire
+ /* First item on the list. Move the entire
linked list. */
temp_list_head = *timer_list_head;
}
@@ -509,7 +504,7 @@ TX_TIMER_INTERNAL *temp_list_head;
/* Now clear the current timer head pointer. */
*timer_list_head = TX_NULL;
}
-
+
/* Move to next timer entry. */
timer_list_head++;
@@ -535,7 +530,7 @@ TX_TIMER_INTERNAL *temp_list_head;
/* Move the temp list head pointer to the next pointer. */
temp_list_head = next_timer -> tx_timer_internal_active_next;
- /* Determine if the remaining time is greater than the time increment
+ /* Determine if the remaining time is greater than the time increment
value - this is the normal case. */
if (next_timer -> tx_timer_internal_remaining_ticks > time_increment)
{
diff --git a/ports_arch/ARMv7-M/threadx/iar/tx_low_power.h b/ports_arch/ARMv7-M/threadx/iar/tx_low_power.h
index 8fa7fccb..7b1713d7 100644
--- a/ports_arch/ARMv7-M/threadx/iar/tx_low_power.h
+++ b/ports_arch/ARMv7-M/threadx/iar/tx_low_power.h
@@ -1,17 +1,18 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
/**************************************************************************/
/**************************************************************************/
-/** */
+/** */
/** ThreadX Component */
/** */
/** Timer Management */
@@ -20,26 +21,20 @@
/**************************************************************************/
-/**************************************************************************/
-/* */
-/* COMPONENT DEFINITION RELEASE */
-/* */
-/* tx_low_power.h PORTABLE C */
+/**************************************************************************/
+/* */
+/* COMPONENT DEFINITION RELEASE */
+/* */
+/* tx_low_power.h PORTABLE C */
/* 6.0 */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
/* */
/* DESCRIPTION */
-/* */
-/* This file defines prototypes for the low-power timer additions */
-/* required for sleep mode. */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
/* */
-/* 05-19-2020 William E. Lamie Initial Version 6.0 */
+/* This file defines prototypes for the low-power timer additions */
+/* required for sleep mode. */
/* */
/**************************************************************************/
diff --git a/ports_arch/ARMv7-M/threadx/inc/tx_port.h b/ports_arch/ARMv7-M/threadx/inc/tx_port.h
index 4d1e34f8..35884cf1 100644
--- a/ports_arch/ARMv7-M/threadx/inc/tx_port.h
+++ b/ports_arch/ARMv7-M/threadx/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -45,23 +46,6 @@
/* This file replaces the previous Cortex-M3/M4/M7 files. It unifies */
/* the ARMv7-M architecture and compilers into one common file. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 01-31-2022 Scott Larson Modified comments, updated */
-/* typedef to fix misra */
-/* violation, */
-/* fixed predefined macro, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 Scott Larson Modified comments and added */
-/* volatile to registers, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Modified comments and */
-/* described BASEPRI usage, */
-/* resulting in version 6.1.12 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -371,7 +355,7 @@ void _tx_vfp_access(void);
/* A thread can be terminated by another thread, so we first check if it's self-terminating and not in an ISR.
If so, deactivate the FPU via CONTROL.FPCA. Otherwise we are in an interrupt or another thread is terminating
- this one, so if the FPCCR.LSPACT bit is set, we need to save the CONTROL.FPCA state, touch the FPU to flush
+ this one, so if the FPCCR.LSPACT bit is set, we need to save the CONTROL.FPCA state, touch the FPU to flush
the lazy FPU save, then restore the CONTROL.FPCA state. */
#ifndef TX_MISRA_ENABLE
@@ -530,7 +514,7 @@ ULONG _tx_misra_ipsr_get(VOID);
#define TX_LOWEST_SET_BIT_CALCULATE(m, b) (b) = (UINT) __clz(__rbit((m)));
#elif defined(__GNUC__) /* GCC and AC6 Compiler */
#define TX_LOWEST_SET_BIT_CALCULATE(m, b) __asm__ volatile (" RBIT %0,%1 ": "=r" (m) : "r" (m) ); \
- __asm__ volatile (" CLZ %0,%1 ": "=r" (b) : "r" (m) );
+ __asm__ volatile (" CLZ %0,%1 ": "=r" (b) : "r" (m) );
#endif
@@ -715,7 +699,7 @@ void tx_thread_fpu_disable(void);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX Cortex-Mx Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX Cortex-Mx Version 6.5.0.202601 *";
#else
#ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100];
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_initialize.s b/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_initialize.s
index 44d8649e..cfaf64d3 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_initialize.s
+++ b/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_initialize.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,13 +54,6 @@
/* CALLED BY */
/* */
/* _txm_module_thread_shell_entry Start module thread */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
// VOID _txm_module_initialize(VOID)
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_thread_shell_entry.c b/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_thread_shell_entry.c
index 324e14c1..0e46caea 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_thread_shell_entry.c
+++ b/ports_arch/ARMv7-M/threadx_modules/ac5/module_lib/src/txm_module_thread_shell_entry.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -87,12 +88,6 @@ __align(8) UCHAR txm_heap[TXM_MODULE_HEAP_SIZE];
/* */
/* Initial thread stack frame */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_ENTRY_INFO *thread_info)
{
@@ -108,14 +103,14 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
{
/* Initialize the C environment. */
_txm_module_initialize();
-
+
/* Save the entry info pointer, for later use. */
_txm_module_entry_info = thread_info;
-
+
/* Save the kernel function dispatch address. This is used to make all resident calls from
the module. */
_txm_module_kernel_call_dispatcher = thread_info -> txm_module_thread_entry_info_kernel_call_dispatcher;
-
+
/* Ensure that we have a valid pointer. */
while (!_txm_module_kernel_call_dispatcher)
{
@@ -123,7 +118,7 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
An error here typically indicates the resident portion of _tx_thread_schedule
is not supporting the trap to obtain the function pointer. */
}
-
+
/* Resume the module's callback thread, already created in the manager. */
_txe_thread_resume(thread_info -> txm_module_thread_entry_info_callback_request_thread);
}
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/tx_thread_schedule.s b/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/tx_thread_schedule.s
index 4ffe19d6..c8f6e81d 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/tx_thread_schedule.s
+++ b/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/tx_thread_schedule.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,23 +67,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 04-25-2022 Scott Larson Optimized MPU configuration, */
-/* added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Removed the code path to skip */
-/* MPU reloading, optional */
-/* default MPU settings, */
-/* resulting in version 6.1.12 */
-/* 10-31-2022 Scott Larson Added low power support, */
-/* fixed label syntax, */
-/* resulting in version 6.2.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_thread_stack_build.s b/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_thread_stack_build.s
index 6faefb0d..34a5ff29 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_thread_stack_build.s
+++ b/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,13 +54,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(TX_THREAD *, TXM_MODULE_INSTANCE *))
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_user_mode_entry.s b/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_user_mode_entry.s
index 6716970f..8b99dcb1 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_user_mode_entry.s
+++ b/ports_arch/ARMv7-M/threadx_modules/ac5/module_manager/src/txm_module_manager_user_mode_entry.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,13 +55,6 @@
/* CALLED BY */
/* */
/* Modules in user mode */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_user_mode_entry(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_initialize.S b/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_initialize.S
index 607f3d2d..d50a73ef 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_initialize.S
+++ b/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_initialize.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,15 +58,6 @@
/* */
/* _txm_module_thread_shell_entry Start module thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 01-31-2022 Scott Larson Modified comments and made */
-/* heap user configurable, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
// VOID _txm_module_initialize(VOID)
.global _txm_module_initialize
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_thread_shell_entry.c b/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_thread_shell_entry.c
index bbf04817..cd286c2d 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_thread_shell_entry.c
+++ b/ports_arch/ARMv7-M/threadx_modules/ac6/module_lib/src/txm_module_thread_shell_entry.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -88,15 +89,6 @@ extern VOID _txm_module_initialize(VOID *heap_base, VOID *heap_top);
/* */
/* Initial thread stack frame */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 01-31-2022 Scott Larson Modified comments and made */
-/* heap user configurable, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_ENTRY_INFO *thread_info)
{
@@ -112,14 +104,14 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
{
/* Initialize the C environment. */
_txm_module_initialize(&txm_heap[0], &txm_heap[TXM_MODULE_HEAP_SIZE-1]);
-
+
/* Save the entry info pointer, for later use. */
_txm_module_entry_info = thread_info;
-
+
/* Save the kernel function dispatch address. This is used to make all resident calls from
the module. */
_txm_module_kernel_call_dispatcher = thread_info -> txm_module_thread_entry_info_kernel_call_dispatcher;
-
+
/* Ensure that we have a valid pointer. */
while (!_txm_module_kernel_call_dispatcher)
{
@@ -127,7 +119,7 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
An error here typically indicates the resident portion of _tx_thread_schedule
is not supporting the trap to obtain the function pointer. */
}
-
+
/* Resume the module's callback thread, already created in the manager. */
_txe_thread_resume(thread_info -> txm_module_thread_entry_info_callback_request_thread);
}
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/tx_thread_schedule.S b/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/tx_thread_schedule.S
index bbf3d62b..1330dde3 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -69,21 +70,6 @@
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 04-25-2022 Scott Larson Optimized MPU configuration, */
-/* added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Removed the code path to skip */
-/* MPU reloading, optional */
-/* default MPU settings, */
-/* resulting in version 6.1.12 */
-/* 10-31-2022 Scott Larson Added low power support, */
-/* resulting in version 6.2.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/txm_module_manager_thread_stack_build.S b/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/txm_module_manager_thread_stack_build.S
index 924bce75..143c2451 100644
--- a/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/txm_module_manager_thread_stack_build.S
+++ b/ports_arch/ARMv7-M/threadx_modules/ac6/module_manager/src/txm_module_manager_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,12 +56,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(TX_THREAD *, TXM_MODULE_INSTANCE *))
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_alignment_adjust.c b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_alignment_adjust.c
index e42ce9a4..4b10c367 100644
--- a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_alignment_adjust.c
+++ b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_alignment_adjust.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,23 +57,17 @@
/* */
/* _txm_module_manager_alignment_adjust Adjust alignment for Cortex-M */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
ULONG _txm_power_of_two_block_size(ULONG size)
{
/* Check for 0 size. */
if(size == 0)
return 0;
-
+
/* Minimum MPU block size is 32. */
if(size <= 32)
return 32;
-
+
/* Bit twiddling trick to round to next high power of 2
(if original size is power of 2, it will return original size. Perfect!) */
size--;
@@ -82,7 +77,7 @@ ULONG _txm_power_of_two_block_size(ULONG size)
size |= size >> 8;
size |= size >> 16;
size++;
-
+
/* Return a power of 2 size at or above the input size. */
return(size);
}
@@ -162,7 +157,7 @@ ULONG data_size_accum;
code_size_accum = code_size_accum + (_txm_power_of_two_block_size(local_code_size - code_size_accum) >> 1);
code_size_accum = code_size_accum + _txm_power_of_two_block_size(local_code_size - code_size_accum);
local_code_size = code_size_accum;
-
+
/* Determine data block sizes. Minimize the alignment requirement.
There are 4 MPU data entries available. The following is how the data size
will be distributed:
@@ -175,7 +170,7 @@ ULONG data_size_accum;
data_size_accum = data_size_accum + (_txm_power_of_two_block_size(local_data_size - data_size_accum) >> 1);
data_size_accum = data_size_accum + _txm_power_of_two_block_size(local_data_size - data_size_accum);
local_data_size = data_size_accum;
-
+
/* Return all the information to the caller. */
*code_size = local_code_size;
*code_alignment = local_code_alignment;
@@ -299,15 +294,15 @@ ULONG data_size_accum;
/* Just set block size to 32MB just to create an allocation error! */
code_block_size = 33554432;
}
-
+
/* Calculate the new code size. */
local_code_size = code_block_size*(TXM_MODULE_MANAGER_CODE_MPU_ENTRIES - 1);
-
+
/* Determine if the code block size is greater than the current alignment. If so, use block size
as the alignment. */
if (code_block_size > local_code_alignment)
local_code_alignment = code_block_size;
-
+
}
else
{
@@ -324,7 +319,7 @@ ULONG data_size_accum;
code_size_accum = code_size_accum + _txm_power_of_two_block_size(local_code_size - code_size_accum);
local_code_size = code_size_accum;
}
-
+
/* Determine the best data block size, which in our case is the minimal alignment. */
if (local_data_size <= (32*TXM_MODULE_MANAGER_DATA_MPU_ENTRIES))
{
@@ -429,7 +424,7 @@ ULONG data_size_accum;
data_size_accum += data_block_size;
}
local_data_size = data_size_accum;
-
+
/* Determine if the data block size is greater than the current alignment. If so, use block size
as the alignment. */
if (data_block_size > local_data_alignment)
diff --git a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_external_memory_enable.c b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_external_memory_enable.c
index 4d408491..fbd3bc43 100644
--- a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_external_memory_enable.c
+++ b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_external_memory_enable.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -65,14 +66,6 @@
/* */
/* Application code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 03-08-2023 Scott Larson Update defines, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
UINT _txm_module_manager_external_memory_enable(TXM_MODULE_INSTANCE *module_instance,
VOID *start_address,
@@ -114,7 +107,7 @@ ULONG attributes_check = 0;
/* Invalid module pointer. */
return(TX_PTR_ERROR);
}
-
+
/* Determine if the module instance is in the loaded state. */
if (module_instance -> txm_module_instance_state != TXM_MODULE_LOADED)
{
@@ -124,71 +117,71 @@ ULONG attributes_check = 0;
/* Return error if the module is not ready. */
return(TX_START_ERROR);
}
-
+
/* Determine if there are shared memory entries available. */
if(module_instance -> txm_module_instance_shared_memory_count >= TXM_MODULE_MANAGER_MPU_SHARED_ENTRIES)
{
/* Release the protection mutex. */
_tx_mutex_put(&_txm_module_manager_mutex);
-
+
/* No more entries available. */
return(TX_NO_MEMORY);
}
-
+
/* Start address and length must adhere to Cortex-M7 MPU.
The address must align with the block size. */
-
+
block_size = _txm_power_of_two_block_size(length);
address = (ULONG) start_address;
if(address != (address & ~(block_size - 1)))
{
/* Release the protection mutex. */
_tx_mutex_put(&_txm_module_manager_mutex);
-
+
/* Return alignment error. */
return(TXM_MODULE_ALIGNMENT_ERROR);
}
-
+
/* At this point, we have a valid address and block size.
Set up MPU registers. */
-
+
/* Pick up index into shared memory entries. */
shared_index = TXM_MODULE_MANAGER_MPU_SHARED_INDEX + module_instance -> txm_module_instance_shared_memory_count;
-
+
/* Save address register with address, MPU region, set Valid bit. */
module_instance -> txm_module_instance_mpu_registers[shared_index].txm_module_mpu_region_address = address | shared_index | TXM_MPU_VALID_BIT;
-
+
/* Calculate the region size. */
region_size = _txm_module_manager_region_size_get(block_size);
-
+
/* Calculate the subregion bits. */
srd_bits = _txm_module_manager_calculate_srd_bits(block_size, length);
-
+
/* Generate SRD, size, and enable attributes. */
size_register = srd_bits | (region_size << 1) | TXM_ENABLE_REGION | TXM_MODULE_MPU_SHARED_ACCESS_CONTROL;
-
+
/* Check for optional write attribute. */
if(attributes & TXM_MODULE_MANAGER_SHARED_ATTRIBUTE_WRITE)
{
attributes_check = TXM_MODULE_MANAGER_ATTRIBUTE_WRITE_MPU_BIT;
}
-
+
/* Save attribute-size register. */
module_instance -> txm_module_instance_mpu_registers[shared_index].txm_module_mpu_region_attribute_size = attributes_check | size_register;
-
+
/* Keep track of shared memory address and length in module instance. */
module_instance -> txm_module_instance_shared_memory_address[module_instance -> txm_module_instance_shared_memory_count] = address;
module_instance -> txm_module_instance_shared_memory_length[module_instance -> txm_module_instance_shared_memory_count] = length;
-
+
/* Increment counter. */
module_instance -> txm_module_instance_shared_memory_count++;
-
+
/* Release the protection mutex. */
_tx_mutex_put(&_txm_module_manager_mutex);
-
+
/* Return success. */
return(TX_SUCCESS);
-
+
#else
ULONG block_size;
@@ -224,7 +217,7 @@ TXM_MODULE_PREAMBLE *module_preamble;
/* Invalid module pointer. */
return(TX_PTR_ERROR);
}
-
+
/* Determine if the module instance is in the loaded state. */
if (module_instance -> txm_module_instance_state != TXM_MODULE_LOADED)
{
@@ -234,7 +227,7 @@ TXM_MODULE_PREAMBLE *module_preamble;
/* Return error if the module is not ready. */
return(TX_START_ERROR);
}
-
+
/* Check if preamble shared mem and mem protection property bits are set. */
module_preamble = module_instance -> txm_module_instance_preamble_ptr;
if((module_preamble -> txm_module_preamble_property_flags & (TXM_MODULE_MEMORY_PROTECTION | TXM_MODULE_SHARED_EXTERNAL_MEMORY_ACCESS))
@@ -246,49 +239,49 @@ TXM_MODULE_PREAMBLE *module_preamble;
/* Return error if bit not set. */
return(TXM_MODULE_INVALID_PROPERTIES);
}
-
+
/* Start address and length must adhere to Cortex-M MPU.
The address must align with the block size. */
-
+
block_size = _txm_power_of_two_block_size(length);
address = (ULONG) start_address;
if(address != (address & ~(block_size - 1)))
{
/* Release the protection mutex. */
_tx_mutex_put(&_txm_module_manager_mutex);
-
+
/* Return alignment error. */
return(TXM_MODULE_ALIGNMENT_ERROR);
}
-
+
/* At this point, we have a valid address and block size.
Set up MPU registers. */
module_instance -> txm_module_instance_mpu_registers[TXM_MODULE_MANAGER_SHARED_MPU_REGION].txm_module_mpu_region_address = address | TXM_MODULE_MANAGER_SHARED_MPU_REGION | TXM_MPU_VALID_BIT;
-
+
/* Calculate the region size. */
region_size = _txm_module_manager_region_size_get(block_size);
/* Calculate the subregion bits. */
subregion_bits = _txm_module_manager_calculate_srd_bits(block_size, length);
-
+
/* Check for valid attributes. */
if(attributes & TXM_MODULE_MANAGER_SHARED_ATTRIBUTE_WRITE)
{
attributes_check = TXM_MODULE_MANAGER_ATTRIBUTE_WRITE_MPU_BIT;
}
-
+
/* Build register with attributes. */
module_instance -> txm_module_instance_mpu_registers[TXM_MODULE_MANAGER_SHARED_MPU_REGION].txm_module_mpu_region_attribute_size = (region_size << 1) | subregion_bits | attributes_check | TXM_MODULE_MPU_SHARED_ACCESS_CONTROL | TXM_ENABLE_REGION;
-
+
/* Keep track of shared memory address and length in module instance. */
module_instance -> txm_module_instance_shared_memory_address = address;
module_instance -> txm_module_instance_shared_memory_length = length;
-
+
/* Recalculate MPU settings. */
_txm_module_manager_mm_register_setup(module_instance);
-
+
/* Release the protection mutex. */
_tx_mutex_put(&_txm_module_manager_mutex);
-
+
/* Return success. */
return(TX_SUCCESS);
diff --git a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_handler.c b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_handler.c
index 093ec2fc..44c10e6f 100644
--- a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_handler.c
+++ b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_handler.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,12 +72,6 @@ TXM_MODULE_MANAGER_FAULT_INFO
/* */
/* Fault handler */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
VOID _txm_module_manager_memory_fault_handler(VOID)
{
@@ -89,7 +84,7 @@ TX_THREAD *thread_ptr;
/* Initialize the module instance pointer to NULL. */
module_instance_ptr = TX_NULL;
-
+
/* Is there a thread? */
if (thread_ptr)
{
@@ -99,7 +94,7 @@ TX_THREAD *thread_ptr;
/* Terminate the current thread. */
_tx_thread_terminate(_tx_thread_current_ptr);
}
-
+
/* Determine if there is a user memory fault notification callback. */
if (_txm_module_manager_fault_notify)
{
diff --git a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_notify.c b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_notify.c
index 982abb8d..f55cc1b1 100644
--- a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_notify.c
+++ b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_memory_fault_notify.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -66,18 +67,12 @@ extern VOID (*_txm_module_manager_fault_notify)(TX_THREAD *, TXM_MODULE_INSTA
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
UINT _txm_module_manager_memory_fault_notify(VOID (*notify_function)(TX_THREAD *, TXM_MODULE_INSTANCE *))
{
/* Setup notification function. */
_txm_module_manager_fault_notify = notify_function;
-
+
/* Return success. */
return(TX_SUCCESS);
}
diff --git a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_mm_register_setup.c b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_mm_register_setup.c
index 4df21ed1..06418a55 100644
--- a/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_mm_register_setup.c
+++ b/ports_arch/ARMv7-M/threadx_modules/common/module_manager/src/txm_module_manager_mm_register_setup.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -94,16 +95,6 @@ const ULONG txm_module_default_mpu_registers[32] =
/* */
/* _txm_module_manager_mm_register_setup */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 03-08-2023 Scott Larson Changed from lookup table to */
-/* calculation and check for */
-/* minumum block size, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
ULONG _txm_module_manager_region_size_get(ULONG block_size)
{
diff --git a/ports_arch/ARMv7-M/threadx_modules/gnu/module_lib/src/txm_module_thread_shell_entry.c b/ports_arch/ARMv7-M/threadx_modules/gnu/module_lib/src/txm_module_thread_shell_entry.c
index e8164503..01f2f909 100644
--- a/ports_arch/ARMv7-M/threadx_modules/gnu/module_lib/src/txm_module_thread_shell_entry.c
+++ b/ports_arch/ARMv7-M/threadx_modules/gnu/module_lib/src/txm_module_thread_shell_entry.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -86,12 +87,6 @@ extern VOID _gcc_setup(TXM_MODULE_INSTANCE *);
/* */
/* Initial thread stack frame */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_ENTRY_INFO *thread_info)
{
@@ -107,14 +102,14 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
{
/* Initialize the C environment. */
_gcc_setup(thread_info -> txm_module_thread_entry_info_code_base_address);
-
+
/* Save the entry info pointer, for later use. */
_txm_module_entry_info = thread_info;
-
+
/* Save the kernel function dispatch address. This is used to make all resident calls from
the module. */
_txm_module_kernel_call_dispatcher = thread_info -> txm_module_thread_entry_info_kernel_call_dispatcher;
-
+
/* Ensure that we have a valid pointer. */
while (!_txm_module_kernel_call_dispatcher)
{
@@ -122,7 +117,7 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
An error here typically indicates the resident portion of _tx_thread_schedule
is not supporting the trap to obtain the function pointer. */
}
-
+
/* Resume the module's callback thread, already created in the manager. */
_txe_thread_resume(thread_info -> txm_module_thread_entry_info_callback_request_thread);
}
diff --git a/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/tx_thread_schedule.S b/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/tx_thread_schedule.S
index cfb276c0..dffca713 100644
--- a/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -67,23 +68,6 @@
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 01-31-2022 Scott Larson Fixed predefined macro name, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 Scott Larson Optimized MPU configuration, */
-/* added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Removed the code path to skip */
-/* MPU reloading, optional */
-/* default MPU settings, */
-/* resulting in version 6.1.12 */
-/* 10-31-2022 Scott Larson Added low power support, */
-/* resulting in version 6.2.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/txm_module_manager_thread_stack_build.s b/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/txm_module_manager_thread_stack_build.s
index a9c22b00..5642d252 100644
--- a/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/txm_module_manager_thread_stack_build.s
+++ b/ports_arch/ARMv7-M/threadx_modules/gnu/module_manager/src/txm_module_manager_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,13 +55,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(TX_THREAD *, TXM_MODULE_INSTANCE *))
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/iar/module_lib/src/txm_module_thread_shell_entry.c b/ports_arch/ARMv7-M/threadx_modules/iar/module_lib/src/txm_module_thread_shell_entry.c
index 4a0fba83..0f892ce5 100644
--- a/ports_arch/ARMv7-M/threadx_modules/iar/module_lib/src/txm_module_thread_shell_entry.c
+++ b/ports_arch/ARMv7-M/threadx_modules/iar/module_lib/src/txm_module_thread_shell_entry.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -86,12 +87,6 @@ extern VOID __iar_data_init3(VOID);
/* */
/* Initial thread stack frame */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_ENTRY_INFO *thread_info)
{
@@ -107,14 +102,14 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
{
/* Initialize the C environment. */
__iar_data_init3();
-
+
/* Save the entry info pointer, for later use. */
_txm_module_entry_info = thread_info;
-
+
/* Save the kernel function dispatch address. This is used to make all resident calls from
the module. */
_txm_module_kernel_call_dispatcher = thread_info -> txm_module_thread_entry_info_kernel_call_dispatcher;
-
+
/* Ensure that we have a valid pointer. */
while (!_txm_module_kernel_call_dispatcher)
{
@@ -122,7 +117,7 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
An error here typically indicates the resident portion of _tx_thread_schedule
is not supporting the trap to obtain the function pointer. */
}
-
+
/* Resume the module's callback thread, already created in the manager. */
_txe_thread_resume(thread_info -> txm_module_thread_entry_info_callback_request_thread);
}
diff --git a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_iar.c b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_iar.c
index ee47f10f..238b485e 100644
--- a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_iar.c
+++ b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_iar.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -37,31 +38,31 @@
#include "tx_mutex.h"
-/* This implementation requires that the following macros are defined in the
+/* This implementation requires that the following macros are defined in the
tx_port.h file and <yvals.h> is included with the following code segments:
-
+
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
#include <yvals.h>
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
+#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
#else
-#define TX_THREAD_EXTENSION_2
+#define TX_THREAD_EXTENSION_2
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
#define TX_THREAD_DELETE_EXTENSION(thread_ptr) __iar_dlib_perthread_deallocate(thread_ptr -> tx_thread_iar_tls_pointer); \
- thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL;
+ thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL;
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION __iar_dlib_perthread_access(0);
#else
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
-#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
+#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
#endif
- This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
- application.
+ This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
+ application.
Finally, the project options General Options -> Library Configuration should have the "Enable thread support in library" box selected.
*/
@@ -90,7 +91,7 @@ void _DLIB_TLS_MEMORY *__iar_dlib_perthread_access(void _DLIB_TLS_MEMORY *symbp)
{
char _DLIB_TLS_MEMORY *p = 0;
-
+
/* Is there a current thread? */
if (_tx_thread_current_ptr)
p = (char _DLIB_TLS_MEMORY *) _tx_thread_current_ptr -> tx_thread_iar_tls_pointer;
@@ -117,19 +118,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_system_lock_mutexes[__tx_iar_system_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_system_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_system_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -138,35 +139,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_system_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR System Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_system_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -185,25 +186,25 @@ void __iar_system_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -215,25 +216,25 @@ void __iar_system_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -267,19 +268,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_file_lock_mutexes[__tx_iar_file_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_file_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_file_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -288,35 +289,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_file_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR File Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_file_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -335,25 +336,25 @@ void __iar_file_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -365,25 +366,25 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -404,17 +405,17 @@ UINT status;
#include "tx_thread.h"
#include "tx_mutex.h"
-/* This implementation requires that the following macros are defined in the
+/* This implementation requires that the following macros are defined in the
tx_port.h file and <yvals.h> is included with the following code segments:
-
+
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
#include <yvals.h>
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
+#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
#else
-#define TX_THREAD_EXTENSION_2
+#define TX_THREAD_EXTENSION_2
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
@@ -422,17 +423,17 @@ void *_tx_iar_create_per_thread_tls_area(void);
void _tx_iar_destroy_per_thread_tls_area(void *tls_ptr);
void __iar_Initlocks(void);
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
#define TX_THREAD_DELETE_EXTENSION(thread_ptr) do {__iar_dlib_perthread_deallocate(thread_ptr -> tx_thread_iar_tls_pointer); \
thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL; } while(0);
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION do {__iar_Initlocks();} while(0);
#else
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
-#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
+#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
#endif
- This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
- application.
+ This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
+ application.
Finally, the project options General Options -> Library Configuration should have the "Enable thread support in library" box selected.
*/
@@ -456,7 +457,7 @@ void * __aeabi_read_tp(void)
TX_THREAD *thread_ptr = _tx_thread_current_ptr;
if (thread_ptr)
{
- p = thread_ptr->tx_thread_iar_tls_pointer;
+ p = thread_ptr->tx_thread_iar_tls_pointer;
}
else
{
@@ -469,9 +470,9 @@ void * __aeabi_read_tp(void)
void* _tx_iar_create_per_thread_tls_area()
{
- UINT tls_size = __iar_tls_size();
-
- /* Get memory for TLS. */
+ UINT tls_size = __iar_tls_size();
+
+ /* Get memory for TLS. */
void *p = malloc(tls_size);
/* Initialize TLS-area and run constructors for objects in TLS */
@@ -483,7 +484,7 @@ void _tx_iar_destroy_per_thread_tls_area(void *tls_ptr)
{
/* Destroy objects living in TLS */
__call_thread_dtors();
- free(tls_ptr);
+ free(tls_ptr);
}
#ifndef _MAX_LOCK
@@ -517,19 +518,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_system_lock_mutexes[__tx_iar_system_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_system_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_system_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -538,35 +539,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_system_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR System Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_system_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -582,28 +583,28 @@ void __iar_system_Mtxdst(__iar_Rmtx *m)
void __iar_system_Mtxlock(__iar_Rmtx *m)
{
if (*m)
- {
+ {
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -616,25 +617,25 @@ void __iar_system_Mtxunlock(__iar_Rmtx *m)
{
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -675,19 +676,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_file_lock_mutexes[__tx_iar_file_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_file_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_file_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -696,35 +697,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_file_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR File Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_file_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -743,25 +744,25 @@ void __iar_file_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -773,25 +774,25 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
diff --git a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_misra.s b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_misra.s
index 72aac789..c79133f5 100644
--- a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_misra.s
+++ b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_misra.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -116,7 +117,7 @@
SECTION `.data`:DATA:REORDER:NOROOT(2)
DATA
-// 51 CHAR _tx_version_id[100] = "Copyright (c) 2024 Microsoft Corporation. * ThreadX 6.1 MISRA C Compliant *";
+// 51 CHAR _tx_version_id[100] = "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX 6.1 MISRA C Compliant *";
_tx_version_id:
DC8 43H, 6FH, 70H, 79H, 72H, 69H, 67H, 68H
DC8 74H, 20H, 28H, 63H, 29H, 20H, 31H, 39H
@@ -703,7 +704,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -718,7 +719,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARMVFP__
/***********************************************************************************************/
@@ -735,8 +736,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -750,10 +751,10 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
-
+
+
SECTION `.iar_vfe_header`:DATA:NOALLOC:NOROOT(2)
SECTION_TYPE SHT_PROGBITS, 0
DATA
diff --git a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_thread_schedule.s b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_thread_schedule.s
index b2287ccc..7b30b360 100644
--- a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_thread_schedule.s
+++ b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/tx_thread_schedule.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -63,22 +64,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 04-25-2022 Scott Larson Optimized MPU configuration, */
-/* added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Removed the code path to skip */
-/* MPU reloading, optional */
-/* default MPU settings, */
-/* resulting in version 6.1.12 */
-/* 10-31-2022 Scott Larson Added low power support, */
-/* resulting in version 6.2.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/txm_module_manager_thread_stack_build.s b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/txm_module_manager_thread_stack_build.s
index 315eb7e8..c0061871 100644
--- a/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/txm_module_manager_thread_stack_build.s
+++ b/ports_arch/ARMv7-M/threadx_modules/iar/module_manager/src/txm_module_manager_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,13 +54,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(TX_THREAD *, TXM_MODULE_INSTANCE *))
// {
diff --git a/ports_arch/ARMv7-M/threadx_modules/inc/tx_port.h b/ports_arch/ARMv7-M/threadx_modules/inc/tx_port.h
index f7c9c293..b9387932 100644
--- a/ports_arch/ARMv7-M/threadx_modules/inc/tx_port.h
+++ b/ports_arch/ARMv7-M/threadx_modules/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -45,15 +46,6 @@
/* This file replaces the previous Cortex-M3/M4/M7 files. It unifies */
/* the ARMv7-M architecture and compilers into one common file. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 04-25-2022 Scott Larson Modified comments and added */
-/* volatile to registers, */
-/* resulting in version 6.1.11 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -243,7 +235,7 @@ ULONG _tx_misra_time_stamp_get(VOID);
#define TX_THREAD_EXTENSION_3
#else
#define TX_THREAD_EXTENSION_3 unsigned long long tx_thread_execution_time_total; \
- unsigned long long tx_thread_execution_time_last_start;
+ unsigned long long tx_thread_execution_time_last_start;
#endif
@@ -376,7 +368,7 @@ void _tx_vfp_access(void);
/* A thread can be terminated by another thread, so we first check if it's self-terminating and not in an ISR.
If so, deactivate the FPU via CONTROL.FPCA. Otherwise we are in an interrupt or another thread is terminating
- this one, so if the FPCCR.LSPACT bit is set, we need to save the CONTROL.FPCA state, touch the FPU to flush
+ this one, so if the FPCCR.LSPACT bit is set, we need to save the CONTROL.FPCA state, touch the FPU to flush
the lazy FPU save, then restore the CONTROL.FPCA state. */
#ifndef TX_MISRA_ENABLE
@@ -535,7 +527,7 @@ ULONG _tx_misra_ipsr_get(VOID);
#define TX_LOWEST_SET_BIT_CALCULATE(m, b) (b) = (UINT) __clz(__rbit((m)));
#elif defined(__GNUC__) /* GCC and AC6 Compiler */
#define TX_LOWEST_SET_BIT_CALCULATE(m, b) __asm__ volatile (" RBIT %0,%1 ": "=r" (m) : "r" (m) ); \
- __asm__ volatile (" CLZ %0,%1 ": "=r" (b) : "r" (m) );
+ __asm__ volatile (" CLZ %0,%1 ": "=r" (b) : "r" (m) );
#else
#error "Compiler not supported."
#endif
@@ -719,7 +711,7 @@ void tx_thread_fpu_disable(void);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX Cortex-Mx Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX Cortex-Mx Version 6.5.0.202601 *";
#else
#ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100];
diff --git a/ports_arch/ARMv7-M/threadx_modules/inc/txm_module_port.h b/ports_arch/ARMv7-M/threadx_modules/inc/txm_module_port.h
index f95e9f16..b1034eab 100644
--- a/ports_arch/ARMv7-M/threadx_modules/inc/txm_module_port.h
+++ b/ports_arch/ARMv7-M/threadx_modules/inc/txm_module_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -35,24 +36,6 @@
/* This file defines the basic module constants, interface structures, */
/* and function prototypes. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 10-15-2021 Scott Larson Initial Version 6.1.9 */
-/* 01-31-2022 Scott Larson Modified comments and made */
-/* heap user-configurable, */
-/* resulting in version 6.1.10 */
-/* 07-29-2022 Scott Larson Enabled user-defined and */
-/* default MPU settings, */
-/* resulting in version 6.1.12 */
-/* 10-31-2022 Scott Larson Configure heap size, */
-/* resulting in version 6.2.0 */
-/* 03-08-2023 Scott Larson Set default values for RBAR, */
-/* unify this file for all */
-/* compilers, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
#ifndef TXM_MODULE_PORT_H
@@ -463,6 +446,6 @@ UINT _txm_module_manager_inside_data_check(TXM_MODULE_INSTANCE *module_instance
#define TXM_MODULE_MANAGER_VERSION_ID \
CHAR _txm_module_manager_version_id[] = \
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX Module Cortex-Mx Version 6.4.2 *";
+ "Copyright (c) 2024 Microsoft Corporation. * ThreadX Module Cortex-Mx Version 6.5.0.202601 *";
#endif
diff --git a/ports_arch/ARMv8-A/threadx/common/inc/tx_port.h b/ports_arch/ARMv8-A/threadx/common/inc/tx_port.h
index a8d3fd48..e5352338 100644
--- a/ports_arch/ARMv8-A/threadx/common/inc/tx_port.h
+++ b/ports_arch/ARMv8-A/threadx/common/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -42,15 +43,6 @@
/* own special types that can be mapped to actual data types by this */
/* file to guarantee consistency in the interface and functionality. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Bhupendra Naphade Modified comment(s),updated */
-/* macro definition, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -369,7 +361,7 @@ VOID tx_thread_fp_disable(VOID);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX ARMv8-A Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARMv8-A Version 6.5.0.202601 *";
#else
extern CHAR _tx_version_id[];
#endif
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_restore.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_restore.S
index 8e0d5515..9ba82827 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,15 +57,6 @@
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_save.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_save.S
index 7768efc2..c2395155 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,15 +57,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_disable.c b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_disable.c
index aa175e83..25233f77 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_disable.c
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_disable.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -58,14 +59,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
VOID _tx_thread_fp_disable(VOID)
{
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_enable.c b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_enable.c
index 341bb200..7351aee4 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_enable.c
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_fp_enable.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
VOID _tx_thread_fp_enable(VOID)
{
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_control.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_control.S
index d8e70ebb..21ec2dd1 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_control.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_control.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,17 +56,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_disable.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_disable.S
index e398d46a..af2ef874 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_disable.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_disable.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,17 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(void)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_restore.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_restore.S
index 7b55fb9f..3e0780d0 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_restore.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_interrupt_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,17 +56,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_restore(UINT old_posture)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_schedule.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_schedule.S
index 009a0d5b..d15e7ded 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -58,18 +59,6 @@
/* _tx_thread_system_return Return to system from thread */
/* _tx_thread_context_restore Restore thread's context */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_stack_build.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_stack_build.S
index 6c675d9b..01084da7 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,17 +58,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_system_return.S b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_system_return.S
index 780bb128..b7593d79 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,15 +58,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx/common/src/tx_timer_interrupt.S b/ports_arch/ARMv8-A/threadx/common/src/tx_timer_interrupt.S
index d84245c6..1b80a7f2 100644
--- a/ports_arch/ARMv8-A/threadx/common/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv8-A/threadx/common/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,15 +60,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/.cproject b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/.cproject
index 42240200..7e53b3fd 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/.cproject
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/.cproject
@@ -1,158 +1,158 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048" name="Debug" parent="com.arm.eclipse.build.config.v6.exe.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.exe.debug.base.var.arm_compiler_6-6.1388095870" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.exe.debug.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.689426261" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" useByScannerDiscovery="false" value="Cortex-A35.AArch64.ARMv8.Neon.Crypto" valueType="string"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.exe.debug.base.var.arm_compiler_6-6.1388095870.857809581" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/sample_threadx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.1944684744" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.259341383" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.96377009" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-a35" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.defmac.1975445896" name="Define macro (-D)" superClass="com.arm.tool.c.compiler.v6.base.option.defmac" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="STANDALONE"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.1271571516" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1548640167" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.815952161" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.1091536604" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1962633763" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.1147447905" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.269795998" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-a35" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.1521551718" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.arm.tool.assembler.v6.base.option.defmac.281085002" name="Define macro (-D)" superClass="com.arm.tool.assembler.v6.base.option.defmac" useByScannerDiscovery="false" valueType="definedSymbols"/>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.1000911913" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.1807144931" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.linker.option.entry.249327747" name="Image entry point (--entry)" superClass="com.arm.tool.c.linker.option.entry" useByScannerDiscovery="false" value="start64" valueType="string"/>
-
+
<option id="com.arm.tool.c.linker.option.scatter.1246240408" name="Scatter file (--scatter)" superClass="com.arm.tool.c.linker.option.scatter" useByScannerDiscovery="false" value="..\sample_threadx.scat" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.linker.libs.2105481551" name="User library files" superClass="com.arm.tool.c.linker.libs" useByScannerDiscovery="false" valueType="libs">
-
+
<listOptionValue builtIn="false" value="..\..\tx\Debug\tx.a"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.linker.option.imagemap.359605740" name="Generate image map (--map)" superClass="com.arm.tool.c.linker.option.imagemap" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.c.linker.option.verbose.509554865" name="Verbose output (--verbose)" superClass="com.arm.tool.c.linker.option.verbose" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.c.linker.option.totals.428431324" name="List total code and data sizes of output image (--info=totals)" superClass="com.arm.tool.c.linker.option.totals" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.c.linker.option.redirectoutput.259431691" name="Redirect diagnostics output to file (--list)" superClass="com.arm.tool.c.linker.option.redirectoutput" useByScannerDiscovery="false" value="sample_threadx.map" valueType="string"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.1243987688" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<sourceEntries>
-
+
<entry excluding="startup_el3.S|startup_el2.S|startup_el1.S|startup_old.S" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="sample_threadx.com.arm.eclipse.build.project.v6.exe.1027551600" name="Executable"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.S b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.S
index c787c3f5..e8a87f0b 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.S
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.S
@@ -92,7 +92,7 @@ _mutex_release:
.type _mutex_acquire, "function"
.cfi_startproc
_mutex_acquire:
- // This uses a "ticket lock". The lock is stored as a 32-bit value:
+ // This uses a "ticket lock". The lock is stored as a 32-bit value:
// - the upper 16-bits record the thread's ticket number ("take a ticket")
// - the lower 16-bits record the ticket being served ("now serving")
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.h b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.h
index ec1a1d28..00e9cd60 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.h
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/MP_Mutexes.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
#ifndef MP_MUTEX_H
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat
index e5783c7c..d8dfde69 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/sample_threadx.scat
@@ -2,7 +2,7 @@
; Scatter file for Armv8-A Startup code on FVP Base model
; Copyright (c) 2014-2017 Arm Limited (or its affiliates). All rights reserved.
; Use, modification and redistribution of this file is subject to your possession of a
-; valid End User License Agreement for the Arm Product of which these examples are part of
+; valid End User License Agreement for the Arm Product of which these examples are part of
; and your compliance with all applicable terms and conditions of such licence agreement.
;********************************************************
@@ -25,7 +25,7 @@ LOAD 0x80000000
; in source code for this to work correctly
;
ARM_LIB_HEAP +0 ALIGN 64 EMPTY 0xA0000 {}
-
+
;
; Handler stacks for all CPUs
; All stacks and heap are aligned to a cache-line boundary
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_aarch64.h b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_aarch64.h
index b09079a4..91ca9653 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_aarch64.h
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_aarch64.h
@@ -4,7 +4,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_mmu.h b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_mmu.h
index bce62b54..d0c51601 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_mmu.h
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/sample_threadx/v8_mmu.h
@@ -101,7 +101,7 @@
#define TT_S1_ATTR_PXN (1 << 53)
#define TT_S1_ATTR_UXN (1 << 54)
-// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
+// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
// for IMPLEMENTATIONDEFINED purposes, otherwise IGNORED
#define TT_S1_MAIR_DEV_nGnRnE 0b00000000
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/tx/.cproject b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/tx/.cproject
index 3be714ea..e0d1dda5 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/tx/.cproject
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/example_build/tx/.cproject
@@ -1,148 +1,148 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915" name="Debug" parent="com.arm.eclipse.build.config.v6.lib.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.174366982" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.319260876" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" useByScannerDiscovery="false" value="Cortex-A35.AArch64.ARMv8.Neon.Crypto" valueType="string"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.174366982.1434986226" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/tx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.2017005160" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.1905027615" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.317101671" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-a35" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.preproc.enableToolSpecificSettings.1714523388" name="Enable tool specific settings" superClass="com.arm.tool.c.compiler.v6.base.options.preproc.enableToolSpecificSettings" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.defmac.1928960091" name="Define macro (-D)" superClass="com.arm.tool.c.compiler.v6.base.option.defmac" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="STANDALONE"/>
-
+
<listOptionValue builtIn="false" value="ENABLE_ARM_FP"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.866578922" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.448503435" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.409900163" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.87976211" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.542056309" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.567657544" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.230057138" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-a35" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.preproc.enableToolSpecificSettings.2042679359" name="Enable tool specific settings" superClass="com.arm.tool.assembler.v6.base.options.preproc.enableToolSpecificSettings" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.481373844" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.assembler.v6.base.option.defmac.323399329" name="Define macro (-D)" superClass="com.arm.tool.assembler.v6.base.option.defmac" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="EL1"/>
-
+
</option>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.424570744" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.302832878" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6"/>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.1893346540" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<sourceEntries>
-
+
<entry excluding="src_generic/tx_misra.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="tx.com.arm.eclipse.build.project.v6.lib.1209080418" name="Static Library"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx/ports/ac6/src/tx_initialize_low_level.S b/ports_arch/ARMv8-A/threadx/ports/ac6/src/tx_initialize_low_level.S
index f456574e..7d2a4be3 100644
--- a/ports_arch/ARMv8-A/threadx/ports/ac6/src/tx_initialize_low_level.S
+++ b/ports_arch/ARMv8-A/threadx/ports/ac6/src/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -58,17 +59,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/.cproject b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/.cproject
index 1c32cb32..40d4912d 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/.cproject
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/.cproject
@@ -1,170 +1,170 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048" name="Debug" parent="com.arm.eclipse.build.config.v6.exe.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048." name="/" resourcePath="">
-
+
<toolChain id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.var.gcc-8.3.0-aarch64-elf.33749088" name="GCC 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.var.gcc-8.3.0-aarch64-elf">
-
+
<targetPlatform id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.var.gcc-8.3.0-aarch64-elf.33749088.1343346543" name=""/>
-
+
<builder buildPath="${workspace_loc:/sample_threadx}/Debug" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder.910370896" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1331565505" name="GCC C Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath.831465095" name="Include paths (-I)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_port}&quot;"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.defsym.1613866201" name="Defined symbols (-D)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.defsym" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="STANDALONE"/>
-
+
</option>
-
+
<option defaultValue="gnu.c.optimization.level.none" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.1769854265" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" valueType="enumerated"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug.268949876" name="Debug Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug" useByScannerDiscovery="false"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.cpu.1607040325" name="CPU (-mcpu)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.cpu" useByScannerDiscovery="false" value="" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.301538030" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf.64294854" name="GCC C++ Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="gnu.c.optimization.level.none" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.1835980884" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" valueType="enumerated"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug.788212214" name="Debug Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug" useByScannerDiscovery="false"/>
-
+
</tool>
-
+
<tool command="aarch64-elf-gcc.exe" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf.1804365799" name="GCC Assembler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="true" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug.490655419" name="Generate debugging information (-g)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug" useByScannerDiscovery="false" valueType="boolean"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.cpu.694327385" name="CPU (-mcpu)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.cpu" useByScannerDiscovery="false" value="" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input.883450564" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf.891273559" name="GCC C Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf">
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libs.654731770" name="Libraries (-l)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libs" useByScannerDiscovery="false" valueType="libs">
-
+
<listOptionValue builtIn="false" value="tx"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libsearch.764636049" name="Library search path (-L)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libsearch" useByScannerDiscovery="false" valueType="libPaths">
-
+
<listOptionValue builtIn="false" value="&quot;..\..\tx\Debug&quot;"/>
-
+
</option>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.script.1545347593" name="Linker script" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.script" useByScannerDiscovery="false" value="..\sample_threadx.ld" valueType="string"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags.846498594" name="Other flags" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags" useByScannerDiscovery="false" value="--specs=rdimon.specs" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input.1672586300" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input">
-
+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-
+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-
+
</inputType>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf.2107716357" name="GCC C++ Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf.1675872554" name="GCC Archiver 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<sourceEntries>
-
+
<entry excluding="startup_el3.S|startup_el2.S|startup_el1.S|startup_old.S" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="sample_threadx.com.arm.eclipse.build.project.v6.exe.1027551600" name="Executable"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.S b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.S
index c787c3f5..e8a87f0b 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.S
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.S
@@ -92,7 +92,7 @@ _mutex_release:
.type _mutex_acquire, "function"
.cfi_startproc
_mutex_acquire:
- // This uses a "ticket lock". The lock is stored as a 32-bit value:
+ // This uses a "ticket lock". The lock is stored as a 32-bit value:
// - the upper 16-bits record the thread's ticket number ("take a ticket")
// - the lower 16-bits record the ticket being served ("now serving")
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.h b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.h
index ec1a1d28..00e9cd60 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.h
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/MP_Mutexes.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
#ifndef MP_MUTEX_H
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/sample_threadx.ld b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/sample_threadx.ld
index eec8f12b..3bf47736 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/sample_threadx.ld
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/sample_threadx.ld
@@ -1,7 +1,7 @@
/* Linker script to place sections and symbol values.
* It references following symbols, which must be defined in code:
* start64 : Entry point
- *
+ *
* It defines following symbols, which code can use without definition:
* __cs3_peripherals
* __code_start
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/startup.S b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/startup.S
index b71b45f8..b44806fe 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/startup.S
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/startup.S
@@ -328,7 +328,7 @@ el1_entry_aarch64:
//
// Cortex-A processors automatically invalidate their caches on reset
// (unless suppressed with the DBGL1RSTDISABLE or L2RSTDISABLE pins).
- // It is therefore not necessary for software to invalidate the caches
+ // It is therefore not necessary for software to invalidate the caches
// on startup, however, this is done here in case of a warm reset.
bl InvalidateUDCaches
tlbi VMALLE1
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_aarch64.h b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_aarch64.h
index b09079a4..91ca9653 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_aarch64.h
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_aarch64.h
@@ -4,7 +4,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_mmu.h b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_mmu.h
index bce62b54..d0c51601 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_mmu.h
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/sample_threadx/v8_mmu.h
@@ -101,7 +101,7 @@
#define TT_S1_ATTR_PXN (1 << 53)
#define TT_S1_ATTR_UXN (1 << 54)
-// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
+// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
// for IMPLEMENTATIONDEFINED purposes, otherwise IGNORED
#define TT_S1_MAIR_DEV_nGnRnE 0b00000000
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/tx/.cproject b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/tx/.cproject
index f1b8ed5b..9e5a975e 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/tx/.cproject
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/example_build/tx/.cproject
@@ -1,164 +1,164 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915" name="Debug" parent="com.arm.eclipse.build.config.v6.lib.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915." name="/" resourcePath="">
-
+
<toolChain id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.var.gcc-8.3.0-aarch64-elf.1652432530" name="GCC 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.var.gcc-8.3.0-aarch64-elf">
-
+
<targetPlatform id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.var.gcc-8.3.0-aarch64-elf.1652432530.1250098983" name=""/>
-
+
<builder buildPath="${workspace_loc:/tx}/Debug" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder.408478790" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1755052156" name="GCC C Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.cpu.281590127" name="CPU (-mcpu)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.cpu" useByScannerDiscovery="false" value="" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.defsym.1254489229" name="Defined symbols (-D)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.defsym" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="STANDALONE"/>
-
+
<listOptionValue builtIn="false" value="ENABLE_ARM_FP"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath.1541383646" name="Include paths (-I)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.379931340" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" value="gnu.c.optimization.level.none" valueType="enumerated"/>
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch.590859224" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch" useByScannerDiscovery="false" value="armv8-a" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.11119542" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf.1308248336" name="GCC C++ Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.842447027" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" value="gnu.c.optimization.level.none" valueType="enumerated"/>
-
+
</tool>
-
+
<tool command="aarch64-elf-gcc.exe" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf.2113642977" name="GCC Assembler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf">
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.cpu.1603138513" name="CPU (-mcpu)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.cpu" useByScannerDiscovery="false" value="" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.defsym.1797095306" name="Defined symbols (-D)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.defsym" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="EL1"/>
-
+
</option>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug.1075418381" name="Generate debugging information (-g)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch.590859224" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch" useByScannerDiscovery="false" value="armv8-a" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input.93700751" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input"/>
-
+
</tool>
-
+
<tool command="aarch64-elf-ar.exe" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf.1983468481" name="GCC C Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf">
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags.1806767239" name="Other flags" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags" useByScannerDiscovery="false" value="-r" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input.1298708086" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input">
-
+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-
+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-
+
</inputType>
-
+
<outputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.output.478221475" outputPrefix="lib" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.output"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf.2101445430" name="GCC C++ Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf.1756490450" name="GCC Archiver 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<sourceEntries>
-
+
<entry excluding="src_generic/tx_misra.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="tx.com.arm.eclipse.build.project.v6.lib.1209080418" name="Static Library"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx/ports/gnu/src/tx_initialize_low_level.S b/ports_arch/ARMv8-A/threadx/ports/gnu/src/tx_initialize_low_level.S
index 3dce3cea..3025f12b 100644
--- a/ports_arch/ARMv8-A/threadx/ports/gnu/src/tx_initialize_low_level.S
+++ b/ports_arch/ARMv8-A/threadx/ports/gnu/src/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -58,17 +59,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
@@ -99,4 +89,4 @@ _tx_initialize_low_level:
/* Done, return to caller. */
RET // Return to caller
-// }
+// }
diff --git a/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_port_dispatch.c b/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_port_dispatch.c
index 7dd37868..a0067ee1 100644
--- a/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_port_dispatch.c
+++ b/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_port_dispatch.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,12 +60,6 @@
/* */
/* _txm_module_manager_kernel_dispatch */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 01-31-2022 Andres Mlinar Initial Version 6.1.10 */
-/* */
/**************************************************************************/
ALIGN_TYPE _txm_module_manager_port_dispatch(TXM_MODULE_INSTANCE *module_instance, ULONG kernel_request, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
{
diff --git a/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_thread_stack_build.S b/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_thread_stack_build.S
index 8fb96e08..c005f949 100644
--- a/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_thread_stack_build.S
+++ b/ports_arch/ARMv8-A/threadx_modules/common/src/txm_module_manager_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,15 +58,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 01-31-2022 Andres Mlinar Initial Version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _txm_module_manager_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(TX_THREAD *, TXM_MODULE_INSTANCE *))
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/inc/tx_port.h b/ports_arch/ARMv8-A/threadx_smp/common/inc/tx_port.h
index 8db51aba..262f2ddf 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/inc/tx_port.h
+++ b/ports_arch/ARMv8-A/threadx_smp/common/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -42,15 +43,6 @@
/* own special types that can be mapped to actual data types by this */
/* file to guarantee consistency in the interface and functionality. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Bhupendra Naphade Modified comment(s),updated */
-/* macro definition, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -419,7 +411,7 @@ VOID tx_thread_fp_disable(VOID);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX ARMv8-A-SMP Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX ARMv8-A-SMP Version 6.5.0.202601 *";
#else
extern CHAR _tx_version_id[];
#endif
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S
index c16c6dbb..5cd7a9df 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,22 +58,6 @@
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 William E. Lamie Modified comments, removed */
-/* FIFO queueing, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, added */
-/* memory barrier, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_save.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_save.S
index c8281503..76641067 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,18 +57,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_schedule.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_schedule.S
index 52654783..de6b70dd 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -58,19 +59,6 @@
/* _tx_thread_system_return Return to system from thread */
/* _tx_thread_context_restore Restore thread's context */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* added memory barrier, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_get.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_get.S
index 684e317c..ea14c901 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_get.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_get.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,18 +55,6 @@
/* */
/* ThreadX Source */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_core_get
.type _tx_thread_smp_core_get, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_preempt.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_preempt.S
index 903a5ab9..1d28907f 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_preempt.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_core_preempt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,18 +62,6 @@
/* */
/* ThreadX Source */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_core_preempt
.type _tx_thread_smp_core_preempt, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_state_get.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_state_get.S
index 67b5b6f5..707b41d2 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_state_get.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_state_get.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,18 +55,6 @@
/* */
/* ThreadX Components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_current_state_get
.type _tx_thread_smp_current_state_get, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_thread_get.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_thread_get.S
index 42d5776c..6c4bc9af 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_thread_get.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_current_thread_get.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,18 +55,6 @@
/* */
/* ThreadX Components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_current_thread_get
.type _tx_thread_smp_current_thread_get, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_initialize_wait.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_initialize_wait.S
index f1c067cf..defd791c 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_initialize_wait.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_initialize_wait.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,18 +57,6 @@
/* */
/* Hardware */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_initialize_wait
.type _tx_thread_smp_initialize_wait, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_low_level_initialize.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_low_level_initialize.S
index 101a91f3..99b20d24 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_low_level_initialize.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_low_level_initialize.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,17 +56,6 @@
/* */
/* _tx_initialize_high_level ThreadX high-level init */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_low_level_initialize
.type _tx_thread_smp_low_level_initialize, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protect.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protect.S
index d2750b7e..1155a3fa 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protect.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protect.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -60,22 +61,6 @@
/* */
/* ThreadX Source */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* improved SMP code, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 William E. Lamie Modified comments, removed */
-/* FIFO queueing, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_protect
.type _tx_thread_smp_protect, @function
@@ -124,9 +109,9 @@ _get_protection:
CBZ w5, _got_protection // Did it succeed? w5 = 0 means success!
MSR DAIF, x0 // Restore interrupts
B _tx_thread_smp_protect // Restart the protection attempt
-
+
_got_protection:
- DMB ISH //
+ DMB ISH //
STR w2, [x1, #4] // Save owning core
_owned:
LDR w5, [x1, #8] // Pickup ownership count
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protection_wait_list_macros.h b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protection_wait_list_macros.h
index 1c83a29c..82657cb8 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protection_wait_list_macros.h
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_protection_wait_list_macros.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_time_get.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_time_get.S
index ee4dd40c..335824fb 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_time_get.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_time_get.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,17 +56,6 @@
/* */
/* ThreadX Source */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_time_get
.type _tx_thread_smp_time_get, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_unprotect.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_unprotect.S
index ae700d1e..680e8bc8 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_unprotect.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_smp_unprotect.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,21 +58,6 @@
/* */
/* ThreadX Source */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 William E. Lamie Modified comments, removed */
-/* FIFO queueing, */
-/* resulting in version 6.1.11 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
.global _tx_thread_smp_unprotect
.type _tx_thread_smp_unprotect, @function
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_stack_build.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_stack_build.S
index 746bbd42..581e259e 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,17 +58,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S
index b889de21..23c75241 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,19 +58,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* added ARMv8.2-A support, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, added */
-/* memory barrier, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_timer_interrupt.S b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_timer_interrupt.S
index bad59269..5c6a6bc2 100644
--- a/ports_arch/ARMv8-A/threadx_smp/common/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv8-A/threadx_smp/common/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -59,15 +60,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/.cproject b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/.cproject
index f9c90b21..4a9d74c4 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/.cproject
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/.cproject
@@ -1,148 +1,148 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.exe.debug.base.var.arm_compiler_6-6.4.1908576142">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.exe.debug.base.var.arm_compiler_6-6.4.1908576142" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;com.arm.eclipse.builder.armcc.error;org.eclipse.cdt.core.CWDLocator" id="com.arm.eclipse.build.config.v6.exe.debug.base.var.arm_compiler_6-6.4.1908576142" name="Debug" parent="com.arm.eclipse.build.config.v6.exe.debug.base.var.arm_compiler_6-6.4.1908576142" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.exe.debug.base.var.arm_compiler_6-6.4.1908576142." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.base.var.arm_compiler_6-6.1592753597" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.1337922098" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" useByScannerDiscovery="false" value="Cortex-A35.AArch64.ARMv8.Neon.Crypto" valueType="string"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.base.var.arm_compiler_6-6.1592753597.2060144338" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/sample_threadx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.930180945" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.1851739731" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.1469609164" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1747478037" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.1133188329" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-a35" valueType="string"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.2103612806" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.1922332235" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1099998393" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.2087802691" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.2040227767" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.143750331" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-a35" valueType="string"/>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.1316842528" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.171988073" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.linker.option.entry.1473530747" name="Image entry point (--entry)" superClass="com.arm.tool.c.linker.option.entry" useByScannerDiscovery="false" value="start64" valueType="string"/>
-
+
<option id="com.arm.tool.c.linker.option.scatter.1215444221" name="Scatter file (--scatter)" superClass="com.arm.tool.c.linker.option.scatter" useByScannerDiscovery="false" value="..\sample_threadx.scat" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.linker.libs.473662930" name="User library files" superClass="com.arm.tool.c.linker.libs" useByScannerDiscovery="false" valueType="libs">
-
+
<listOptionValue builtIn="false" value="..\..\tx\Debug\tx.a"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.linker.option.keep.112664581" name="Keep specific sections (--keep)" superClass="com.arm.tool.c.linker.option.keep" useByScannerDiscovery="false" valueType="stringList">
-
+
<listOptionValue builtIn="false" value="&quot;vectors.o(*)&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.linker.option.imagemap.1230779259" name="Generate image map (--map)" superClass="com.arm.tool.c.linker.option.imagemap" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.c.linker.option.redirectoutput.2060747663" name="Redirect diagnostics output to file (--list)" superClass="com.arm.tool.c.linker.option.redirectoutput" useByScannerDiscovery="false" value="sample_threadx.map" valueType="string"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.1794035726" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<sourceEntries>
-
+
<entry excluding="intrinsics.h|handlers.c|fvp.S|fvp.h|fvp_defs.h|xtables.S|xtables.h|retarget.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="sample_threadx.com.arm.eclipse.build.project.v6.exe.base.var.arm_compiler_6-6.4.1786842207" name="Executable"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.S b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.S
index c787c3f5..e8a87f0b 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.S
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.S
@@ -92,7 +92,7 @@ _mutex_release:
.type _mutex_acquire, "function"
.cfi_startproc
_mutex_acquire:
- // This uses a "ticket lock". The lock is stored as a 32-bit value:
+ // This uses a "ticket lock". The lock is stored as a 32-bit value:
// - the upper 16-bits record the thread's ticket number ("take a ticket")
// - the lower 16-bits record the ticket being served ("now serving")
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.h b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.h
index ec1a1d28..00e9cd60 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.h
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/MP_Mutexes.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
#ifndef MP_MUTEX_H
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/sample_threadx.scat b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/sample_threadx.scat
index 1288a328..1ed382ae 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/sample_threadx.scat
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/sample_threadx.scat
@@ -12,13 +12,13 @@ LOAD 0x80000000
{
startup.o (StartUp, +FIRST)
* (+RO, +RW, +ZI)
-
+
}
;XTABLES +0 ALIGN 0x1000
;{
- ; xtables.o (*)
+ ; xtables.o (*)
;}
-
+
SYS_STACK +0 ALIGN 8 EMPTY 0x1000
{
}
@@ -34,13 +34,13 @@ LOAD 0x80000000
; All stacks and heap are aligned to a cache-line boundary
;
ARM_LIB_STACK +0 ALIGN 64 EMPTY 4 * 0x4000 {}
-
+
;
; Handler stacks for all CPUs
; All stacks and heap are aligned to a cache-line boundary
;
HANDLER_STACK +0 ALIGN 64 EMPTY 4 * 0x4000 {}
-
+
;
; Stacks for EL3
;
@@ -217,34 +217,34 @@ LOAD 0x80000000
; {
; *( +RO )
; }
-;
+;
; XTABLES +0 ALIGN 0x1000
; {
-; xtables.o (*)
+; xtables.o (*)
; }
;}
;
;RW AlignExpr(ImageLimit(XTABLES), 0x1000)
-;{
+;{
; RWSEC +0
; {
; *( +RW )
; }
-;
+;
; ZISEC +0
; {
; *( +ZI )
; }
-;
+;
; SYS_STACK +0 ALIGN 8 EMPTY 0x1000
; {
; }
-;
+;
; ; 512 MiB heap
; HEAP +0 ALIGN 8 EMPTY 0x10000000
; {
; }
-;
+;
; ; Free Memory section
; FREE_MEMORY +0 ALIGN 8 EMPTY 0x10000000
; {
@@ -254,7 +254,7 @@ LOAD 0x80000000
; TASK_STACKS +0 ALIGN 16 EMPTY (4 * 0x8000000)
; {
; }
-;
+;
; ; Per-CPU 128 MiB handler stacks
; HANDLER_STACKS +0 ALIGN 16 EMPTY (4 * 0x8000000)
; {
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_aarch64.h b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_aarch64.h
index b09079a4..91ca9653 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_aarch64.h
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_aarch64.h
@@ -4,7 +4,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_mmu.h b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_mmu.h
index bce62b54..d0c51601 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_mmu.h
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/sample_threadx/v8_mmu.h
@@ -101,7 +101,7 @@
#define TT_S1_ATTR_PXN (1 << 53)
#define TT_S1_ATTR_UXN (1 << 54)
-// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
+// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
// for IMPLEMENTATIONDEFINED purposes, otherwise IGNORED
#define TT_S1_MAIR_DEV_nGnRnE 0b00000000
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/tx/.cproject b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/tx/.cproject
index 751695e9..56babab8 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/tx/.cproject
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/example_build/tx/.cproject
@@ -1,188 +1,188 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.build.config.v6.lib.debug.base.1470528944">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.build.config.v6.lib.debug.base.1470528944" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings>
-
+
<externalSetting>
-
+
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
-
+
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Debug"/>
-
+
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
-
+
</externalSetting>
-
+
</externalSettings>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="com.arm.eclipse.builder.armcc.error" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.build.config.v6.lib.debug.base.1470528944" name="Debug" parent="com.arm.eclipse.build.config.v6.lib.debug.base">
-
+
<folderInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.1470528944." name="/" resourcePath="">
-
+
<toolChain id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.1684503312" name="Arm Compiler 6" superClass="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.toolchain.v6.base.options.target.cpu_fpu.982423385" superClass="com.arm.toolchain.v6.base.options.target.cpu_fpu" useByScannerDiscovery="false" value="Cortex-A35.AArch64.ARMv8.Neon.Crypto" valueType="string"/>
-
+
<targetPlatform id="com.arm.toolchain.v6.lib.debug.base.var.arm_compiler_6-6.1684503312.2127819066" name=""/>
-
+
<builder autoBuildTarget="all" buildPath="${workspace_loc:/tx}/Debug" cleanBuildTarget="clean" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="com.arm.toolchain.v6.builder.218588332" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="8" superClass="com.arm.toolchain.v6.builder"/>
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.option.cpu.1024278185" name="CPU (-mcpu)" superClass="com.arm.tool.c.compiler.v6.base.option.cpu" useByScannerDiscovery="true" value="cortex-a35" valueType="string"/>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.preproc.enableToolSpecificSettings.830475099" name="Enable tool specific settings" superClass="com.arm.tool.c.compiler.v6.base.options.preproc.enableToolSpecificSettings" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.defmac.629598594" name="Define macro (-D)" superClass="com.arm.tool.c.compiler.v6.base.option.defmac" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="STANDALONE"/>
-
+
<listOptionValue builtIn="false" value="ENABLE_ARM_FP"/>
-
+
<listOptionValue builtIn="false" value="EL1"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.c.compiler.v6.base.option.incpath.1174790238" name="Include path (-I)" superClass="com.arm.tool.c.compiler.v6.base.option.incpath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.1929133768" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.1594212938" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6.782830388" name="Arm C++ Compiler 6" superClass="com.arm.tool.cpp.compiler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.c.compiler.v6.base.options.debug.level.694979544" name="Debug Level" superClass="com.arm.tool.c.compiler.v6.base.options.debug.level" useByScannerDiscovery="true" value="com.arm.tool.c.compiler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6.1403694095" name="Arm Assembler 6" superClass="com.arm.tool.assembler.v6.base.var.arm_compiler_6-6">
-
+
<option id="com.arm.tool.assembler.v6.base.options.target.enableToolSpecificSettings.886405178" name="Enable tool specific settings" superClass="com.arm.tool.assembler.v6.base.options.target.enableToolSpecificSettings" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.cpu.503759823" name="CPU (-mcpu)" superClass="com.arm.tool.assembler.v6.base.option.cpu" useByScannerDiscovery="false" value="cortex-a35" valueType="string"/>
-
+
<option id="com.arm.tool.assembler.v6.base.options.preproc.enableToolSpecificSettings.2108581983" name="Enable tool specific settings" superClass="com.arm.tool.assembler.v6.base.options.preproc.enableToolSpecificSettings" useByScannerDiscovery="false" value="true" valueType="boolean"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.tool.assembler.v6.base.option.defmac.145275549" name="Define macro (-D)" superClass="com.arm.tool.assembler.v6.base.option.defmac" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="EL1"/>
-
+
<listOptionValue builtIn="false" value="ENABLE_ARM_FP"/>
-
+
<listOptionValue builtIn="false" value="TX_THREAD_SMP_CLUSTERS=2"/>
-
+
</option>
-
+
<option id="com.arm.tool.assembler.v6.base.options.debug.level.1383721850" name="Debug Level" superClass="com.arm.tool.assembler.v6.base.options.debug.level" useByScannerDiscovery="false" value="com.arm.tool.assembler.v6.base.options.debug.level.std" valueType="enumerated"/>
-
+
<option id="com.arm.tool.assembler.v6.base.option.target.1246037057" name="Target (--target)" superClass="com.arm.tool.assembler.v6.base.option.target" useByScannerDiscovery="false" value="aarch64-arm-none-eabi" valueType="string"/>
-
+
<inputType id="com.arm.tool.assembler.v6.base.input.693221555" superClass="com.arm.tool.assembler.v6.base.input"/>
-
+
</tool>
-
+
<tool id="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6.1809021405" name="Arm Linker 6" superClass="com.arm.tool.c.linker.v6.base.var.arm_compiler_6-6"/>
-
+
<tool id="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6.1906007863" name="Arm Librarian 6" superClass="com.arm.tool.librarian.v6.base.var.arm_compiler_6-6"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<fileInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.1470528944.214318543" name="tx_thread_timeout.c" rcbsApplicability="disable" resourcePath="src_generic/tx_thread_timeout.c" toolsToInvoke="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428.1899536638">
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428.1899536638" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428">
-
+
<inputType id="com.arm.tool.c.compiler.v6.base.input.1006773355" superClass="com.arm.tool.c.compiler.v6.base.input"/>
-
+
</tool>
-
+
</fileInfo>
-
+
<fileInfo id="com.arm.eclipse.build.config.v6.lib.debug.base.1470528944.1145515026" name="tx_misra.c" rcbsApplicability="disable" resourcePath="src_generic/tx_misra.c" toolsToInvoke="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428.1242981128">
-
+
<tool id="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428.1242981128" name="Arm C Compiler 6" superClass="com.arm.tool.c.compiler.v6.base.var.arm_compiler_6-6.2072709428"/>
-
+
</fileInfo>
-
+
<sourceEntries>
-
+
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="tx.com.arm.eclipse.build.project.v6.lib.1209080418" name="Static Library"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/src/tx_initialize_low_level.S b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/src/tx_initialize_low_level.S
index 7d2cfabf..08986f7b 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/ac6/src/tx_initialize_low_level.S
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/ac6/src/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/.cproject b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/.cproject
index 34967225..aab1eeaf 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/.cproject
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/.cproject
@@ -1,164 +1,164 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.1006631269">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.1006631269" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings/>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.1006631269" name="Debug" parent="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf">
-
+
<folderInfo id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.1006631269." name="/" resourcePath="">
-
+
<toolChain id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.exe.debug.var.gcc-8.3.0-aarch64-elf.2028792089" name="GCC 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.exe.debug.var.gcc-8.3.0-aarch64-elf">
-
+
<targetPlatform id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.1006631269..772840237" name=""/>
-
+
<builder buildPath="${workspace_loc:/sample_threadx}/Debug" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder.1767338327" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1090040185" name="GCC C Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="gnu.c.optimization.level.none" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.1575547072" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" valueType="enumerated"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug.1472992242" name="Debug Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug" useByScannerDiscovery="false"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath.1976318302" name="Include paths (-I)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tx/inc_port}&quot;"/>
-
+
</option>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch.592546526" name="Architecture (-march)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch" useByScannerDiscovery="false" value="armv8-a" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.1092691037" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf.916235712" name="GCC C++ Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="gnu.c.optimization.level.none" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.1184930329" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" valueType="enumerated"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug.1482765081" name="Debug Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug" useByScannerDiscovery="false"/>
-
+
</tool>
-
+
<tool command="aarch64-elf-gcc.exe" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf.1242503859" name="GCC Assembler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="true" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug.427023612" name="Generate debugging information (-g)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug" valueType="boolean"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.arch.1946877163" name="Architecture (-march)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.arch" useByScannerDiscovery="false" value="armv8-a" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input.1130706267" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf.69710725" name="GCC C Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf">
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags.14551747" name="Other flags" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags" useByScannerDiscovery="false" value="--specs=rdimon.specs" valueType="string"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.script.1466766031" name="Linker script" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.script" useByScannerDiscovery="false" value="../sample_threadx.ld" valueType="string"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libsearch.1719925627" name="Library search path (-L)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libsearch" useByScannerDiscovery="false" valueType="libPaths">
-
+
<listOptionValue builtIn="false" value="../../tx/Debug"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libs.2064857147" name="Libraries (-l)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.libs" useByScannerDiscovery="false" valueType="libs">
-
+
<listOptionValue builtIn="false" value="tx"/>
-
+
</option>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input.833808621" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input">
-
+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-
+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-
+
</inputType>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf.2109128657" name="GCC C++ Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf.1864382843" name="GCC Archiver 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="sample_threadx.com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.exe.var.gcc-8.3.0-aarch64-elf.875758638" name="Executable" projectType="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.exe.var.gcc-8.3.0-aarch64-elf"/>
-
+
</storageModule>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
<scannerConfigBuildInfo instanceId="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.release.var.gcc-8.3.0-aarch64-elf.642985025;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.release.var.gcc-8.3.0-aarch64-elf.642985025.;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1917850252;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.1015544157">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</scannerConfigBuildInfo>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/sample_threadx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.S b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.S
index c787c3f5..e8a87f0b 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.S
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.S
@@ -92,7 +92,7 @@ _mutex_release:
.type _mutex_acquire, "function"
.cfi_startproc
_mutex_acquire:
- // This uses a "ticket lock". The lock is stored as a 32-bit value:
+ // This uses a "ticket lock". The lock is stored as a 32-bit value:
// - the upper 16-bits record the thread's ticket number ("take a ticket")
// - the lower 16-bits record the ticket being served ("now serving")
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.h b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.h
index ec1a1d28..00e9cd60 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.h
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/MP_Mutexes.h
@@ -3,7 +3,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
#ifndef MP_MUTEX_H
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/sample_threadx.ld b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/sample_threadx.ld
index e9b12a82..1c6d45b5 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/sample_threadx.ld
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/sample_threadx.ld
@@ -1,7 +1,7 @@
/* Linker script to place sections and symbol values.
* It references following symbols, which must be defined in code:
* start64 : Entry point
- *
+ *
* It defines following symbols, which code can use without definition:
* __cs3_peripherals
* __code_start
@@ -194,7 +194,7 @@ SECTIONS
. = . + 4 * 0x8000;
__stack = .;
}
-
+
.handler_stack_limit (NOLOAD):
{
. = ALIGN(64);
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_aarch64.h b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_aarch64.h
index b09079a4..91ca9653 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_aarch64.h
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_aarch64.h
@@ -4,7 +4,7 @@
*
* Copyright (c) 2012-2014 Arm Limited (or its affiliates). All rights reserved.
* Use, modification and redistribution of this file is subject to your possession of a
- * valid End User License Agreement for the Arm Product of which these examples are part of
+ * valid End User License Agreement for the Arm Product of which these examples are part of
* and your compliance with all applicable terms and conditions of such licence agreement.
*/
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_mmu.h b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_mmu.h
index bce62b54..d0c51601 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_mmu.h
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/sample_threadx/v8_mmu.h
@@ -101,7 +101,7 @@
#define TT_S1_ATTR_PXN (1 << 53)
#define TT_S1_ATTR_UXN (1 << 54)
-// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
+// PBHA bits[62:59] - If Armv8.2-TTPBHA is implemented, hardware can use these bits
// for IMPLEMENTATIONDEFINED purposes, otherwise IGNORED
#define TT_S1_MAIR_DEV_nGnRnE 0b00000000
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/tx/.cproject b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/tx/.cproject
index 3547a1d3..e3f31405 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/tx/.cproject
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/example_build/tx/.cproject
@@ -1,200 +1,200 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
-
+
<storageModule moduleId="org.eclipse.cdt.core.settings">
-
+
<cconfiguration id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674">
-
+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-
+
<externalSettings>
-
+
<externalSetting>
-
+
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tx"/>
-
+
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tx/Debug"/>
-
+
<entry flags="RESOLVED" kind="libraryFile" name="tx" srcPrefixMapping="" srcRootPath=""/>
-
+
</externalSetting>
-
+
</externalSettings>
-
+
<extensions>
-
+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-
+
</extensions>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="clean" description="" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674" name="Debug" parent="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf">
-
+
<folderInfo id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674." name="/" resourcePath="">
-
+
<toolChain id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.exe.debug.var.gcc-8.3.0-aarch64-elf.1044400792" name="GCC 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.toolchain.exe.debug.var.gcc-8.3.0-aarch64-elf">
-
+
<targetPlatform id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674..1923732242" name=""/>
-
+
<builder buildPath="${workspace_loc:/tx}/Debug" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder.192205232" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.builder"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1247168701" name="GCC C Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="gnu.c.optimization.level.none" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.1514058704" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" valueType="enumerated"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug.1047964694" name="Debug Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug" useByScannerDiscovery="false"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath.1734103792" name="Include paths (-I)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.includepath" useByScannerDiscovery="false" valueType="includePath">
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_generic}&quot;"/>
-
+
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc_port}&quot;"/>
-
+
</option>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.defsym.829608210" name="Defined symbols (-D)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.defsym" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="STANDALONE"/>
-
+
<listOptionValue builtIn="false" value="ENABLE_ARM_FP"/>
-
+
<listOptionValue builtIn="false" value="EL1"/>
-
+
</option>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.other.349843643" name="Other flags" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.other" useByScannerDiscovery="false" value="-Wno-unused-function" valueType="string"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch.1974562062" name="Architecture (-march)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.arch" useByScannerDiscovery="false" value="armv8-a" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.1073576394" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf.1215160681" name="GCC C++ Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.compiler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="gnu.c.optimization.level.none" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt.1361727446" name="Optimization Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.opt" useByScannerDiscovery="false" valueType="enumerated"/>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug.777741249" name="Debug Level" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.option.debug" useByScannerDiscovery="false"/>
-
+
</tool>
-
+
<tool command="aarch64-elf-gcc.exe" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf.3581408" name="GCC Assembler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.var.gcc-8.3.0-aarch64-elf">
-
+
<option defaultValue="true" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug.1479915574" name="Generate debugging information (-g)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.debug" useByScannerDiscovery="false" valueType="boolean"/>
-
+
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.defsym.247736544" name="Defined symbols (-D)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.defsym" useByScannerDiscovery="false" valueType="definedSymbols">
-
+
<listOptionValue builtIn="false" value="EL1"/>
-
+
</option>
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.arch.973112769" name="Architecture (-march)" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.option.arch" useByScannerDiscovery="false" value="armv8-a" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input.598225750" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.assembler.input"/>
-
+
</tool>
-
+
<tool command="aarch64-elf-ar.exe" id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf.1915339168" name="GCC C Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.var.gcc-8.3.0-aarch64-elf">
-
+
<option id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags.1026192913" name="Other flags" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.option.flags" useByScannerDiscovery="false" value="-r" valueType="string"/>
-
+
<inputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input.1637631819" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.input">
-
+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
-
+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-
+
</inputType>
-
+
<outputType id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.output.800978390" outputPrefix="lib" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.linker.output"/>
-
+
</tool>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf.1585841955" name="GCC C++ Linker 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.cpp.linker.var.gcc-8.3.0-aarch64-elf"/>
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf.545644886" name="GCC Archiver 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.archiver.var.gcc-8.3.0-aarch64-elf"/>
-
+
</toolChain>
-
+
</folderInfo>
-
+
<fileInfo id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674.1482422597" name="tx_misra.c" rcbsApplicability="disable" resourcePath="src_generic/tx_misra.c" toolsToInvoke="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1247168701.1451532610">
-
+
<tool id="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1247168701.1451532610" name="GCC C Compiler 8.3.0 [aarch64-elf]" superClass="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1247168701"/>
-
+
</fileInfo>
-
+
<sourceEntries>
-
+
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
-
+
</sourceEntries>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-
+
</cconfiguration>
-
+
</storageModule>
-
+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-
+
<project id="tx.com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.exe.var.gcc-8.3.0-aarch64-elf.1102801152" name="Executable" projectType="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.target.exe.var.gcc-8.3.0-aarch64-elf"/>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
-
+
<storageModule moduleId="com.arm.projectSettings" version="6.0.0"/>
-
+
<storageModule moduleId="refreshScope" versionNumber="2">
-
+
<configuration configurationName="Debug">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
<configuration configurationName="Release">
-
+
<resource resourceType="PROJECT" workspacePath="/tx"/>
-
+
</configuration>
-
+
</storageModule>
-
+
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
-
+
<storageModule moduleId="scannerConfiguration">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
<scannerConfigBuildInfo instanceId="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.release.var.gcc-8.3.0-aarch64-elf.413724976;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.release.var.gcc-8.3.0-aarch64-elf.413724976.;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1738885767;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.1019453589">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</scannerConfigBuildInfo>
-
+
<scannerConfigBuildInfo instanceId="com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.config.exe.debug.var.gcc-8.3.0-aarch64-elf.794347674.;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.var.gcc-8.3.0-aarch64-elf.1247168701;com.arm.eclipse.cdt.managedbuild.ds5.gcc.baremetal.tool.c.compiler.input.1073576394">
-
+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
-
+
</scannerConfigBuildInfo>
-
+
</storageModule>
-
+
</cproject>
diff --git a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/src/tx_initialize_low_level.S b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/src/tx_initialize_low_level.S
index b171fc0f..efb08b80 100644
--- a/ports_arch/ARMv8-A/threadx_smp/ports/gnu/src/tx_initialize_low_level.S
+++ b/ports_arch/ARMv8-A/threadx_smp/ports/gnu/src/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -58,17 +59,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 William E. Lamie Initial Version 6.1 */
-/* 01-31-2022 Andres Mlinar Updated comments, */
-/* resulting in version 6.1.10 */
-/* 10-31-2023 Tiejun Zhou Modified comment(s), added */
-/* #include tx_user.h, */
-/* resulting in version 6.3.0 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv8-A/update.ps1 b/ports_arch/ARMv8-A/update.ps1
index 1c7ae53e..0663b603 100644
--- a/ports_arch/ARMv8-A/update.ps1
+++ b/ports_arch/ARMv8-A/update.ps1
@@ -109,7 +109,7 @@ If (-Not (Test-Path -Path $LogDir -PathType Container)) {
Function Copy-FilesVerbose {
[CmdletBinding()] Param (
- [string] $source,
+ [string] $source,
[string] $destination_directory
)
Write-Verbose ("Copying common files...")
@@ -131,9 +131,9 @@ ForEach ($PortSet in $PortSets) {
$compiler_directory = $core_directory + "\" + $compiler
Write-Verbose ("Compiler directory: $compiler_directory")
$compiler_directory_object = New-Item -Path $compiler_directory -ItemType "directory" -Force
-
+
$destination_directory = $compiler_directory
-
+
If ($CopyCommonFiles) {
Copy-FilesVerbose -source "threadx\common\*" -destination_directory $destination_directory
}
@@ -141,7 +141,7 @@ ForEach ($PortSet in $PortSets) {
If ($CopyPortFiles) {
Copy-FilesVerbose -source "threadx\ports\$compiler\*" -destination_directory $destination_directory
}
-
+
If ($PortSet -eq 'tx_smp') {
If ($CopyCommonFiles) {
Copy-FilesVerbose -source "threadx_smp\common\*" -destination_directory $destination_directory
diff --git a/ports_arch/ARMv8-M/threadx/ac6/readme_threadx.txt b/ports_arch/ARMv8-M/threadx/ac6/readme_threadx.txt
index 5821892f..87556be5 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/readme_threadx.txt
+++ b/ports_arch/ARMv8-M/threadx/ac6/readme_threadx.txt
@@ -1,46 +1,46 @@
- Microsoft's Azure RTOS ThreadX for Cortex-Mxx
+ Microsoft's Azure RTOS ThreadX for Cortex-Mxx
Using the AC6 Tools in Keil uVision
1. Import the ThreadX Projects
-In order to build the ThreadX library and the ThreadX demonstration, first open
-the AzureRTOS.uvmpw workspace (located in the "example_build" directory)
+In order to build the ThreadX library and the ThreadX demonstration, first open
+the AzureRTOS.uvmpw workspace (located in the "example_build" directory)
into Keil.
2. Building the ThreadX run-time Library
Building the ThreadX library is easy; simply set the ThreadX_Library project
-as active, then then build the library. You should now observe the compilation
+as active, then then build the library. You should now observe the compilation
and assembly of the ThreadX library. This project build produces the ThreadX
library file ThreadX_Library.lib.
-Files tx_thread_stack_error_handler.c and tx_thread_stack_error_notify.c
-replace the common files of the same name.
+Files tx_thread_stack_error_handler.c and tx_thread_stack_error_notify.c
+replace the common files of the same name.
3. Demonstration System
The ThreadX demonstration is designed to execute under the Keil debugger on the
FVP_MPS2_Cortex-Mxx_MDK simulator.
-Building the demonstration is easy; simply select the "Batch Build" button.
-You should now observe the compilation and assembly of the ThreadX demonstration of
-both the demo_secure_zone and demo_threadx_non-secure_zone projects.
+Building the demonstration is easy; simply select the "Batch Build" button.
+You should now observe the compilation and assembly of the ThreadX demonstration of
+both the demo_secure_zone and demo_threadx_non-secure_zone projects.
Then click the Start/Stop Debug Session button to start the simulator and begin debugging.
You are now ready to execute the ThreadX demonstration.
4. System Initialization
-The entry point in ThreadX for the Cortex-Mxx using AC6 tools uses the standard AC6
+The entry point in ThreadX for the Cortex-Mxx using AC6 tools uses the standard AC6
Cortex-Mxx reset sequence. From the reset vector the C runtime will be initialized.
-The ThreadX tx_initialize_low_level.s file is responsible for setting up
-various system data structures, the vector area, and a periodic timer interrupt
-source.
+The ThreadX tx_initialize_low_level.s file is responsible for setting up
+various system data structures, the vector area, and a periodic timer interrupt
+source.
-In addition, _tx_initialize_low_level determines the first available
-address for use by the application, which is supplied as the sole input
+In addition, _tx_initialize_low_level determines the first available
+address for use by the application, which is supplied as the sole input
parameter to your application definition function, tx_application_define.
@@ -49,7 +49,7 @@ parameter to your application definition function, tx_application_define.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-Mxx version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -132,26 +132,26 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
6. Improving Performance
-To make ThreadX and the application(s) run faster, you can enable
-all compiler optimizations.
+To make ThreadX and the application(s) run faster, you can enable
+all compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
7. Interrupt Handling
ThreadX provides complete and high-performance interrupt handling for Cortex-Mxx
-targets. There are a certain set of requirements that are defined in the
+targets. There are a certain set of requirements that are defined in the
following sub-sections:
7.1 Vector Area
The Cortex-Mxx vectors start at the label __Vectors or similar. The application may modify
-the vector area according to its needs. There is code in tx_initialize_low_level() that will
-configure the vector base register.
+the vector area according to its needs. There is code in tx_initialize_low_level() that will
+configure the vector base register.
7.2 Managed Interrupts
@@ -177,7 +177,7 @@ your_assembly_isr:
; VOID your_assembly_isr(VOID)
; {
PUSH {r0, lr}
-;
+;
; /* Do interrupt handler work here */
; /* BL <your interrupt routine in C> */
@@ -187,15 +187,15 @@ your_assembly_isr:
Note: the Cortex-Mxx requires exception handlers to be thumb labels, this implies bit 0 set.
To accomplish this, the declaration of the label has to be preceded by the assembler directive
-.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
-be inserted in the correct location in the interrupt vector table. This table is typically
+.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
+be inserted in the correct location in the interrupt vector table. This table is typically
located in either your runtime startup file or in the tx_initialize_low_level.s file.
8. FPU Support
-ThreadX for Cortex-Mxx supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-Mxx supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context.
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_initialize_low_level.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_initialize_low_level.S
index 259ef110..9332b7e1 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_initialize_low_level.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -65,14 +66,6 @@ HEAP_SIZE = 0x00000000
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_misra.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_misra.S
index 8ac0c629..10548671 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_misra.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_misra.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -667,7 +668,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -682,7 +683,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARM_FP
/***********************************************************************************************/
@@ -699,8 +700,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -714,9 +715,9 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
+
.data
.word 0
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_restore.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_restore.S
index 3870a39f..4ed9898d 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_save.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_save.S
index fd90eedf..934e7d81 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_control.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_control.S
index 18e8832a..f8d62ad4 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_control.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_control.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,14 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_disable.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_disable.S
index 7ba4f731..b04500b5 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_disable.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_disable.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,14 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_restore.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_restore.S
index 74bb88d9..699a8921 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_restore.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_interrupt_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,14 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_schedule.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_schedule.S
index 1debdbb1..40d3282b 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -60,23 +61,6 @@
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 04-02-2021 Scott Larson Modified comment(s), added */
-/* low power code, */
-/* resulting in version 6.1.6 */
-/* 06-02-2021 Scott Larson Added secure stack initialize */
-/* in SVC handler, */
-/* resulting in version 6.1.7 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 03-08-2023 Scott Larson Added preproc FPU option, */
-/* included tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
@@ -354,7 +338,7 @@ SVC_Handler:
CMP r1, #2 // Is it a secure stack free request?
BEQ _tx_svc_secure_free // Yes, go there
-
+
CMP r1, #3 // Is it a secure stack init request?
BEQ _tx_svc_secure_init // Yes, go there
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack.c b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack.c
index 1ace10bb..73602ca3 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack.c
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -102,21 +103,6 @@ static INT tx_head_free_index = 0U;
/* */
/* _tx_initialize_kernel_enter */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 10-16-2020 Scott Larson Modified comment(s), */
-/* resulting in version 6.1.1 */
-/* 06-02-2021 Scott Larson Modified comment(s), and */
-/* changed name, execute in */
-/* handler mode, */
-/* resulting in version 6.1.7 */
-/* 01-31-2022 Himanshu Gupta Modified comments(s), updated */
-/* secure stack allocation, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
__attribute__((cmse_nonsecure_entry))
UINT _tx_thread_secure_mode_stack_initialize(void)
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_allocate.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_allocate.S
index 5fca5fa0..a66c7652 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_allocate.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_allocate.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,14 +56,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_size)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_free.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_free.S
index f4d3bfac..99b2fb82 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_free.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_free.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,14 +54,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_secure_stack_free(TX_THREAD *thread_ptr)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_initialize.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_initialize.S
index d91fa202..60993336 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_initialize.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_secure_stack_initialize.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,18 +54,6 @@
/* */
/* TX_PORT_SPECIFIC_PRE_INITIALIZATION */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 07-29-2022 Scott Larson Modified comments and changed */
-/* secure stack initialization */
-/* macro to port-specific, */
-/* resulting in version 6.1.12 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_secure_stack_initialize(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_stack_build.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_stack_build.S
index 4bcad1a4..039c0e56 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_system_return.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_system_return.S
index a1b998ac..e31c4a55 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/tx_timer_interrupt.S b/ports_arch/ARMv8-M/threadx/ac6/src/tx_timer_interrupt.S
index 655372b2..846ba2c1 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_allocate.c b/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_allocate.c
index 36e954dd..85d2bea5 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_allocate.c
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_allocate.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -63,12 +64,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
UINT _txe_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_size)
{
@@ -76,10 +71,10 @@ UINT _txe_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_siz
return(TX_FEATURE_NOT_ENABLED);
#else
UINT status;
-
+
/* Default status to success. */
status = TX_SUCCESS;
-
+
/* Check for an invalid thread pointer. */
if (thread_ptr == TX_NULL)
{
@@ -93,7 +88,7 @@ UINT status;
/* Thread pointer is invalid, return appropriate error code. */
status = TX_THREAD_ERROR;
}
-
+
/* Check for interrupt call. */
if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0))
{
@@ -104,7 +99,7 @@ UINT status;
status = TX_CALLER_ERROR;
}
}
-
+
/* Determine if everything is okay. */
if (status == TX_SUCCESS)
{
diff --git a/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_free.c b/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_free.c
index f3a735fa..c465faab 100644
--- a/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_free.c
+++ b/ports_arch/ARMv8-M/threadx/ac6/src/txe_thread_secure_stack_free.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,12 +62,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
UINT _txe_thread_secure_stack_free(TX_THREAD *thread_ptr)
{
@@ -74,10 +69,10 @@ UINT _txe_thread_secure_stack_free(TX_THREAD *thread_ptr)
return(TX_FEATURE_NOT_ENABLED);
#else
UINT status;
-
+
/* Default status to success. */
status = TX_SUCCESS;
-
+
/* Check for an invalid thread pointer. */
if (thread_ptr == TX_NULL)
{
@@ -93,7 +88,7 @@ UINT status;
/* Thread pointer is invalid, return appropriate error code. */
status = TX_THREAD_ERROR;
}
-
+
/* Check for interrupt call. */
if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0))
{
@@ -104,7 +99,7 @@ UINT status;
status = TX_CALLER_ERROR;
}
}
-
+
/* Determine if everything is okay. */
if (status == TX_SUCCESS)
{
diff --git a/ports_arch/ARMv8-M/threadx/gnu/readme_threadx.txt b/ports_arch/ARMv8-M/threadx/gnu/readme_threadx.txt
index 4a6f5660..2cce95a4 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/readme_threadx.txt
+++ b/ports_arch/ARMv8-M/threadx/gnu/readme_threadx.txt
@@ -1,32 +1,32 @@
- Microsoft's Azure RTOS ThreadX for Cortex-Mxx
+ Microsoft's Azure RTOS ThreadX for Cortex-Mxx
Using the GNU Tools
1. Building the ThreadX run-time Library
Import all ThreadX common and port-specific source files into a GNU project.
-Configure the project to build a library rather than an executable. This
-results in the ThreadX run-time library file tx.a, which is needed by
+Configure the project to build a library rather than an executable. This
+results in the ThreadX run-time library file tx.a, which is needed by
the application.
-Files tx_thread_stack_error_handler.c and tx_thread_stack_error_notify.c
-replace the common files of the same name.
+Files tx_thread_stack_error_handler.c and tx_thread_stack_error_notify.c
+replace the common files of the same name.
2. Demonstration System
-No demonstration project is provided.
+No demonstration project is provided.
3. System Initialization
-The entry point in ThreadX for the Cortex-Mxx using gnu tools uses the standard GNU
+The entry point in ThreadX for the Cortex-Mxx using gnu tools uses the standard GNU
Cortex-Mxx reset sequence. From the reset vector the C runtime will be initialized.
-The ThreadX tx_initialize_low_level.S file is responsible for setting up
-various system data structures, the vector area, and a periodic timer interrupt
-source.
+The ThreadX tx_initialize_low_level.S file is responsible for setting up
+various system data structures, the vector area, and a periodic timer interrupt
+source.
-In addition, _tx_initialize_low_level determines the first available
-address for use by the application, which is supplied as the sole input
+In addition, _tx_initialize_low_level determines the first available
+address for use by the application, which is supplied as the sole input
parameter to your application definition function, tx_application_define.
@@ -35,7 +35,7 @@ parameter to your application definition function, tx_application_define.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-Mxx version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -118,26 +118,26 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
5. Improving Performance
-To make ThreadX and the application(s) run faster, you can enable
-all compiler optimizations.
+To make ThreadX and the application(s) run faster, you can enable
+all compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
6. Interrupt Handling
ThreadX provides complete and high-performance interrupt handling for Cortex-Mxx
-targets. There are a certain set of requirements that are defined in the
+targets. There are a certain set of requirements that are defined in the
following sub-sections:
6.1 Vector Area
The Cortex-Mxx vectors start at the label __tx_vectors or similar. The application may modify
-the vector area according to its needs. There is code in tx_initialize_low_level() that will
-configure the vector base register.
+the vector area according to its needs. There is code in tx_initialize_low_level() that will
+configure the vector base register.
6.2 Managed Interrupts
@@ -170,15 +170,15 @@ your_assembly_isr:
Note: the Cortex-Mxx requires exception handlers to be thumb labels, this implies bit 0 set.
To accomplish this, the declaration of the label has to be preceded by the assembler directive
-.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
-be inserted in the correct location in the interrupt vector table. This table is typically
+.thumb_func to instruct the linker to create thumb labels. The label __tx_IntHandler needs to
+be inserted in the correct location in the interrupt vector table. This table is typically
located in either your runtime startup file or in the tx_initialize_low_level.S file.
7. FPU Support
-ThreadX for Cortex-Mxx supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-Mxx supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context.
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_initialize_low_level.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_initialize_low_level.S
index 6b058a93..842dcdf4 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_initialize_low_level.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_initialize_low_level.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -65,16 +66,6 @@ HEAP_SIZE = 0x00000000
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 01-31-2022 Scott Larson Fixed predefined macro name, */
-/* resulting in version 6.1.10 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_misra.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_misra.S
index 8ac0c629..10548671 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_misra.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_misra.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -667,7 +668,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -682,7 +683,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARM_FP
/***********************************************************************************************/
@@ -699,8 +700,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -714,9 +715,9 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
+
.data
.word 0
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_restore.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_restore.S
index 58a18971..31b62541 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_restore.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* ISRs Interrupt Service Routines */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_save.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_save.S
index 0c83ee46..bcf9fff5 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_save.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_context_save.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* ISRs */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_control.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_control.S
index cf47656b..28f1deff 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_control.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_control.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,14 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_disable.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_disable.S
index dab73165..44df6a59 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_disable.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_disable.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,14 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_restore.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_restore.S
index 96c00700..19b18805 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_restore.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_interrupt_restore.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,14 +55,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_schedule.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_schedule.S
index 8f1a981a..0a30ab36 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_schedule.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_schedule.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,24 +57,6 @@
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 04-02-2021 Scott Larson Modified comment(s), added */
-/* low power code, */
-/* resulting in version 6.1.6 */
-/* 06-02-2021 Scott Larson Added secure stack initialize */
-/* in SVC handler, */
-/* resulting in version 6.1.7 */
-/* 01-31-2022 Scott Larson Fixed predefined macro name, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
@@ -351,7 +334,7 @@ SVC_Handler:
CMP r1, #2 // Is it a secure stack free request?
BEQ _tx_svc_secure_free // Yes, go there
-
+
CMP r1, #3 // Is it a secure stack init request?
BEQ _tx_svc_secure_init // Yes, go there
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack.c b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack.c
index 79cd6de8..84b378ad 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack.c
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -98,21 +99,6 @@ static INT tx_head_free_index = 0U;
/* */
/* _tx_initialize_kernel_enter */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 10-16-2020 Scott Larson Modified comment(s), */
-/* resulting in version 6.1.1 */
-/* 06-02-2021 Scott Larson Change name, execute in */
-/* handler mode, */
-/* disable optimizations, */
-/* resulting in version 6.1.7 */
-/* 01-31-2022 Himanshu Gupta Modified comments(s), updated */
-/* secure stack allocation, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
__attribute__((cmse_nonsecure_entry, optimize(0)))
UINT _tx_thread_secure_mode_stack_initialize(void)
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_allocate.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_allocate.S
index cc09fc3f..f0464840 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_allocate.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_allocate.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,14 +56,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_size)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_free.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_free.S
index d52e7e23..b9bee09f 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_free.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_free.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,14 +54,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_secure_stack_free(TX_THREAD *thread_ptr)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_initialize.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_initialize.S
index 81d93f36..d885b375 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_initialize.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_secure_stack_initialize.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -53,18 +54,6 @@
/* */
/* TX_PORT_SPECIFIC_PRE_INITIALIZATION */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 07-29-2022 Scott Larson Modified comments and changed */
-/* secure stack initialization */
-/* macro to port-specific, */
-/* resulting in version 6.1.12 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_secure_stack_initialize(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_stack_build.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_stack_build.S
index c04fc40e..b8a5a3e7 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_stack_build.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_stack_build.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* _tx_thread_create Create thread service */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_system_return.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_system_return.S
index c136c1f4..1e84582e 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_system_return.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_thread_system_return.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,14 +57,6 @@
/* */
/* ThreadX components */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/tx_timer_interrupt.S b/ports_arch/ARMv8-M/threadx/gnu/src/tx_timer_interrupt.S
index d1680f47..5704e60c 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/tx_timer_interrupt.S
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/tx_timer_interrupt.S
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,14 +58,6 @@
/* */
/* interrupt vector */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-08-2023 Scott Larson Include tx_user.h, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_allocate.c b/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_allocate.c
index 36e954dd..85d2bea5 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_allocate.c
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_allocate.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -63,12 +64,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
UINT _txe_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_size)
{
@@ -76,10 +71,10 @@ UINT _txe_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_siz
return(TX_FEATURE_NOT_ENABLED);
#else
UINT status;
-
+
/* Default status to success. */
status = TX_SUCCESS;
-
+
/* Check for an invalid thread pointer. */
if (thread_ptr == TX_NULL)
{
@@ -93,7 +88,7 @@ UINT status;
/* Thread pointer is invalid, return appropriate error code. */
status = TX_THREAD_ERROR;
}
-
+
/* Check for interrupt call. */
if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0))
{
@@ -104,7 +99,7 @@ UINT status;
status = TX_CALLER_ERROR;
}
}
-
+
/* Determine if everything is okay. */
if (status == TX_SUCCESS)
{
diff --git a/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_free.c b/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_free.c
index f3a735fa..c465faab 100644
--- a/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_free.c
+++ b/ports_arch/ARMv8-M/threadx/gnu/src/txe_thread_secure_stack_free.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,12 +62,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
UINT _txe_thread_secure_stack_free(TX_THREAD *thread_ptr)
{
@@ -74,10 +69,10 @@ UINT _txe_thread_secure_stack_free(TX_THREAD *thread_ptr)
return(TX_FEATURE_NOT_ENABLED);
#else
UINT status;
-
+
/* Default status to success. */
status = TX_SUCCESS;
-
+
/* Check for an invalid thread pointer. */
if (thread_ptr == TX_NULL)
{
@@ -93,7 +88,7 @@ UINT status;
/* Thread pointer is invalid, return appropriate error code. */
status = TX_THREAD_ERROR;
}
-
+
/* Check for interrupt call. */
if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0))
{
@@ -104,7 +99,7 @@ UINT status;
status = TX_CALLER_ERROR;
}
}
-
+
/* Determine if everything is okay. */
if (status == TX_SUCCESS)
{
diff --git a/ports_arch/ARMv8-M/threadx/iar/readme_threadx.txt b/ports_arch/ARMv8-M/threadx/iar/readme_threadx.txt
index 122b41ef..e0f46665 100644
--- a/ports_arch/ARMv8-M/threadx/iar/readme_threadx.txt
+++ b/ports_arch/ARMv8-M/threadx/iar/readme_threadx.txt
@@ -1,4 +1,4 @@
- Microsoft's Azure RTOS ThreadX for Cortex-Mxx
+ Microsoft's Azure RTOS ThreadX for Cortex-Mxx
Using the IAR Tools
@@ -6,33 +6,33 @@
1. Building the ThreadX run-time Library
Import all ThreadX common and port-specific source files into an IAR project.
-Configure the project to build a library rather than an executable. This
-results in the ThreadX run-time library file tx.a, which is needed by
+Configure the project to build a library rather than an executable. This
+results in the ThreadX run-time library file tx.a, which is needed by
the application.
-Files tx_thread_stack_error_handler.c and tx_thread_stack_error_notify.c
-replace the common files of the same name.
+Files tx_thread_stack_error_handler.c and tx_thread_stack_error_notify.c
+replace the common files of the same name.
2. Demonstration System
No demonstration is provided because the IAR EWARM 8.50 simulator does
-not simulate the Cortex-Mxx correctly.
+not simulate the Cortex-Mxx correctly.
3. System Initialization
-The entry point in ThreadX for the Cortex-Mxx using IAR tools is at label
-__iar_program_start. This is defined within the IAR compiler's startup code.
-In addition, this is where all static and global preset C variable
+The entry point in ThreadX for the Cortex-Mxx using IAR tools is at label
+__iar_program_start. This is defined within the IAR compiler's startup code.
+In addition, this is where all static and global preset C variable
initialization processing takes place.
-The ThreadX tx_initialize_low_level.s file is responsible for setting up
-various system data structures, and a periodic timer interrupt source.
+The ThreadX tx_initialize_low_level.s file is responsible for setting up
+various system data structures, and a periodic timer interrupt source.
The _tx_initialize_low_level function inside of tx_initialize_low_level.s
-also determines the first available address for use by the application, which
-is supplied as the sole input parameter to your application definition function,
-tx_application_define. To accomplish this, a section is created in
-tx_initialize_low_level.s called FREE_MEM, which must be located after all
+also determines the first available address for use by the application, which
+is supplied as the sole input parameter to your application definition function,
+tx_application_define. To accomplish this, a section is created in
+tx_initialize_low_level.s called FREE_MEM, which must be located after all
other RAM sections in memory.
@@ -41,7 +41,7 @@ other RAM sections in memory.
The following defines the saved context stack frames for context switches
that occur as a result of interrupt handling or from thread-level API calls.
All suspended threads have the same stack frame in the Cortex-Mxx version of
-ThreadX. The top of the suspended thread's stack is pointed to by
+ThreadX. The top of the suspended thread's stack is pointed to by
tx_thread_stack_ptr in the associated thread control block TX_THREAD.
Non-FPU Stack Frame:
@@ -124,17 +124,17 @@ FPU Stack Frame (only interrupted thread with FPU enabled):
5. Improving Performance
-To make ThreadX and the application(s) run faster, you can enable
-all compiler optimizations.
+To make ThreadX and the application(s) run faster, you can enable
+all compiler optimizations.
-In addition, you can eliminate the ThreadX basic API error checking by
-compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
-defined.
+In addition, you can eliminate the ThreadX basic API error checking by
+compiling your application code with the symbol TX_DISABLE_ERROR_CHECKING
+defined.
6. Interrupt Handling
-The Cortex-Mxx vectors start at the label __vector_table and is typically defined in a
+The Cortex-Mxx vectors start at the label __vector_table and is typically defined in a
startup.s file (or similar). The application may modify the vector area according to its needs.
@@ -182,14 +182,14 @@ should have the following line added (if not already in place):
initialize by copy with packing = none { section __DLIB_PERTHREAD }; // Required in a multi-threaded application
-The project options "General Options -> Library Configuration" should also have the
+The project options "General Options -> Library Configuration" should also have the
"Enable thread support in library" box selected.
8. VFP Support
-ThreadX for Cortex-Mxx supports automatic ("lazy") VFP support, which means that applications threads
-can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
+ThreadX for Cortex-Mxx supports automatic ("lazy") VFP support, which means that applications threads
+can simply use the VFP and ThreadX automatically maintains the VFP registers as part of the thread
context.
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_iar.c b/ports_arch/ARMv8-M/threadx/iar/src/tx_iar.c
index ee47f10f..238b485e 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_iar.c
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_iar.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -37,31 +38,31 @@
#include "tx_mutex.h"
-/* This implementation requires that the following macros are defined in the
+/* This implementation requires that the following macros are defined in the
tx_port.h file and <yvals.h> is included with the following code segments:
-
+
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
#include <yvals.h>
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
+#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
#else
-#define TX_THREAD_EXTENSION_2
+#define TX_THREAD_EXTENSION_2
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
#define TX_THREAD_DELETE_EXTENSION(thread_ptr) __iar_dlib_perthread_deallocate(thread_ptr -> tx_thread_iar_tls_pointer); \
- thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL;
+ thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL;
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION __iar_dlib_perthread_access(0);
#else
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
-#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
+#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
#endif
- This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
- application.
+ This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
+ application.
Finally, the project options General Options -> Library Configuration should have the "Enable thread support in library" box selected.
*/
@@ -90,7 +91,7 @@ void _DLIB_TLS_MEMORY *__iar_dlib_perthread_access(void _DLIB_TLS_MEMORY *symbp)
{
char _DLIB_TLS_MEMORY *p = 0;
-
+
/* Is there a current thread? */
if (_tx_thread_current_ptr)
p = (char _DLIB_TLS_MEMORY *) _tx_thread_current_ptr -> tx_thread_iar_tls_pointer;
@@ -117,19 +118,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_system_lock_mutexes[__tx_iar_system_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_system_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_system_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -138,35 +139,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_system_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR System Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_system_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -185,25 +186,25 @@ void __iar_system_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -215,25 +216,25 @@ void __iar_system_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -267,19 +268,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_file_lock_mutexes[__tx_iar_file_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_file_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_file_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -288,35 +289,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_file_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR File Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_file_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -335,25 +336,25 @@ void __iar_file_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -365,25 +366,25 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -404,17 +405,17 @@ UINT status;
#include "tx_thread.h"
#include "tx_mutex.h"
-/* This implementation requires that the following macros are defined in the
+/* This implementation requires that the following macros are defined in the
tx_port.h file and <yvals.h> is included with the following code segments:
-
+
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
#include <yvals.h>
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
-#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
+#define TX_THREAD_EXTENSION_2 VOID *tx_thread_iar_tls_pointer;
#else
-#define TX_THREAD_EXTENSION_2
+#define TX_THREAD_EXTENSION_2
#endif
#ifdef TX_ENABLE_IAR_LIBRARY_SUPPORT
@@ -422,17 +423,17 @@ void *_tx_iar_create_per_thread_tls_area(void);
void _tx_iar_destroy_per_thread_tls_area(void *tls_ptr);
void __iar_Initlocks(void);
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr) thread_ptr -> tx_thread_iar_tls_pointer = __iar_dlib_perthread_allocate();
#define TX_THREAD_DELETE_EXTENSION(thread_ptr) do {__iar_dlib_perthread_deallocate(thread_ptr -> tx_thread_iar_tls_pointer); \
thread_ptr -> tx_thread_iar_tls_pointer = TX_NULL; } while(0);
#define TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION do {__iar_Initlocks();} while(0);
#else
-#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
-#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
+#define TX_THREAD_CREATE_EXTENSION(thread_ptr)
+#define TX_THREAD_DELETE_EXTENSION(thread_ptr)
#endif
- This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
- application.
+ This should be done automatically if TX_ENABLE_IAR_LIBRARY_SUPPORT is defined while building the ThreadX library and the
+ application.
Finally, the project options General Options -> Library Configuration should have the "Enable thread support in library" box selected.
*/
@@ -456,7 +457,7 @@ void * __aeabi_read_tp(void)
TX_THREAD *thread_ptr = _tx_thread_current_ptr;
if (thread_ptr)
{
- p = thread_ptr->tx_thread_iar_tls_pointer;
+ p = thread_ptr->tx_thread_iar_tls_pointer;
}
else
{
@@ -469,9 +470,9 @@ void * __aeabi_read_tp(void)
void* _tx_iar_create_per_thread_tls_area()
{
- UINT tls_size = __iar_tls_size();
-
- /* Get memory for TLS. */
+ UINT tls_size = __iar_tls_size();
+
+ /* Get memory for TLS. */
void *p = malloc(tls_size);
/* Initialize TLS-area and run constructors for objects in TLS */
@@ -483,7 +484,7 @@ void _tx_iar_destroy_per_thread_tls_area(void *tls_ptr)
{
/* Destroy objects living in TLS */
__call_thread_dtors();
- free(tls_ptr);
+ free(tls_ptr);
}
#ifndef _MAX_LOCK
@@ -517,19 +518,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_system_lock_mutexes[__tx_iar_system_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_system_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_system_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -538,35 +539,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_system_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR System Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_system_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -582,28 +583,28 @@ void __iar_system_Mtxdst(__iar_Rmtx *m)
void __iar_system_Mtxlock(__iar_Rmtx *m)
{
if (*m)
- {
+ {
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -616,25 +617,25 @@ void __iar_system_Mtxunlock(__iar_Rmtx *m)
{
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_system_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_system_lock_isr_caller++;
}
@@ -675,19 +676,19 @@ TX_MUTEX *mutex_ptr;
/* Setup a pointer to the start of the next free mutex. */
mutex_ptr = &__tx_iar_file_lock_mutexes[__tx_iar_file_lock_next_free_mutex++];
-
+
/* Check for wrap-around on the next free mutex. */
if (__tx_iar_file_lock_next_free_mutex >= _MAX_LOCK)
{
-
+
/* Yes, set the free index back to 0. */
__tx_iar_file_lock_next_free_mutex = 0;
}
-
+
/* Is this mutex free? */
if (mutex_ptr -> tx_mutex_id != TX_MUTEX_ID)
{
-
+
/* Yes, this mutex is free, get out of the loop! */
break;
}
@@ -696,35 +697,35 @@ TX_MUTEX *mutex_ptr;
/* Determine if a free mutex was found. */
if (i >= _MAX_LOCK)
{
-
+
/* Error! No more free mutexes! */
-
+
/* Increment the no mutexes error counter. */
__tx_iar_file_lock_no_mutexes++;
-
+
/* Set return pointer to NULL. */
*m = TX_NULL;
-
+
/* Return. */
return;
}
-
+
/* Now create the ThreadX mutex for the IAR library. */
status = _tx_mutex_create(mutex_ptr, "IAR File Library Lock", TX_NO_INHERIT);
-
+
/* Determine if the creation was successful. */
if (status == TX_SUCCESS)
{
-
+
/* Yes, successful creation, return mutex pointer. */
*m = (VOID *) mutex_ptr;
}
else
{
-
+
/* Increment the internal error counter. */
__tx_iar_file_lock_internal_errors++;
-
+
/* Return a NULL pointer to indicate an error. */
*m = TX_NULL;
}
@@ -743,25 +744,25 @@ void __iar_file_Mtxlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex locks are only available from initialization and
+ /* Determine the caller's context. Mutex locks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Get the mutex. */
status = _tx_mutex_get((TX_MUTEX *) *m, TX_WAIT_FOREVER);
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
@@ -773,25 +774,25 @@ void __iar_file_Mtxunlock(__iar_Rmtx *m)
UINT status;
- /* Determine the caller's context. Mutex unlocks are only available from initialization and
+ /* Determine the caller's context. Mutex unlocks are only available from initialization and
threads. */
if ((_tx_thread_system_state == 0) || (_tx_thread_system_state >= TX_INITIALIZE_IN_PROGRESS))
{
-
+
/* Release the mutex. */
status = _tx_mutex_put((TX_MUTEX *) *m);
-
+
/* Check the status of the mutex release. */
if (status)
{
-
+
/* Internal error, increment the counter. */
__tx_iar_file_lock_internal_errors++;
}
}
else
{
-
+
/* Increment the ISR caller error. */
__tx_iar_file_lock_isr_caller++;
}
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_initialize_low_level.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_initialize_low_level.s
index 97418669..6d8e07e8 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_initialize_low_level.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_initialize_low_level.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -74,13 +75,6 @@ __tx_free_memory_start
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_initialize_low_level(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_misra.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_misra.s
index f86d9a65..642bb89e 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_misra.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_misra.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -120,7 +121,7 @@
SECTION `.data`:DATA:REORDER:NOROOT(2)
DATA
-// 51 CHAR _tx_version_id[100] = "Copyright (c) 2024 Microsoft Corporation. * ThreadX 6.1 MISRA C Compliant *";
+// 51 CHAR _tx_version_id[100] = "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX 6.1 MISRA C Compliant *";
_tx_version_id:
DC8 43H, 6FH, 70H, 79H, 72H, 69H, 67H, 68H
DC8 74H, 20H, 28H, 63H, 29H, 20H, 31H, 39H
@@ -707,7 +708,7 @@ _tx_misra_control_get:
MRS R0, CONTROL
BX LR // return
-
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -722,7 +723,7 @@ _tx_misra_control_set:
MSR CONTROL, R0
BX LR // return
-
+
#ifdef __ARMVFP__
/***********************************************************************************************/
@@ -739,8 +740,8 @@ _tx_misra_fpccr_get:
LDR r0, =0xE000EF34 // Build FPCCR address
LDR r0, [r0] // Load FPCCR value
BX LR // return
-
-
+
+
/***********************************************************************************************/
/***********************************************************************************************/
/** */
@@ -754,10 +755,10 @@ _tx_misra_fpccr_get:
_tx_misra_vfp_touch:
vmov.f32 s0, s0
BX LR // return
-
+
#endif
-
-
+
+
SECTION `.iar_vfe_header`:DATA:NOALLOC:NOROOT(2)
SECTION_TYPE SHT_PROGBITS, 0
DATA
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_restore.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_restore.s
index 87db9651..c8bf3f79 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_restore.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,13 +56,6 @@
/* CALLED BY */
/* */
/* ISRs Interrupt Service Routines */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_restore(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_save.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_save.s
index 280162dc..f8713910 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_save.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_context_save.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,13 +56,6 @@
/* CALLED BY */
/* */
/* ISRs */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_context_save(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_control.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_control.s
index 6f317b88..564a9be8 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_control.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_control.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,13 +56,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_control(UINT new_posture)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_disable.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_disable.s
index eaa983cb..0a2d54c8 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_disable.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_disable.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,13 +56,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_interrupt_disable(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_restore.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_restore.s
index c22ee789..4743bd46 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_restore.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_interrupt_restore.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -55,13 +56,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_interrupt_restore(UINT previous_posture)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_schedule.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_schedule.s
index 5d5bb48d..84f2043f 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_schedule.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_schedule.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -73,23 +74,6 @@
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* _tx_thread_system_return Return to system from thread */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 04-02-2021 Scott Larson Modified comment(s), added */
-/* low power code, */
-/* resulting in version 6.1.6 */
-/* 06-02-2021 Scott Larson Added secure stack initialize */
-/* in SVC handler, */
-/* resulting in version 6.1.7 */
-/* 04-25-2022 Scott Larson Added BASEPRI support, */
-/* resulting in version 6.1.11 */
-/* 03-08-2023 Scott Larson Added preproc FPU option, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_schedule(VOID)
// {
@@ -348,7 +332,7 @@ SVC_Handler:
CMP r1, #2 // Is it a secure stack free request?
BEQ _tx_svc_secure_free // Yes, go there
-
+
CMP r1, #3 // Is it a secure stack init request?
BEQ _tx_svc_secure_init // Yes, go there
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack.c b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack.c
index 5d8e0865..123f786f 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack.c
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -102,20 +103,6 @@ static INT tx_head_free_index = 0U;
/* */
/* _tx_initialize_kernel_enter */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 10-16-2020 Scott Larson Modified comment(s), */
-/* resulting in version 6.1.1 */
-/* 06-02-2021 Scott Larson Change name, execute in */
-/* handler mode, */
-/* resulting in version 6.1.7 */
-/* 01-31-2022 Himanshu Gupta Modified comments(s), updated */
-/* secure stack allocation, */
-/* resulting in version 6.1.10 */
-/* */
/**************************************************************************/
__attribute__((cmse_nonsecure_entry))
UINT _tx_thread_secure_mode_stack_initialize(void)
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_allocate.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_allocate.s
index fdbdf547..171b129e 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_allocate.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_allocate.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -56,13 +57,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_size)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_free.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_free.s
index fb60d9e1..cbffd110 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_free.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_free.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,13 +55,6 @@
/* CALLED BY */
/* */
/* Application Code */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// UINT _tx_thread_secure_stack_free(TX_THREAD *thread_ptr)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_initialize.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_initialize.s
index e0952405..71ba7472 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_initialize.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_secure_stack_initialize.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -54,17 +55,6 @@
/* CALLED BY */
/* */
/* TX_PORT_SPECIFIC_PRE_INITIALIZATION */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 06-02-2021 Scott Larson Initial Version 6.1.7 */
-/* 07-29-2022 Scott Larson Modified comments and changed */
-/* secure stack initialization */
-/* macro to port-specific, */
-/* resulting in version 6.1.12 */
-/* */
/**************************************************************************/
// VOID _tx_thread_secure_stack_initialize(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_stack_build.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_stack_build.s
index 9aee56ce..a8fab2ca 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_stack_build.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_stack_build.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,13 +58,6 @@
/* CALLED BY */
/* */
/* _tx_thread_create Create thread service */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_system_return.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_system_return.s
index 50006b3e..f2a187ea 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_system_return.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_thread_system_return.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -57,13 +58,6 @@
/* CALLED BY */
/* */
/* ThreadX components */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_thread_system_return(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/tx_timer_interrupt.s b/ports_arch/ARMv8-M/threadx/iar/src/tx_timer_interrupt.s
index 971d74b1..25f7f33f 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/tx_timer_interrupt.s
+++ b/ports_arch/ARMv8-M/threadx/iar/src/tx_timer_interrupt.s
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -71,13 +72,6 @@
/* CALLED BY */
/* */
/* interrupt vector */
-/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
// VOID _tx_timer_interrupt(VOID)
// {
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_allocate.c b/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_allocate.c
index 36e954dd..85d2bea5 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_allocate.c
+++ b/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_allocate.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -63,12 +64,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
UINT _txe_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_size)
{
@@ -76,10 +71,10 @@ UINT _txe_thread_secure_stack_allocate(TX_THREAD *thread_ptr, ULONG stack_siz
return(TX_FEATURE_NOT_ENABLED);
#else
UINT status;
-
+
/* Default status to success. */
status = TX_SUCCESS;
-
+
/* Check for an invalid thread pointer. */
if (thread_ptr == TX_NULL)
{
@@ -93,7 +88,7 @@ UINT status;
/* Thread pointer is invalid, return appropriate error code. */
status = TX_THREAD_ERROR;
}
-
+
/* Check for interrupt call. */
if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0))
{
@@ -104,7 +99,7 @@ UINT status;
status = TX_CALLER_ERROR;
}
}
-
+
/* Determine if everything is okay. */
if (status == TX_SUCCESS)
{
diff --git a/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_free.c b/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_free.c
index f3a735fa..c465faab 100644
--- a/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_free.c
+++ b/ports_arch/ARMv8-M/threadx/iar/src/txe_thread_secure_stack_free.c
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -61,12 +62,6 @@
/* */
/* Application Code */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
UINT _txe_thread_secure_stack_free(TX_THREAD *thread_ptr)
{
@@ -74,10 +69,10 @@ UINT _txe_thread_secure_stack_free(TX_THREAD *thread_ptr)
return(TX_FEATURE_NOT_ENABLED);
#else
UINT status;
-
+
/* Default status to success. */
status = TX_SUCCESS;
-
+
/* Check for an invalid thread pointer. */
if (thread_ptr == TX_NULL)
{
@@ -93,7 +88,7 @@ UINT status;
/* Thread pointer is invalid, return appropriate error code. */
status = TX_THREAD_ERROR;
}
-
+
/* Check for interrupt call. */
if (TX_THREAD_GET_SYSTEM_STATE() != ((ULONG) 0))
{
@@ -104,7 +99,7 @@ UINT status;
status = TX_CALLER_ERROR;
}
}
-
+
/* Determine if everything is okay. */
if (status == TX_SUCCESS)
{
diff --git a/ports_arch/ARMv8-M/threadx/inc/tx_port.h b/ports_arch/ARMv8-M/threadx/inc/tx_port.h
index 58afa4e6..f0e7b79c 100644
--- a/ports_arch/ARMv8-M/threadx/inc/tx_port.h
+++ b/ports_arch/ARMv8-M/threadx/inc/tx_port.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -45,39 +46,6 @@
/* This file replaces the previous Cortex-Mxx files. It unifies */
/* the Cortex-Mxx compilers into one common file. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* 03-02-2021 Scott Larson Modified comment(s), added */
-/* ULONG64_DEFINED, */
-/* resulting in version 6.1.5 */
-/* 06-02-2021 Scott Larson Modified comment(s), removed */
-/* unneeded header file, funcs */
-/* set_control and get_control */
-/* changed to inline, */
-/* added symbol to enable */
-/* stack error handler, */
-/* resulting in version 6.1.7 */
-/* 10-15-2021 Scott Larson Modified comment(s), improved */
-/* stack check error handling, */
-/* resulting in version 6.1.9 */
-/* 01-31-2022 Scott Larson Modified comment(s), unified */
-/* this file across compilers, */
-/* fixed predefined macro, */
-/* resulting in version 6.1.10 */
-/* 04-25-2022 Scott Larson Modified comments and added */
-/* volatile to registers, */
-/* resulting in version 6.1.11 */
-/* 07-29-2022 Scott Larson Modified comments and changed */
-/* secure stack initialization */
-/* macro to port-specific, */
-/* described BASEPRI usage, */
-/* resulting in version 6.1.12 */
-/* 03-08-2023 Scott Larson Removed unneeded #include, */
-/* resulting in version 6.2.1 */
-/* */
/**************************************************************************/
#ifndef TX_PORT_H
@@ -645,7 +613,7 @@ VOID _tx_thread_interrupt_restore(UIN
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
- "Copyright (c) 2024 Microsoft Corporation. * ThreadX Cortex-Mxx Version 6.4.2 *";
+ "(c) 2024 Microsoft Corp. (c) 2026-present Eclipse ThreadX contributors. * ThreadX Cortex-Mxx Version 6.5.0.202601 *";
#else
#ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100];
diff --git a/ports_arch/ARMv8-M/threadx/inc/tx_secure_interface.h b/ports_arch/ARMv8-M/threadx/inc/tx_secure_interface.h
index 39b5d5fd..5ac37fbf 100644
--- a/ports_arch/ARMv8-M/threadx/inc/tx_secure_interface.h
+++ b/ports_arch/ARMv8-M/threadx/inc/tx_secure_interface.h
@@ -1,10 +1,11 @@
/***************************************************************************
- * Copyright (c) 2024 Microsoft Corporation
- *
+ * Copyright (c) 2024 Microsoft Corporation
+ * Copyright (c) 2026-present Eclipse ThreadX contributors
+ *
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
- *
+ *
* SPDX-License-Identifier: MIT
**************************************************************************/
@@ -37,12 +38,6 @@
/* It is assumed that tx_api.h and tx_port.h have already been */
/* included. */
/* */
-/* RELEASE HISTORY */
-/* */
-/* DATE NAME DESCRIPTION */
-/* */
-/* 09-30-2020 Scott Larson Initial Version 6.1 */
-/* */
/**************************************************************************/
#ifndef TX_SECURE_INTERFACE_H