Compare commits
13 Commits
v6.1.1_rel
...
v6.1.6_rel
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b12bd44faa | ||
|
|
6ffaf848a0 | ||
|
|
c8ed70019e | ||
|
|
10a7932b9d | ||
|
|
32e3b3b25f | ||
|
|
f108ebdbaf | ||
|
|
b0e9b132b5 | ||
|
|
848e7d8169 | ||
|
|
69287b8bb4 | ||
|
|
1777796996 | ||
|
|
64b4d510ba | ||
|
|
609c75a2e5 | ||
|
|
9b050d00ed |
6
.github/workflows/ci_cortex_m0.yml
vendored
6
.github/workflows/ci_cortex_m0.yml
vendored
@@ -43,12 +43,12 @@ jobs:
|
|||||||
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
||||||
|
|
||||||
# Get CMake into the environment
|
# Get CMake into the environment
|
||||||
- name: Install cmake 3.17.1
|
- name: Install cmake 3.19.1
|
||||||
uses: lukka/get-cmake@v3.17.1
|
uses: lukka/get-cmake@v3.19.1
|
||||||
|
|
||||||
# Get Ninja into the environment
|
# Get Ninja into the environment
|
||||||
- name: Install ninja-build
|
- name: Install ninja-build
|
||||||
uses: seanmiddleditch/gha-setup-ninja@v1
|
uses: seanmiddleditch/gha-setup-ninja@v3
|
||||||
|
|
||||||
# Prepare the build system
|
# Prepare the build system
|
||||||
- name: Prepare build system
|
- name: Prepare build system
|
||||||
|
|||||||
6
.github/workflows/ci_cortex_m3.yml
vendored
6
.github/workflows/ci_cortex_m3.yml
vendored
@@ -43,12 +43,12 @@ jobs:
|
|||||||
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
||||||
|
|
||||||
# Get CMake into the environment
|
# Get CMake into the environment
|
||||||
- name: Install cmake 3.17.1
|
- name: Install cmake 3.19.1
|
||||||
uses: lukka/get-cmake@v3.17.1
|
uses: lukka/get-cmake@v3.19.1
|
||||||
|
|
||||||
# Get Ninja into the environment
|
# Get Ninja into the environment
|
||||||
- name: Install ninja-build
|
- name: Install ninja-build
|
||||||
uses: seanmiddleditch/gha-setup-ninja@v1
|
uses: seanmiddleditch/gha-setup-ninja@v3
|
||||||
|
|
||||||
# Prepare the build system
|
# Prepare the build system
|
||||||
- name: Prepare build system
|
- name: Prepare build system
|
||||||
|
|||||||
6
.github/workflows/ci_cortex_m4.yml
vendored
6
.github/workflows/ci_cortex_m4.yml
vendored
@@ -43,12 +43,12 @@ jobs:
|
|||||||
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
||||||
|
|
||||||
# Get CMake into the environment
|
# Get CMake into the environment
|
||||||
- name: Install cmake 3.17.1
|
- name: Install cmake 3.19.1
|
||||||
uses: lukka/get-cmake@v3.17.1
|
uses: lukka/get-cmake@v3.19.1
|
||||||
|
|
||||||
# Get Ninja into the environment
|
# Get Ninja into the environment
|
||||||
- name: Install ninja-build
|
- name: Install ninja-build
|
||||||
uses: seanmiddleditch/gha-setup-ninja@v1
|
uses: seanmiddleditch/gha-setup-ninja@v3
|
||||||
|
|
||||||
# Prepare the build system
|
# Prepare the build system
|
||||||
- name: Prepare build system
|
- name: Prepare build system
|
||||||
|
|||||||
6
.github/workflows/ci_cortex_m7.yml
vendored
6
.github/workflows/ci_cortex_m7.yml
vendored
@@ -43,12 +43,12 @@ jobs:
|
|||||||
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
||||||
|
|
||||||
# Get CMake into the environment
|
# Get CMake into the environment
|
||||||
- name: Install cmake 3.17.1
|
- name: Install cmake 3.19.1
|
||||||
uses: lukka/get-cmake@v3.17.1
|
uses: lukka/get-cmake@v3.19.1
|
||||||
|
|
||||||
# Get Ninja into the environment
|
# Get Ninja into the environment
|
||||||
- name: Install ninja-build
|
- name: Install ninja-build
|
||||||
uses: seanmiddleditch/gha-setup-ninja@v1
|
uses: seanmiddleditch/gha-setup-ninja@v3
|
||||||
|
|
||||||
# Prepare the build system
|
# Prepare the build system
|
||||||
- name: Prepare build system
|
- name: Prepare build system
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
LICENSED HARDWARE LIST
|
LICENSED HARDWARE LIST
|
||||||
|
|
||||||
Last Updated: 2020-10-15
|
Last Updated: 2021-04-01
|
||||||
|
|
||||||
Microsoft has entered into OEM Agreements with manufacturers of the following
|
Microsoft has entered into OEM Agreements with manufacturers of the following
|
||||||
microprocessors and microcontrollers (the “hardware”) to enable those
|
microprocessors and microcontrollers (the “hardware”) to enable those
|
||||||
@@ -11,6 +11,16 @@ Production Use” rights in Section 2 of the Microsoft Software License Terms fo
|
|||||||
Microsoft Azure RTOS. If hardware is not listed below, you do not have those
|
Microsoft Azure RTOS. If hardware is not listed below, you do not have those
|
||||||
rights.
|
rights.
|
||||||
|
|
||||||
|
|
||||||
|
STMicroelectronics:
|
||||||
|
|
||||||
|
STM32 MCUs
|
||||||
|
STM32 MPUs
|
||||||
|
|
||||||
|
MediaTek:
|
||||||
|
|
||||||
|
MT3620 MCU (Azure Sphere)
|
||||||
|
|
||||||
Microchip:
|
Microchip:
|
||||||
|
|
||||||
PIC 32-bit MCUs
|
PIC 32-bit MCUs
|
||||||
@@ -18,7 +28,10 @@ Microchip:
|
|||||||
SAM 32-bit MPUs
|
SAM 32-bit MPUs
|
||||||
|
|
||||||
NXP:
|
NXP:
|
||||||
i.MX RT105x/6x cross over MCUs
|
|
||||||
|
i.MX RT10xx and RT116x/7x series crossover MCUs
|
||||||
|
LPC5500 series
|
||||||
|
|
||||||
|
|
||||||
Renesas:
|
Renesas:
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ $ git clone https://github.com/azure-rtos/threadx.git
|
|||||||
|
|
||||||
## Building as a static library
|
## Building as a static library
|
||||||
|
|
||||||
Each component of Azure RTOS comes with a composible CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake command `add_subdirectory()`.
|
Each component of Azure RTOS comes with a composable CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake command `add_subdirectory()`.
|
||||||
|
|
||||||
While the typical usage pattern is to include threadx into your device code source tree to be built & linked with your code, you can compile this project as a standalone static library to confirm your build is set up correctly.
|
While the typical usage pattern is to include threadx into your device code source tree to be built & linked with your code, you can compile this project as a standalone static library to confirm your build is set up correctly.
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ The following are references to additional Azure RTOS and Azure IoT in general:
|
|||||||
| | |
|
| | |
|
||||||
|---|---|
|
|---|---|
|
||||||
| TraceX Installer | https://aka.ms/azrtos-tracex-installer |
|
| TraceX Installer | https://aka.ms/azrtos-tracex-installer |
|
||||||
| Azure RTOS Documenation and Guides: | https://docs.microsoft.com/azure/rtos |
|
| Azure RTOS Documentation and Guides: | https://docs.microsoft.com/azure/rtos |
|
||||||
| Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
|
| Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
|
||||||
| Azure RTOS Sales Questions: | https://azure-rtos.ms-iot-contact.com/ |
|
| Azure RTOS Sales Questions: | https://azure-rtos.ms-iot-contact.com/ |
|
||||||
| For technical questions check out Microsoft Q/A for Azure IoT: | https://aka.ms/QnA/azure-rtos |
|
| For technical questions check out Microsoft Q/A for Azure IoT: | https://aka.ms/QnA/azure-rtos |
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_api.h PORTABLE C */
|
/* tx_api.h PORTABLE C */
|
||||||
/* 6.1.1 */
|
/* 6.1.6 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -43,17 +43,32 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||||
/* 09-30-2020 William E. Lamie Modified comment(s), and */
|
/* 09-30-2020 William E. Lamie Modified comment(s), and */
|
||||||
/* updated product constants, */
|
/* updated product constants, */
|
||||||
/* added new thread execution */
|
/* added new thread execution */
|
||||||
/* state TX_PRIORITY_CHANGE, */
|
/* state TX_PRIORITY_CHANGE, */
|
||||||
/* added macros for casting */
|
/* added macros for casting */
|
||||||
/* pointers to ALIGN_TYPE, */
|
/* pointers to ALIGN_TYPE, */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
/* 10-16-2020 William E. Lamie Modified comment(s), and */
|
/* 10-16-2020 William E. Lamie Modified comment(s), and */
|
||||||
/* increased patch version, */
|
/* increased patch version, */
|
||||||
/* resulting in version 6.1.1 */
|
/* resulting in version 6.1.1 */
|
||||||
|
/* 11-09-2020 Yuxin Zhou Modified comment(s), and */
|
||||||
|
/* moved TX_THREAD_GET_SYSTEM_ */
|
||||||
|
/* STATE to tx_api.h, */
|
||||||
|
/* resulting in version 6.1.2 */
|
||||||
|
/* 12-31-2020 William E. Lamie Modified comment(s), and */
|
||||||
|
/* increased patch version, */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
|
/* 03-02-2021 Scott Larson Modified comment(s), and */
|
||||||
|
/* order defines numerically, */
|
||||||
|
/* add option to remove FileX */
|
||||||
|
/* pointer, */
|
||||||
|
/* resulting in version 6.1.5 */
|
||||||
|
/* 04-02-2021 Scott Larson Modified comment(s), and */
|
||||||
|
/* update patch number, */
|
||||||
|
/* resulting in version 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -86,7 +101,7 @@ extern "C" {
|
|||||||
#define AZURE_RTOS_THREADX
|
#define AZURE_RTOS_THREADX
|
||||||
#define THREADX_MAJOR_VERSION 6
|
#define THREADX_MAJOR_VERSION 6
|
||||||
#define THREADX_MINOR_VERSION 1
|
#define THREADX_MINOR_VERSION 1
|
||||||
#define THREADX_PATCH_VERSION 1
|
#define THREADX_PATCH_VERSION 6
|
||||||
|
|
||||||
/* Define the following symbol for backward compatibility */
|
/* Define the following symbol for backward compatibility */
|
||||||
#define EL_PRODUCT_THREADX
|
#define EL_PRODUCT_THREADX
|
||||||
@@ -147,7 +162,6 @@ extern "C" {
|
|||||||
|
|
||||||
#define TX_SUCCESS ((UINT) 0x00)
|
#define TX_SUCCESS ((UINT) 0x00)
|
||||||
#define TX_DELETED ((UINT) 0x01)
|
#define TX_DELETED ((UINT) 0x01)
|
||||||
#define TX_NO_MEMORY ((UINT) 0x10)
|
|
||||||
#define TX_POOL_ERROR ((UINT) 0x02)
|
#define TX_POOL_ERROR ((UINT) 0x02)
|
||||||
#define TX_PTR_ERROR ((UINT) 0x03)
|
#define TX_PTR_ERROR ((UINT) 0x03)
|
||||||
#define TX_WAIT_ERROR ((UINT) 0x04)
|
#define TX_WAIT_ERROR ((UINT) 0x04)
|
||||||
@@ -162,6 +176,7 @@ extern "C" {
|
|||||||
#define TX_NO_INSTANCE ((UINT) 0x0D)
|
#define TX_NO_INSTANCE ((UINT) 0x0D)
|
||||||
#define TX_THREAD_ERROR ((UINT) 0x0E)
|
#define TX_THREAD_ERROR ((UINT) 0x0E)
|
||||||
#define TX_PRIORITY_ERROR ((UINT) 0x0F)
|
#define TX_PRIORITY_ERROR ((UINT) 0x0F)
|
||||||
|
#define TX_NO_MEMORY ((UINT) 0x10)
|
||||||
#define TX_START_ERROR ((UINT) 0x10)
|
#define TX_START_ERROR ((UINT) 0x10)
|
||||||
#define TX_DELETE_ERROR ((UINT) 0x11)
|
#define TX_DELETE_ERROR ((UINT) 0x11)
|
||||||
#define TX_RESUME_ERROR ((UINT) 0x12)
|
#define TX_RESUME_ERROR ((UINT) 0x12)
|
||||||
@@ -415,7 +430,9 @@ typedef struct TX_THREAD_STRUCT
|
|||||||
TX_THREAD_EXTENSION_2
|
TX_THREAD_EXTENSION_2
|
||||||
|
|
||||||
/* Define a pointer type for FileX extensions. */
|
/* Define a pointer type for FileX extensions. */
|
||||||
|
#ifndef TX_NO_FILEX_POINTER
|
||||||
VOID *tx_thread_filex_ptr;
|
VOID *tx_thread_filex_ptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define the priority inheritance variables. These will be used
|
/* Define the priority inheritance variables. These will be used
|
||||||
to manage priority inheritance changes applied to this thread
|
to manage priority inheritance changes applied to this thread
|
||||||
@@ -1085,7 +1102,6 @@ UINT _tx_trace_interrupt_control(UINT new_posture);
|
|||||||
|
|
||||||
#ifdef TX_ENABLE_MULTI_ERROR_CHECKING
|
#ifdef TX_ENABLE_MULTI_ERROR_CHECKING
|
||||||
|
|
||||||
|
|
||||||
/* Services with MULTI runtime error checking ThreadX. */
|
/* Services with MULTI runtime error checking ThreadX. */
|
||||||
|
|
||||||
#define tx_block_allocate _txr_block_allocate
|
#define tx_block_allocate _txr_block_allocate
|
||||||
@@ -1783,7 +1799,6 @@ VOID _tx_misra_user_timer_pointer_get(TX_TIMER_INTERNAL *inte
|
|||||||
VOID _tx_misra_thread_stack_check(TX_THREAD *thread_ptr, VOID **highest_stack);
|
VOID _tx_misra_thread_stack_check(TX_THREAD *thread_ptr, VOID **highest_stack);
|
||||||
VOID _tx_misra_trace_event_insert(ULONG event_id, VOID *info_field_1, ULONG info_field_2, ULONG info_field_3, ULONG info_field_4, ULONG filter, ULONG time_stamp);
|
VOID _tx_misra_trace_event_insert(ULONG event_id, VOID *info_field_1, ULONG info_field_2, ULONG info_field_3, ULONG info_field_4, ULONG filter, ULONG time_stamp);
|
||||||
UINT _tx_misra_always_true(void);
|
UINT _tx_misra_always_true(void);
|
||||||
|
|
||||||
UCHAR **_tx_misra_indirect_void_to_uchar_pointer_convert(VOID **pointer);
|
UCHAR **_tx_misra_indirect_void_to_uchar_pointer_convert(VOID **pointer);
|
||||||
UCHAR **_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR *pointer);
|
UCHAR **_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR *pointer);
|
||||||
UCHAR *_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL *pool);
|
UCHAR *_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL *pool);
|
||||||
@@ -1816,7 +1831,6 @@ VOID _tx_misra_semaphore_put_notify_not_used(VOID (*semaphore
|
|||||||
VOID _tx_misra_thread_not_used(TX_THREAD *thread_ptr);
|
VOID _tx_misra_thread_not_used(TX_THREAD *thread_ptr);
|
||||||
VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT id));
|
VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT id));
|
||||||
|
|
||||||
|
|
||||||
#define TX_MEMSET(a,b,c) _tx_misra_memset((a), (UINT) (b), (UINT) (c))
|
#define TX_MEMSET(a,b,c) _tx_misra_memset((a), (UINT) (b), (UINT) (c))
|
||||||
#define TX_UCHAR_POINTER_ADD(a,b) _tx_misra_uchar_pointer_add((UCHAR *) (a), (ULONG) (b))
|
#define TX_UCHAR_POINTER_ADD(a,b) _tx_misra_uchar_pointer_add((UCHAR *) (a), (ULONG) (b))
|
||||||
#define TX_UCHAR_POINTER_SUB(a,b) _tx_misra_uchar_pointer_sub((UCHAR *) (a), (ULONG) (b))
|
#define TX_UCHAR_POINTER_SUB(a,b) _tx_misra_uchar_pointer_sub((UCHAR *) (a), (ULONG) (b))
|
||||||
@@ -1835,8 +1849,6 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
|
|||||||
#define TX_TRACE_IN_LINE_INSERT(i,a,b,c,d,e) _tx_misra_trace_event_insert((ULONG) (i), (VOID *) (a), (ULONG) (b), (ULONG) (c), (ULONG) (d), (ULONG) (e), ((ULONG) TX_TRACE_TIME_SOURCE));
|
#define TX_TRACE_IN_LINE_INSERT(i,a,b,c,d,e) _tx_misra_trace_event_insert((ULONG) (i), (VOID *) (a), (ULONG) (b), (ULONG) (c), (ULONG) (d), (ULONG) (e), ((ULONG) TX_TRACE_TIME_SOURCE));
|
||||||
#endif
|
#endif
|
||||||
#define TX_LOOP_FOREVER (_tx_misra_always_true() == TX_TRUE)
|
#define TX_LOOP_FOREVER (_tx_misra_always_true() == TX_TRUE)
|
||||||
|
|
||||||
|
|
||||||
#define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_indirect_void_to_uchar_pointer_convert((a))
|
#define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_indirect_void_to_uchar_pointer_convert((a))
|
||||||
#define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) _tx_misra_uchar_to_indirect_uchar_pointer_convert((a))
|
#define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) _tx_misra_uchar_to_indirect_uchar_pointer_convert((a))
|
||||||
#define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_block_pool_to_uchar_pointer_convert((a))
|
#define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_block_pool_to_uchar_pointer_convert((a))
|
||||||
@@ -1872,7 +1884,6 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
|
|||||||
#define TX_THREAD_NOT_USED(a) _tx_misra_thread_not_used((a))
|
#define TX_THREAD_NOT_USED(a) _tx_misra_thread_not_used((a))
|
||||||
#define TX_THREAD_ENTRY_EXIT_NOTIFY_NOT_USED(a) _tx_misra_thread_entry_exit_notify_not_used((a))
|
#define TX_THREAD_ENTRY_EXIT_NOTIFY_NOT_USED(a) _tx_misra_thread_entry_exit_notify_not_used((a))
|
||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Define the TX_MEMSET macro to the standard library function, if not already defined. */
|
/* Define the TX_MEMSET macro to the standard library function, if not already defined. */
|
||||||
@@ -1901,8 +1912,6 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
|
|||||||
(b) = (TX_TIMER *) working_ptr; \
|
(b) = (TX_TIMER *) working_ptr; \
|
||||||
}
|
}
|
||||||
#define TX_LOOP_FOREVER ((UINT) 1)
|
#define TX_LOOP_FOREVER ((UINT) 1)
|
||||||
|
|
||||||
|
|
||||||
#define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a)))
|
#define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a)))
|
||||||
#define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a)))
|
#define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a)))
|
||||||
#define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR *) ((VOID *) (a)))
|
#define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR *) ((VOID *) (a)))
|
||||||
@@ -2213,6 +2222,13 @@ void __ghs_rnerr(char *errMsg, int stackLevels, int stackTraceDisplay, void *hex
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Define the get system state macro. By default, it simply maps to the variable _tx_thread_system_state. */
|
||||||
|
/* Note that prior to Azure RTOS 6.1, this symbol was defined in tx_thread.h. */
|
||||||
|
#ifndef TX_THREAD_GET_SYSTEM_STATE
|
||||||
|
#define TX_THREAD_GET_SYSTEM_STATE() _tx_thread_system_state
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Determine if a C++ compiler is being used. If so, complete the standard
|
/* Determine if a C++ compiler is being used. If so, complete the standard
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* COMPONENT DEFINITION RELEASE */
|
/* COMPONENT DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_thread.h PORTABLE C */
|
/* tx_thread.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.2 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -44,6 +44,10 @@
|
|||||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 11-09-2020 Yuxin Zhou Modified comment(s), and */
|
||||||
|
/* moved TX_THREAD_GET_SYSTEM_ */
|
||||||
|
/* STATE to tx_api.h, */
|
||||||
|
/* resulting in version 6.1.2 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -111,11 +115,11 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Define the get system state macro. By default, it simply maps to the variable _tx_thread_system_state. */
|
/* Define the get system state macro. By default, it simply maps to the variable _tx_thread_system_state. */
|
||||||
|
/* This symbol is moved to tx_api.h. Therefore removed from this file.
|
||||||
#ifndef TX_THREAD_GET_SYSTEM_STATE
|
#ifndef TX_THREAD_GET_SYSTEM_STATE
|
||||||
#define TX_THREAD_GET_SYSTEM_STATE() _tx_thread_system_state
|
#define TX_THREAD_GET_SYSTEM_STATE() _tx_thread_system_state
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
/* Define the check for whether or not to call the _tx_thread_system_return function. A non-zero value
|
/* Define the check for whether or not to call the _tx_thread_system_return function. A non-zero value
|
||||||
indicates that _tx_thread_system_return should not be called. */
|
indicates that _tx_thread_system_return should not be called. */
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_user.h PORTABLE C */
|
/* tx_user.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.5 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -44,9 +44,13 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||||
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 03-02-2021 Scott Larson Modified comment(s), */
|
||||||
|
/* added option to remove */
|
||||||
|
/* FileX pointer, */
|
||||||
|
/* resulting in version 6.1.5 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -76,6 +80,7 @@
|
|||||||
TX_DISABLE_PREEMPTION_THRESHOLD
|
TX_DISABLE_PREEMPTION_THRESHOLD
|
||||||
TX_DISABLE_REDUNDANT_CLEARING
|
TX_DISABLE_REDUNDANT_CLEARING
|
||||||
TX_DISABLE_NOTIFY_CALLBACKS
|
TX_DISABLE_NOTIFY_CALLBACKS
|
||||||
|
TX_NO_FILEX_POINTER
|
||||||
TX_NOT_INTERRUPTABLE
|
TX_NOT_INTERRUPTABLE
|
||||||
TX_TIMER_PROCESS_IN_ISR
|
TX_TIMER_PROCESS_IN_ISR
|
||||||
|
|
||||||
@@ -98,6 +103,16 @@
|
|||||||
#define TX_TIMER_THREAD_PRIORITY ????
|
#define TX_TIMER_THREAD_PRIORITY ????
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Determine if there is a FileX pointer in the thread control block.
|
||||||
|
By default, the pointer is there for legacy/backwards compatibility.
|
||||||
|
The pointer must also be there for applications using FileX.
|
||||||
|
Define this to save space in the thread control block.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
#define TX_NO_FILEX_POINTER
|
||||||
|
*/
|
||||||
|
|
||||||
/* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls
|
/* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls
|
||||||
should be processed within the a system timer thread or directly in the timer ISR.
|
should be processed within the a system timer thread or directly in the timer ISR.
|
||||||
By default, the timer thread is used. When the following is defined, the timer expiration
|
By default, the timer thread is used. When the following is defined, the timer expiration
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_mutex_priority_change PORTABLE C */
|
/* _tx_mutex_priority_change PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -70,14 +70,18 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
/* 05-19-2020 William E. Lamie Initial Version 6.0 */
|
||||||
/* 09-30-2020 William E. Lamie Modified comment(s), and */
|
/* 09-30-2020 William E. Lamie Modified comment(s), and */
|
||||||
/* change thread state from */
|
/* change thread state from */
|
||||||
/* TX_SUSPENDED to */
|
/* TX_SUSPENDED to */
|
||||||
/* TX_PRIORITY_CHANGE before */
|
/* TX_PRIORITY_CHANGE before */
|
||||||
/* calling */
|
/* calling */
|
||||||
/* _tx_thread_system_suspend, */
|
/* _tx_thread_system_suspend, */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 04-02-2021 Scott Larson Modified comments, fixed */
|
||||||
|
/* mapping current thread's */
|
||||||
|
/* priority rather than next, */
|
||||||
|
/* resulting in version 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
VOID _tx_mutex_priority_change(TX_THREAD *thread_ptr, UINT new_priority)
|
VOID _tx_mutex_priority_change(TX_THREAD *thread_ptr, UINT new_priority)
|
||||||
@@ -308,15 +312,15 @@ UINT map_index;
|
|||||||
#if TX_MAX_PRIORITIES > 32
|
#if TX_MAX_PRIORITIES > 32
|
||||||
|
|
||||||
/* Calculate the index into the bit map array. */
|
/* Calculate the index into the bit map array. */
|
||||||
map_index = (next_execute_ptr -> tx_thread_priority)/ ((UINT) 32);
|
map_index = (thread_ptr -> tx_thread_priority)/ ((UINT) 32);
|
||||||
|
|
||||||
/* Set the active bit to remember that the preempt map has something set. */
|
/* Set the active bit to remember that the preempt map has something set. */
|
||||||
TX_DIV32_BIT_SET(next_execute_ptr -> tx_thread_priority, priority_bit)
|
TX_DIV32_BIT_SET(thread_ptr -> tx_thread_priority, priority_bit)
|
||||||
_tx_thread_preempted_map_active = _tx_thread_preempted_map_active | priority_bit;
|
_tx_thread_preempted_map_active = _tx_thread_preempted_map_active | priority_bit;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Remember that this thread was preempted by a thread above the thread's threshold. */
|
/* Remember that this thread was preempted by a thread above the thread's threshold. */
|
||||||
TX_MOD32_BIT_SET(next_execute_ptr -> tx_thread_priority, priority_bit)
|
TX_MOD32_BIT_SET(thread_ptr -> tx_thread_priority, priority_bit)
|
||||||
_tx_thread_preempted_maps[MAP_INDEX] = _tx_thread_preempted_maps[MAP_INDEX] | priority_bit;
|
_tx_thread_preempted_maps[MAP_INDEX] = _tx_thread_preempted_maps[MAP_INDEX] | priority_bit;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* txm_module.h PORTABLE C */
|
/* txm_module.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.3 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -40,7 +40,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 Scott Larson Modified comment(s), added */
|
||||||
|
/* port-specific extension, */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -329,6 +332,8 @@ extern "C" {
|
|||||||
#define TXM_MODULE_OBJECT_ALLOCATE_CALL 95
|
#define TXM_MODULE_OBJECT_ALLOCATE_CALL 95
|
||||||
#define TXM_MODULE_OBJECT_DEALLOCATE_CALL 96
|
#define TXM_MODULE_OBJECT_DEALLOCATE_CALL 96
|
||||||
|
|
||||||
|
#define TXM_MODULE_PORT_EXTENSION_API_ID_START 500
|
||||||
|
#define TXM_MODULE_PORT_EXTENSION_API_ID_END 999
|
||||||
|
|
||||||
/* Determine the API call IDs for other components. */
|
/* Determine the API call IDs for other components. */
|
||||||
|
|
||||||
@@ -571,6 +576,7 @@ VOID _txm_module_usbx_duo_callback_request(TXM_MODULE_CALLBACK_MESSAGE *callbac
|
|||||||
resident portion of the application. */
|
resident portion of the application. */
|
||||||
|
|
||||||
#define txm_module_manager_initialize _txm_module_manager_initialize
|
#define txm_module_manager_initialize _txm_module_manager_initialize
|
||||||
|
#define txm_module_manager_absolute_load _txm_module_manager_absolute_load
|
||||||
#define txm_module_manager_in_place_load _txm_module_manager_in_place_load
|
#define txm_module_manager_in_place_load _txm_module_manager_in_place_load
|
||||||
#define txm_module_manager_file_load _txm_module_manager_file_load
|
#define txm_module_manager_file_load _txm_module_manager_file_load
|
||||||
#define txm_module_manager_memory_load _txm_module_manager_memory_load
|
#define txm_module_manager_memory_load _txm_module_manager_memory_load
|
||||||
@@ -607,6 +613,7 @@ UINT _txm_module_manager_application_request(ULONG request, ALIGN_TYPE param_1,
|
|||||||
UINT _txm_module_manager_file_load(TXM_MODULE_INSTANCE *module_instance, CHAR *module_name, FX_MEDIA *media_ptr, CHAR *file_name);
|
UINT _txm_module_manager_file_load(TXM_MODULE_INSTANCE *module_instance, CHAR *module_name, FX_MEDIA *media_ptr, CHAR *file_name);
|
||||||
#endif
|
#endif
|
||||||
UINT _txm_module_manager_initialize(VOID *module_memory_start, ULONG module_memory_size);
|
UINT _txm_module_manager_initialize(VOID *module_memory_start, ULONG module_memory_size);
|
||||||
|
UINT _txm_module_manager_absolute_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
||||||
UINT _txm_module_manager_in_place_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
UINT _txm_module_manager_in_place_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
||||||
UINT _txm_module_manager_internal_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location,
|
UINT _txm_module_manager_internal_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location,
|
||||||
ULONG code_size, VOID *code_allocation_ptr, ULONG code_allocation_size);
|
ULONG code_size, VOID *code_allocation_ptr, ULONG code_allocation_size);
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], extra_parameters[2]))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], extra_parameters[2]))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
@@ -131,6 +134,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -179,6 +185,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -218,6 +227,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -311,6 +323,9 @@ ALIGN_TYPE return_value;
|
|||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(VOID *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(VOID *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return_value = (ALIGN_TYPE) _txe_byte_allocate(
|
return_value = (ALIGN_TYPE) _txe_byte_allocate(
|
||||||
@@ -342,6 +357,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], extra_parameters[1]))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], extra_parameters[1]))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
@@ -404,6 +422,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -455,6 +476,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[6])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -509,6 +533,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -668,6 +695,9 @@ ALIGN_TYPE return_value;
|
|||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return_value = (ALIGN_TYPE) _txe_event_flags_get(
|
return_value = (ALIGN_TYPE) _txe_event_flags_get(
|
||||||
@@ -701,6 +731,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -745,6 +778,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -784,6 +820,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -886,6 +925,9 @@ ALIGN_TYPE return_value;
|
|||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return_value = (ALIGN_TYPE) _txe_mutex_create(
|
return_value = (ALIGN_TYPE) _txe_mutex_create(
|
||||||
@@ -967,6 +1009,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1017,6 +1062,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1066,6 +1114,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1151,6 +1202,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], extra_parameters[2]))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], extra_parameters[2]))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
@@ -1264,6 +1318,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1314,6 +1371,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1363,6 +1423,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1551,6 +1614,9 @@ ALIGN_TYPE return_value;
|
|||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return_value = (ALIGN_TYPE) _txe_semaphore_create(
|
return_value = (ALIGN_TYPE) _txe_semaphore_create(
|
||||||
@@ -1631,6 +1697,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1675,6 +1744,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1714,6 +1786,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1840,6 +1915,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[9])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], extra_parameters[3]))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], extra_parameters[3]))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -1977,6 +2055,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[7])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(UINT)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(UINT)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -2056,6 +2137,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[9])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -2126,6 +2210,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[9])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -2535,6 +2622,9 @@ VOID (*expiration_function)(ULONG);
|
|||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[6])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is it a disable request? */
|
/* Is it a disable request? */
|
||||||
@@ -2646,6 +2736,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(UINT)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(UINT)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -2691,6 +2784,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -2735,6 +2831,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
@@ -2890,6 +2989,12 @@ static ALIGN_TYPE _txm_module_manager_tx_trace_user_event_insert_dispatch(TXM_MO
|
|||||||
|
|
||||||
ALIGN_TYPE return_value;
|
ALIGN_TYPE return_value;
|
||||||
|
|
||||||
|
if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
|
||||||
|
{
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
return_value = (ALIGN_TYPE) _tx_trace_user_event_insert(
|
return_value = (ALIGN_TYPE) _tx_trace_user_event_insert(
|
||||||
(ULONG) param_0,
|
(ULONG) param_0,
|
||||||
(ULONG) param_1,
|
(ULONG) param_1,
|
||||||
@@ -3015,6 +3120,9 @@ ALIGN_TYPE return_value;
|
|||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
|
if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
|
||||||
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
|
|
||||||
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(VOID *)))
|
if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(VOID *)))
|
||||||
return(TXM_MODULE_INVALID_MEMORY);
|
return(TXM_MODULE_INVALID_MEMORY);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* COMPONENT DEFINITION RELEASE */
|
/* COMPONENT DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* txm_module_manager_util.h PORTABLE C */
|
/* txm_module_manager_util.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -40,7 +40,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 04-02-2021 Scott Larson Modified comment(s) and */
|
||||||
|
/* optimized object checks, */
|
||||||
|
/* resulting in version 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -53,15 +56,18 @@
|
|||||||
(!(TXM_MODULE_MANAGER_CHECK_INSIDE_DATA(module_instance, obj_ptr, obj_size)))
|
(!(TXM_MODULE_MANAGER_CHECK_INSIDE_DATA(module_instance, obj_ptr, obj_size)))
|
||||||
|
|
||||||
#define TXM_MODULE_MANAGER_CHECK_INSIDE_CODE(module_instance, obj_ptr, obj_size) \
|
#define TXM_MODULE_MANAGER_CHECK_INSIDE_CODE(module_instance, obj_ptr, obj_size) \
|
||||||
(((obj_ptr) >= (ALIGN_TYPE) module_instance -> txm_module_instance_code_start) && \
|
(((obj_ptr) < ((obj_ptr) + (obj_size))) && \
|
||||||
|
((obj_ptr) >= (ALIGN_TYPE) module_instance -> txm_module_instance_code_start) && \
|
||||||
(((obj_ptr) + (obj_size)) <= ((ALIGN_TYPE) module_instance -> txm_module_instance_code_end + 1)))
|
(((obj_ptr) + (obj_size)) <= ((ALIGN_TYPE) module_instance -> txm_module_instance_code_end + 1)))
|
||||||
|
|
||||||
#define TXM_MODULE_MANAGER_CHECK_OUTSIDE_CODE(module_instance, obj_ptr, obj_size) \
|
#define TXM_MODULE_MANAGER_CHECK_OUTSIDE_CODE(module_instance, obj_ptr, obj_size) \
|
||||||
(!(TXM_MODULE_MANAGER_CHECK_INSIDE_CODE(module_instance, obj_ptr, obj_size)))
|
(!(TXM_MODULE_MANAGER_CHECK_INSIDE_CODE(module_instance, obj_ptr, obj_size)))
|
||||||
|
|
||||||
|
/* Add sizeof(TXM_MODULE_ALLOCATED_OBJECT) to pool start because the object can't exist before that. */
|
||||||
#define TXM_MODULE_MANAGER_CHECK_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) \
|
#define TXM_MODULE_MANAGER_CHECK_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) \
|
||||||
((_txm_module_manager_object_pool_created == TX_TRUE) && \
|
((_txm_module_manager_object_pool_created == TX_TRUE) && \
|
||||||
(((obj_ptr) >= (ALIGN_TYPE) _txm_module_manager_object_pool.tx_byte_pool_start) && \
|
((obj_ptr) < ((obj_ptr) + (obj_size))) && \
|
||||||
|
(((obj_ptr) >= ((ALIGN_TYPE) _txm_module_manager_object_pool.tx_byte_pool_start + sizeof(TXM_MODULE_ALLOCATED_OBJECT))) && \
|
||||||
(((obj_ptr) + (obj_size)) <= (ALIGN_TYPE) (_txm_module_manager_object_pool.tx_byte_pool_start + _txm_module_manager_object_pool.tx_byte_pool_size))))
|
(((obj_ptr) + (obj_size)) <= (ALIGN_TYPE) (_txm_module_manager_object_pool.tx_byte_pool_start + _txm_module_manager_object_pool.tx_byte_pool_size))))
|
||||||
|
|
||||||
/* Define macros for module. */
|
/* Define macros for module. */
|
||||||
@@ -84,29 +90,29 @@
|
|||||||
|
|
||||||
/* Buffers we read from can be in RW/RO/Shared areas. */
|
/* Buffers we read from can be in RW/RO/Shared areas. */
|
||||||
#define TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_READ(module_instance, buffer_ptr, buffer_size) \
|
#define TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_READ(module_instance, buffer_ptr, buffer_size) \
|
||||||
(((void *) (buffer_ptr) == TX_NULL) || \
|
((TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE(module_instance, buffer_ptr, buffer_size)) || \
|
||||||
(TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE(module_instance, buffer_ptr, buffer_size)))
|
((void *) (buffer_ptr) == TX_NULL))
|
||||||
|
|
||||||
/* Buffers we write to can only be in RW/Shared areas. */
|
/* Buffers we write to can only be in RW/Shared areas. */
|
||||||
#define TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, buffer_ptr, buffer_size) \
|
#define TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, buffer_ptr, buffer_size) \
|
||||||
(((void *) (buffer_ptr) == TX_NULL) || \
|
((TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, buffer_ptr, buffer_size)) || \
|
||||||
(TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, buffer_ptr, buffer_size)))
|
((void *) (buffer_ptr) == TX_NULL))
|
||||||
|
|
||||||
/* Kernel objects should be outside the module at the very least. */
|
/* Kernel objects should be outside the module at the very least. */
|
||||||
#define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, obj_ptr, obj_size) \
|
#define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, obj_ptr, obj_size) \
|
||||||
(((void *) (obj_ptr) == TX_NULL) || \
|
((TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size)) || \
|
||||||
(TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size)))
|
((void *) (obj_ptr) == TX_NULL))
|
||||||
|
|
||||||
/* When creating an object, the object must be inside the object pool. */
|
/* When creating an object, the object must be inside the object pool. */
|
||||||
#define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, obj_ptr, obj_size) \
|
#define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, obj_ptr, obj_size) \
|
||||||
(((void *) (obj_ptr) == TX_NULL) || \
|
((TXM_MODULE_MANAGER_ENSURE_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) && \
|
||||||
(TXM_MODULE_MANAGER_ENSURE_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) && \
|
(_txm_module_manager_object_size_check(obj_ptr, obj_size) == TX_SUCCESS)) || \
|
||||||
(_txm_module_manager_object_size_check(obj_ptr, obj_size) == TX_SUCCESS)))
|
((void *) (obj_ptr) == TX_NULL))
|
||||||
|
|
||||||
/* Strings we dereference can be in RW/RO/Shared areas. */
|
/* Strings we dereference can be in RW/RO/Shared areas. */
|
||||||
#define TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, string_ptr) \
|
#define TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, string_ptr) \
|
||||||
(((void *) (string_ptr) == TX_NULL) || \
|
((TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE(module_instance, string_ptr, 1)) || \
|
||||||
(TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE(module_instance, string_ptr, 1)))
|
((void *) (string_ptr) == TX_NULL))
|
||||||
|
|
||||||
#define TXM_MODULE_MANAGER_UTIL_MAX_VALUE_OF_TYPE_UNSIGNED(type) ((1ULL << (sizeof(type) * 8)) - 1)
|
#define TXM_MODULE_MANAGER_UTIL_MAX_VALUE_OF_TYPE_UNSIGNED(type) ((1ULL << (sizeof(type) * 8)) - 1)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,439 @@
|
|||||||
|
/**************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
||||||
|
/* */
|
||||||
|
/* This software is licensed under the Microsoft Software License */
|
||||||
|
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
||||||
|
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
||||||
|
/* and in the root directory of this software. */
|
||||||
|
/* */
|
||||||
|
/**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************/
|
||||||
|
/**************************************************************************/
|
||||||
|
/** */
|
||||||
|
/** ThreadX Component */
|
||||||
|
/** */
|
||||||
|
/** Module Manager */
|
||||||
|
/** */
|
||||||
|
/**************************************************************************/
|
||||||
|
/**************************************************************************/
|
||||||
|
|
||||||
|
#define TX_SOURCE_CODE
|
||||||
|
|
||||||
|
#include "tx_api.h"
|
||||||
|
#include "tx_initialize.h"
|
||||||
|
#include "tx_mutex.h"
|
||||||
|
#include "tx_thread.h"
|
||||||
|
#include "tx_byte_pool.h"
|
||||||
|
#include "txm_module.h"
|
||||||
|
#include "txm_module_manager_util.h"
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* FUNCTION RELEASE */
|
||||||
|
/* */
|
||||||
|
/* _txm_module_manager_absolute_load PORTABLE C */
|
||||||
|
/* 6.1.3 */
|
||||||
|
/* AUTHOR */
|
||||||
|
/* */
|
||||||
|
/* Andres Mlinar, Microsoft Corporation */
|
||||||
|
/* */
|
||||||
|
/* DESCRIPTION */
|
||||||
|
/* */
|
||||||
|
/* This function ensures the code-related and data-related parts of */
|
||||||
|
/* the module preamble are valid and prepares the module for */
|
||||||
|
/* execution. */
|
||||||
|
/* */
|
||||||
|
/* INPUT */
|
||||||
|
/* */
|
||||||
|
/* module_instance Module instance pointer */
|
||||||
|
/* module_name Module name pointer */
|
||||||
|
/* module_location Module code location */
|
||||||
|
/* */
|
||||||
|
/* OUTPUT */
|
||||||
|
/* */
|
||||||
|
/* status Completion status */
|
||||||
|
/* */
|
||||||
|
/* CALLS */
|
||||||
|
/* */
|
||||||
|
/* _tx_byte_allocate Allocate data area */
|
||||||
|
/* _tx_mutex_get Get protection mutex */
|
||||||
|
/* _tx_mutex_put Release protection mutex */
|
||||||
|
/* */
|
||||||
|
/* CALLED BY */
|
||||||
|
/* */
|
||||||
|
/* Application code */
|
||||||
|
/* */
|
||||||
|
/* RELEASE HISTORY */
|
||||||
|
/* */
|
||||||
|
/* DATE NAME DESCRIPTION */
|
||||||
|
/* */
|
||||||
|
/* 12-31-2020 Andres Mlinar Initial Version 6.1.3 */
|
||||||
|
/* */
|
||||||
|
/**************************************************************************/
|
||||||
|
UINT _txm_module_manager_absolute_load(TXM_MODULE_INSTANCE *module_instance, CHAR *module_name, VOID *module_location)
|
||||||
|
{
|
||||||
|
|
||||||
|
TX_INTERRUPT_SAVE_AREA
|
||||||
|
|
||||||
|
TXM_MODULE_PREAMBLE *module_preamble;
|
||||||
|
ULONG code_size;
|
||||||
|
ULONG code_alignment;
|
||||||
|
ULONG code_allocation_size_ignored;
|
||||||
|
UINT status;
|
||||||
|
|
||||||
|
TXM_MODULE_INSTANCE *next_module, *previous_module;
|
||||||
|
ULONG start_stop_stack_size;
|
||||||
|
ULONG callback_stack_size;
|
||||||
|
ULONG code_size_ignored;
|
||||||
|
ULONG code_alignment_ignored;
|
||||||
|
ALIGN_TYPE data_start;
|
||||||
|
ULONG data_size;
|
||||||
|
ULONG data_alignment;
|
||||||
|
ULONG data_allocation_size;
|
||||||
|
ULONG module_properties;
|
||||||
|
CHAR *memory_ptr;
|
||||||
|
|
||||||
|
|
||||||
|
/* Check for interrupt call. */
|
||||||
|
if (TX_THREAD_GET_SYSTEM_STATE() != 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Now, make sure the call is from an interrupt and not initialization. */
|
||||||
|
if (TX_THREAD_GET_SYSTEM_STATE() < TX_INITIALIZE_IN_PROGRESS)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Invalid caller of this function, return appropriate error code. */
|
||||||
|
return(TX_CALLER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Determine if the module manager has not been initialized yet. */
|
||||||
|
if (_txm_module_manager_ready != TX_TRUE)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Module manager has not been initialized. */
|
||||||
|
return(TX_NOT_AVAILABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Determine if the module is valid. */
|
||||||
|
if (module_instance == TX_NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Invalid module pointer. */
|
||||||
|
return(TX_PTR_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get module manager protection mutex. */
|
||||||
|
_tx_mutex_get(&_txm_module_manager_mutex, TX_WAIT_FOREVER);
|
||||||
|
|
||||||
|
/* Determine if the module is already valid. */
|
||||||
|
if (module_instance -> txm_module_instance_id == TXM_MODULE_ID)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* Module already loaded. */
|
||||||
|
return(TXM_MODULE_ALREADY_LOADED);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pickup the module's information. */
|
||||||
|
module_preamble = (TXM_MODULE_PREAMBLE *) module_location;
|
||||||
|
|
||||||
|
/* Check to make sure there is a valid module to load. */
|
||||||
|
if (module_preamble -> txm_module_preamble_id != TXM_MODULE_ID)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* Invalid module preamble. */
|
||||||
|
return(TXM_MODULE_INVALID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check the properties of this module. */
|
||||||
|
module_properties = module_preamble -> txm_module_preamble_property_flags & TXM_MODULE_OPTIONS_MASK;
|
||||||
|
if (/* Ensure the requested properties are supported. */
|
||||||
|
((module_properties & _txm_module_manager_properties_supported) != module_properties) ||
|
||||||
|
/* Ensure the required properties are there. */
|
||||||
|
((_txm_module_manager_properties_required & module_properties) != _txm_module_manager_properties_required) ||
|
||||||
|
/* If memory protection is enabled, then so must user mode. */
|
||||||
|
((module_properties & TXM_MODULE_MEMORY_PROTECTION) && !(module_properties & TXM_MODULE_USER_MODE))
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* Invalid properties. Return error. */
|
||||||
|
return(TXM_MODULE_INVALID_PROPERTIES);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check for valid module entry offsets. */
|
||||||
|
if ((module_preamble -> txm_module_preamble_shell_entry_function == 0) ||
|
||||||
|
(module_preamble -> txm_module_preamble_start_function == 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* Invalid module preamble. */
|
||||||
|
return(TXM_MODULE_INVALID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check for valid sizes. */
|
||||||
|
if ((module_preamble -> txm_module_preamble_code_size == 0) ||
|
||||||
|
/* (module_preamble -> txm_module_preamble_data_size == 0) || *** a zero data size is valid */
|
||||||
|
(module_preamble -> txm_module_preamble_start_stop_stack_size == 0) ||
|
||||||
|
(module_preamble -> txm_module_preamble_callback_stack_size == 0))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* Invalid module preamble. */
|
||||||
|
return(TXM_MODULE_INVALID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get the amount of the bytes we need to allocate for the module's code
|
||||||
|
as well as the required alignment. Note that because this is an absolute
|
||||||
|
load, we only want the code alignment so we can check it. */
|
||||||
|
status = _txm_module_manager_util_code_allocation_size_and_alignment_get(module_preamble, &code_alignment, &code_allocation_size_ignored);
|
||||||
|
if (status != TX_SUCCESS)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Math overflow error occurred. */
|
||||||
|
return(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Since this is an absolute load, check the alignment of the module's instruction area (code). */
|
||||||
|
TXM_MODULE_MANAGER_CHECK_CODE_ALIGNMENT(module_location, code_alignment)
|
||||||
|
|
||||||
|
/* Initialize module control block to all zeros. */
|
||||||
|
TX_MEMSET(module_instance, 0, sizeof(TXM_MODULE_INSTANCE));
|
||||||
|
|
||||||
|
/* Pickup the basic module sizes. */
|
||||||
|
code_size = module_preamble -> txm_module_preamble_code_size;
|
||||||
|
data_size = module_preamble -> txm_module_preamble_data_size;
|
||||||
|
start_stop_stack_size = module_preamble -> txm_module_preamble_start_stop_stack_size;
|
||||||
|
callback_stack_size = module_preamble -> txm_module_preamble_callback_stack_size;
|
||||||
|
|
||||||
|
TXM_MODULE_MANAGER_UTIL_MATH_ADD_ULONG(data_size, TXM_MODULE_DATA_ALIGNMENT, data_size);
|
||||||
|
data_size = ((data_size - 1)/TXM_MODULE_DATA_ALIGNMENT) * TXM_MODULE_DATA_ALIGNMENT;
|
||||||
|
|
||||||
|
/* Adjust the size of the module elements to be aligned to the default alignment. We do this
|
||||||
|
so that when we partition the allocated memory, we can simply place these regions right beside
|
||||||
|
each other without having to align their pointers. Note this only works when they all have
|
||||||
|
the same alignment. */
|
||||||
|
|
||||||
|
TXM_MODULE_MANAGER_UTIL_MATH_ADD_ULONG(start_stop_stack_size, TXM_MODULE_DATA_ALIGNMENT, start_stop_stack_size);
|
||||||
|
start_stop_stack_size = ((start_stop_stack_size - 1)/TXM_MODULE_DATA_ALIGNMENT) * TXM_MODULE_DATA_ALIGNMENT;
|
||||||
|
|
||||||
|
TXM_MODULE_MANAGER_UTIL_MATH_ADD_ULONG(callback_stack_size, TXM_MODULE_DATA_ALIGNMENT, callback_stack_size);
|
||||||
|
callback_stack_size = ((callback_stack_size - 1)/TXM_MODULE_DATA_ALIGNMENT) * TXM_MODULE_DATA_ALIGNMENT;
|
||||||
|
|
||||||
|
/* Update the data size to account for the default thread stacks. */
|
||||||
|
data_allocation_size = 0;
|
||||||
|
TXM_MODULE_MANAGER_UTIL_MATH_ADD_ULONG(data_allocation_size, start_stop_stack_size, data_allocation_size);
|
||||||
|
TXM_MODULE_MANAGER_UTIL_MATH_ADD_ULONG(data_allocation_size, callback_stack_size, data_allocation_size);
|
||||||
|
|
||||||
|
/* Setup the default code and data alignments. */
|
||||||
|
data_alignment = (ULONG) TXM_MODULE_DATA_ALIGNMENT;
|
||||||
|
|
||||||
|
/* Get the port-specific alignment for the data size. Note we only want data
|
||||||
|
so we pass values of 1 for code (to avoid any possible div by 0 errors). */
|
||||||
|
code_size_ignored = 1;
|
||||||
|
code_alignment_ignored = 1;
|
||||||
|
TXM_MODULE_MANAGER_ALIGNMENT_ADJUST(module_preamble, code_size_ignored, code_alignment_ignored, data_allocation_size, data_alignment)
|
||||||
|
|
||||||
|
/* Calculate the module's total RAM memory requirement. This entire area is allocated from the module
|
||||||
|
manager's byte pool. The general layout is defined as follows:
|
||||||
|
|
||||||
|
Lowest Address: Start of start/stop thread stack
|
||||||
|
... [note: thread entry info is embedded near end of stack areas]
|
||||||
|
End of start/stop thread stack
|
||||||
|
|
||||||
|
Start of callback thread stack
|
||||||
|
... [note: thread entry info is embedded near end of stack areas]
|
||||||
|
End of callback thread stack
|
||||||
|
|
||||||
|
Highest Address: */
|
||||||
|
|
||||||
|
/* Add an extra alignment increment so we can align the pointer after allocation. */
|
||||||
|
TXM_MODULE_MANAGER_UTIL_MATH_ADD_ULONG(data_allocation_size, data_alignment, data_allocation_size);
|
||||||
|
|
||||||
|
/* Allocate memory for the module. */
|
||||||
|
status = _tx_byte_allocate(&_txm_module_manager_byte_pool, (VOID **) &memory_ptr, data_allocation_size, TX_NO_WAIT);
|
||||||
|
|
||||||
|
/* Determine if the module memory allocation was successful. */
|
||||||
|
if (status)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* No memory, return an error. */
|
||||||
|
return(TX_NO_MEMORY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clear the allocated memory. */
|
||||||
|
TX_MEMSET(memory_ptr, ((UCHAR) 0), data_allocation_size);
|
||||||
|
|
||||||
|
/* Disable interrupts. */
|
||||||
|
TX_DISABLE
|
||||||
|
|
||||||
|
/* Setup the module instance structure. */
|
||||||
|
module_instance -> txm_module_instance_id = TXM_MODULE_ID;
|
||||||
|
|
||||||
|
/* Save the module name. */
|
||||||
|
module_instance -> txm_module_instance_name = module_name;
|
||||||
|
|
||||||
|
/* Save the module properties. */
|
||||||
|
module_instance -> txm_module_instance_property_flags = module_preamble -> txm_module_preamble_property_flags;
|
||||||
|
|
||||||
|
/* Set the module data memory allocation. This is the address released
|
||||||
|
when the module is unloaded. */
|
||||||
|
module_instance -> txm_module_instance_data_allocation_ptr = (VOID *) memory_ptr;
|
||||||
|
|
||||||
|
/* Save the data allocation size. */
|
||||||
|
module_instance -> txm_module_instance_data_allocation_size = data_allocation_size;
|
||||||
|
|
||||||
|
/* Calculate the actual start of the data area. This needs to be adjusted based on the alignment. */
|
||||||
|
data_start = (ALIGN_TYPE) memory_ptr;
|
||||||
|
data_start = (data_start + (((ALIGN_TYPE)data_alignment) - 1)) & ~(((ALIGN_TYPE)data_alignment) - 1);
|
||||||
|
memory_ptr = (CHAR *) data_start;
|
||||||
|
|
||||||
|
/* Compute the beginning and end of the data area. */
|
||||||
|
#ifdef ALIGN_TYPE_DEFINED
|
||||||
|
module_instance -> txm_module_instance_data_start = (VOID *) (((CHAR *) (ALIGN_TYPE) module_preamble->txm_module_preamble_code_size) + sizeof(TXM_MODULE_PREAMBLE));
|
||||||
|
module_instance -> txm_module_instance_data_end = (VOID *) (((CHAR *) (ALIGN_TYPE) module_instance -> txm_module_instance_data_start) + module_preamble->txm_module_preamble_data_size);
|
||||||
|
#else
|
||||||
|
module_instance -> txm_module_instance_data_start = (VOID *) (((CHAR *) module_preamble->txm_module_preamble_code_size) + sizeof(TXM_MODULE_PREAMBLE));
|
||||||
|
module_instance -> txm_module_instance_data_end = (VOID *) (((CHAR *) module_instance -> txm_module_instance_data_start) + module_preamble->txm_module_preamble_data_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Save the size of the data area. */
|
||||||
|
module_instance -> txm_module_instance_data_size = data_size;
|
||||||
|
|
||||||
|
/* Set the module code memory allocation. This is the address released
|
||||||
|
when the module is unloaded. */
|
||||||
|
module_instance -> txm_module_instance_code_allocation_ptr = (VOID *) NULL;
|
||||||
|
|
||||||
|
/* Save the code allocation size. */
|
||||||
|
module_instance -> txm_module_instance_code_allocation_size = 0;
|
||||||
|
|
||||||
|
/* Setup the code pointers. Since the code was loaded in-place, this is effectively just the values supplied in the API call. */
|
||||||
|
module_instance -> txm_module_instance_code_start = (VOID *) module_location;
|
||||||
|
module_instance -> txm_module_instance_code_end = (VOID *) (((CHAR *) module_location) + (code_size - 1));
|
||||||
|
|
||||||
|
/* Setup the code size. */
|
||||||
|
module_instance -> txm_module_instance_code_size = code_size;
|
||||||
|
|
||||||
|
/* Save the module's total memory usage. */
|
||||||
|
module_instance -> txm_module_instance_total_ram_usage = 0 /* Code is executed in place */ + data_allocation_size /* just the size of stacks */;
|
||||||
|
|
||||||
|
/* Set the module state to started. */
|
||||||
|
module_instance -> txm_module_instance_state = TXM_MODULE_LOADED;
|
||||||
|
|
||||||
|
/* Save the preamble pointer. */
|
||||||
|
module_instance -> txm_module_instance_preamble_ptr = module_preamble;
|
||||||
|
|
||||||
|
/* Save the module application ID in the module instance. */
|
||||||
|
module_instance -> txm_module_instance_application_module_id = module_preamble -> txm_module_preamble_application_module_id;
|
||||||
|
|
||||||
|
/* Setup the module's start/stop thread stack area. */
|
||||||
|
module_instance -> txm_module_instance_start_stop_stack_start_address = (VOID *) (memory_ptr);
|
||||||
|
module_instance -> txm_module_instance_start_stop_stack_size = start_stop_stack_size;
|
||||||
|
module_instance -> txm_module_instance_start_stop_stack_end_address = (VOID *) (memory_ptr + (start_stop_stack_size - 1));
|
||||||
|
|
||||||
|
/* Move the memory pointer forward. */
|
||||||
|
memory_ptr = memory_ptr + start_stop_stack_size;
|
||||||
|
|
||||||
|
/* Save the start/stop thread priority. */
|
||||||
|
module_instance -> txm_module_instance_start_stop_priority = module_preamble -> txm_module_preamble_start_stop_priority;
|
||||||
|
|
||||||
|
/* Setup the module's callback thread stack area. */
|
||||||
|
module_instance -> txm_module_instance_callback_stack_start_address = (VOID *) (memory_ptr);
|
||||||
|
module_instance -> txm_module_instance_callback_stack_size = callback_stack_size;
|
||||||
|
module_instance -> txm_module_instance_callback_stack_end_address = (VOID *) (memory_ptr + (callback_stack_size - 1));
|
||||||
|
|
||||||
|
/* Move the memory pointer forward. */
|
||||||
|
memory_ptr = memory_ptr + callback_stack_size;
|
||||||
|
|
||||||
|
/* Save the callback thread priority. */
|
||||||
|
module_instance -> txm_module_instance_callback_priority = module_preamble -> txm_module_preamble_callback_priority;
|
||||||
|
|
||||||
|
/* Setup the start of the module data section. */
|
||||||
|
module_instance -> txm_module_instance_module_data_base_address = (VOID *) (memory_ptr);
|
||||||
|
|
||||||
|
/* Build actual addresses based on load... Setup all the function pointers. Any adjustments needed to shell entry, start function, and callback function are defined in the
|
||||||
|
module preamble. */
|
||||||
|
#ifdef ALIGN_TYPE_DEFINED
|
||||||
|
module_instance -> txm_module_instance_shell_entry_function = (VOID (*)(TX_THREAD *, TXM_MODULE_INSTANCE *)) ((VOID *) (ALIGN_TYPE) module_preamble -> txm_module_preamble_shell_entry_function);
|
||||||
|
module_instance -> txm_module_instance_start_thread_entry = (VOID (*)(ULONG)) ((VOID *) (ALIGN_TYPE) module_preamble -> txm_module_preamble_start_function);
|
||||||
|
module_instance -> txm_module_instance_callback_request_thread_entry = (VOID (*)(ULONG)) ((VOID *) (ALIGN_TYPE) module_preamble -> txm_module_preamble_callback_function);
|
||||||
|
#else
|
||||||
|
module_instance -> txm_module_instance_shell_entry_function = (VOID (*)(TX_THREAD *, TXM_MODULE_INSTANCE *)) ((VOID *) module_preamble -> txm_module_preamble_shell_entry_function);
|
||||||
|
module_instance -> txm_module_instance_start_thread_entry = (VOID (*)(ULONG)) ((VOID *) module_preamble -> txm_module_preamble_start_function);
|
||||||
|
module_instance -> txm_module_instance_callback_request_thread_entry = (VOID (*)(ULONG)) ((VOID *) module_preamble -> txm_module_preamble_callback_function);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Determine if there is a stop function for this module. */
|
||||||
|
if (module_preamble -> txm_module_preamble_stop_function)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Yes, there is a stop function, build the address. */
|
||||||
|
#ifdef ALIGN_TYPE_DEFINED
|
||||||
|
module_instance -> txm_module_instance_stop_thread_entry = (VOID (*)(ULONG)) ((VOID *) (ALIGN_TYPE) module_preamble -> txm_module_preamble_stop_function);
|
||||||
|
#else
|
||||||
|
module_instance -> txm_module_instance_stop_thread_entry = (VOID (*)(ULONG)) ((VOID *) module_preamble -> txm_module_preamble_stop_function);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
/* No, there is no stop function. Just set the pointer to NULL. */
|
||||||
|
module_instance -> txm_module_instance_stop_thread_entry = TX_NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Load the module control block with port-specific information. */
|
||||||
|
TXM_MODULE_MANAGER_MODULE_SETUP(module_instance);
|
||||||
|
|
||||||
|
/* Now add the module to the linked list of created modules. */
|
||||||
|
if (_txm_module_manger_loaded_count++ == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* The loaded module list is empty. Add module to empty list. */
|
||||||
|
_txm_module_manager_loaded_list_ptr = module_instance;
|
||||||
|
module_instance -> txm_module_instance_loaded_next = module_instance;
|
||||||
|
module_instance -> txm_module_instance_loaded_previous = module_instance;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
/* This list is not NULL, add to the end of the list. */
|
||||||
|
next_module = _txm_module_manager_loaded_list_ptr;
|
||||||
|
previous_module = next_module -> txm_module_instance_loaded_previous;
|
||||||
|
|
||||||
|
/* Place the new module in the list. */
|
||||||
|
next_module -> txm_module_instance_loaded_previous = module_instance;
|
||||||
|
previous_module -> txm_module_instance_loaded_next = module_instance;
|
||||||
|
|
||||||
|
/* Setup this module's created links. */
|
||||||
|
module_instance -> txm_module_instance_loaded_previous = previous_module;
|
||||||
|
module_instance -> txm_module_instance_loaded_next = next_module;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
|
||||||
|
/* Release the protection mutex. */
|
||||||
|
_tx_mutex_put(&_txm_module_manager_mutex);
|
||||||
|
|
||||||
|
/* Return success. */
|
||||||
|
return(TX_SUCCESS);
|
||||||
|
}
|
||||||
@@ -40,8 +40,8 @@
|
|||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_dispatch PORTABLE C */
|
/* _txm_module_manager_kernel_dispatch PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -50,6 +50,8 @@
|
|||||||
/* */
|
/* */
|
||||||
/* This function dispatches the module's kernel request based upon the */
|
/* This function dispatches the module's kernel request based upon the */
|
||||||
/* ID and parameters specified in the request. */
|
/* ID and parameters specified in the request. */
|
||||||
|
/* To disallow modules to use specific ThreadX services, define */
|
||||||
|
/* TXM_***_CALL_NOT_USED (see #ifndefs surrounding each case). */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
@@ -79,7 +81,14 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 Scott Larson Modified comment(s), added */
|
||||||
|
/* port-specific dispatch, */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
|
/* 04-02-2021 Scott Larson Modified comment(s), */
|
||||||
|
/* added optional defines to */
|
||||||
|
/* remove unneeded functions, */
|
||||||
|
/* resulting in version 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
ALIGN_TYPE _txm_module_manager_kernel_dispatch(ULONG kernel_request, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
|
ALIGN_TYPE _txm_module_manager_kernel_dispatch(ULONG kernel_request, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
|
||||||
@@ -101,584 +110,785 @@ TXM_MODULE_INSTANCE *module_instance;
|
|||||||
|
|
||||||
switch (kernel_request)
|
switch (kernel_request)
|
||||||
{
|
{
|
||||||
|
#ifndef TXM_BLOCK_ALLOCATE_CALL_NOT_USED
|
||||||
case TXM_BLOCK_ALLOCATE_CALL:
|
case TXM_BLOCK_ALLOCATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_allocate_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_block_allocate_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_POOL_CREATE_CALL_NOT_USED
|
||||||
case TXM_BLOCK_POOL_CREATE_CALL:
|
case TXM_BLOCK_POOL_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_pool_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_block_pool_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_POOL_DELETE_CALL_NOT_USED
|
||||||
case TXM_BLOCK_POOL_DELETE_CALL:
|
case TXM_BLOCK_POOL_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_pool_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_block_pool_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_POOL_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_BLOCK_POOL_INFO_GET_CALL:
|
case TXM_BLOCK_POOL_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_pool_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_block_pool_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_BLOCK_POOL_PERFORMANCE_INFO_GET_CALL:
|
case TXM_BLOCK_POOL_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_pool_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_block_pool_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_BLOCK_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_BLOCK_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_pool_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_block_pool_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_POOL_PRIORITIZE_CALL_NOT_USED
|
||||||
case TXM_BLOCK_POOL_PRIORITIZE_CALL:
|
case TXM_BLOCK_POOL_PRIORITIZE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_pool_prioritize_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_block_pool_prioritize_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BLOCK_RELEASE_CALL_NOT_USED
|
||||||
case TXM_BLOCK_RELEASE_CALL:
|
case TXM_BLOCK_RELEASE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_block_release_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_block_release_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_ALLOCATE_CALL_NOT_USED
|
||||||
case TXM_BYTE_ALLOCATE_CALL:
|
case TXM_BYTE_ALLOCATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_allocate_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_byte_allocate_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_POOL_CREATE_CALL_NOT_USED
|
||||||
case TXM_BYTE_POOL_CREATE_CALL:
|
case TXM_BYTE_POOL_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_pool_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_byte_pool_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_POOL_DELETE_CALL_NOT_USED
|
||||||
case TXM_BYTE_POOL_DELETE_CALL:
|
case TXM_BYTE_POOL_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_pool_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_byte_pool_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_POOL_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_BYTE_POOL_INFO_GET_CALL:
|
case TXM_BYTE_POOL_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_pool_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_byte_pool_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_BYTE_POOL_PERFORMANCE_INFO_GET_CALL:
|
case TXM_BYTE_POOL_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_pool_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_byte_pool_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_BYTE_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_BYTE_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_pool_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_byte_pool_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_POOL_PRIORITIZE_CALL_NOT_USED
|
||||||
case TXM_BYTE_POOL_PRIORITIZE_CALL:
|
case TXM_BYTE_POOL_PRIORITIZE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_pool_prioritize_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_byte_pool_prioritize_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_BYTE_RELEASE_CALL_NOT_USED
|
||||||
case TXM_BYTE_RELEASE_CALL:
|
case TXM_BYTE_RELEASE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_byte_release_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_byte_release_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_CREATE_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_CREATE_CALL:
|
case TXM_EVENT_FLAGS_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_create_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_event_flags_create_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_DELETE_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_DELETE_CALL:
|
case TXM_EVENT_FLAGS_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_event_flags_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_GET_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_GET_CALL:
|
case TXM_EVENT_FLAGS_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_event_flags_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_INFO_GET_CALL:
|
case TXM_EVENT_FLAGS_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_event_flags_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_PERFORMANCE_INFO_GET_CALL:
|
case TXM_EVENT_FLAGS_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_event_flags_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_EVENT_FLAGS_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_event_flags_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_SET_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_SET_CALL:
|
case TXM_EVENT_FLAGS_SET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_set_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_event_flags_set_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_EVENT_FLAGS_SET_NOTIFY_CALL_NOT_USED
|
||||||
case TXM_EVENT_FLAGS_SET_NOTIFY_CALL:
|
case TXM_EVENT_FLAGS_SET_NOTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_event_flags_set_notify_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_event_flags_set_notify_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_CREATE_CALL_NOT_USED
|
||||||
case TXM_MUTEX_CREATE_CALL:
|
case TXM_MUTEX_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_mutex_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_DELETE_CALL_NOT_USED
|
||||||
case TXM_MUTEX_DELETE_CALL:
|
case TXM_MUTEX_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_mutex_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_GET_CALL_NOT_USED
|
||||||
case TXM_MUTEX_GET_CALL:
|
case TXM_MUTEX_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_get_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_mutex_get_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_MUTEX_INFO_GET_CALL:
|
case TXM_MUTEX_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_mutex_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_MUTEX_PERFORMANCE_INFO_GET_CALL:
|
case TXM_MUTEX_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_mutex_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_MUTEX_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_MUTEX_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_mutex_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_PRIORITIZE_CALL_NOT_USED
|
||||||
case TXM_MUTEX_PRIORITIZE_CALL:
|
case TXM_MUTEX_PRIORITIZE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_prioritize_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_mutex_prioritize_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MUTEX_PUT_CALL_NOT_USED
|
||||||
case TXM_MUTEX_PUT_CALL:
|
case TXM_MUTEX_PUT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_mutex_put_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_mutex_put_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_CREATE_CALL_NOT_USED
|
||||||
case TXM_QUEUE_CREATE_CALL:
|
case TXM_QUEUE_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_queue_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_DELETE_CALL_NOT_USED
|
||||||
case TXM_QUEUE_DELETE_CALL:
|
case TXM_QUEUE_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_queue_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_FLUSH_CALL_NOT_USED
|
||||||
case TXM_QUEUE_FLUSH_CALL:
|
case TXM_QUEUE_FLUSH_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_flush_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_queue_flush_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_FRONT_SEND_CALL_NOT_USED
|
||||||
case TXM_QUEUE_FRONT_SEND_CALL:
|
case TXM_QUEUE_FRONT_SEND_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_front_send_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_queue_front_send_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_QUEUE_INFO_GET_CALL:
|
case TXM_QUEUE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_queue_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_QUEUE_PERFORMANCE_INFO_GET_CALL:
|
case TXM_QUEUE_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_queue_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_QUEUE_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_QUEUE_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_queue_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_PRIORITIZE_CALL_NOT_USED
|
||||||
case TXM_QUEUE_PRIORITIZE_CALL:
|
case TXM_QUEUE_PRIORITIZE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_prioritize_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_queue_prioritize_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_RECEIVE_CALL_NOT_USED
|
||||||
case TXM_QUEUE_RECEIVE_CALL:
|
case TXM_QUEUE_RECEIVE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_receive_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_queue_receive_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_SEND_CALL_NOT_USED
|
||||||
case TXM_QUEUE_SEND_CALL:
|
case TXM_QUEUE_SEND_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_send_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_queue_send_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_QUEUE_SEND_NOTIFY_CALL_NOT_USED
|
||||||
case TXM_QUEUE_SEND_NOTIFY_CALL:
|
case TXM_QUEUE_SEND_NOTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_queue_send_notify_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_queue_send_notify_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_CEILING_PUT_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_CEILING_PUT_CALL:
|
case TXM_SEMAPHORE_CEILING_PUT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_ceiling_put_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_semaphore_ceiling_put_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_CREATE_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_CREATE_CALL:
|
case TXM_SEMAPHORE_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_semaphore_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_DELETE_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_DELETE_CALL:
|
case TXM_SEMAPHORE_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_semaphore_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_GET_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_GET_CALL:
|
case TXM_SEMAPHORE_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_get_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_semaphore_get_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_INFO_GET_CALL:
|
case TXM_SEMAPHORE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_semaphore_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_PERFORMANCE_INFO_GET_CALL:
|
case TXM_SEMAPHORE_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_semaphore_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_SEMAPHORE_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_semaphore_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_PRIORITIZE_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_PRIORITIZE_CALL:
|
case TXM_SEMAPHORE_PRIORITIZE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_prioritize_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_semaphore_prioritize_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_PUT_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_PUT_CALL:
|
case TXM_SEMAPHORE_PUT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_put_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_semaphore_put_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_SEMAPHORE_PUT_NOTIFY_CALL_NOT_USED
|
||||||
case TXM_SEMAPHORE_PUT_NOTIFY_CALL:
|
case TXM_SEMAPHORE_PUT_NOTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_semaphore_put_notify_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_semaphore_put_notify_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_CREATE_CALL_NOT_USED
|
||||||
case TXM_THREAD_CREATE_CALL:
|
case TXM_THREAD_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_thread_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_DELETE_CALL_NOT_USED
|
||||||
case TXM_THREAD_DELETE_CALL:
|
case TXM_THREAD_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_ENTRY_EXIT_NOTIFY_CALL_NOT_USED
|
||||||
case TXM_THREAD_ENTRY_EXIT_NOTIFY_CALL:
|
case TXM_THREAD_ENTRY_EXIT_NOTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_entry_exit_notify_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_tx_thread_entry_exit_notify_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_IDENTIFY_CALL_NOT_USED
|
||||||
case TXM_THREAD_IDENTIFY_CALL:
|
case TXM_THREAD_IDENTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_identify_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_thread_identify_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_THREAD_INFO_GET_CALL:
|
case TXM_THREAD_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_thread_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_INTERRUPT_CONTROL_CALL_NOT_USED
|
||||||
case TXM_THREAD_INTERRUPT_CONTROL_CALL:
|
case TXM_THREAD_INTERRUPT_CONTROL_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_interrupt_control_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_interrupt_control_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_THREAD_PERFORMANCE_INFO_GET_CALL:
|
case TXM_THREAD_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_thread_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_THREAD_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_THREAD_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_thread_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_PREEMPTION_CHANGE_CALL_NOT_USED
|
||||||
case TXM_THREAD_PREEMPTION_CHANGE_CALL:
|
case TXM_THREAD_PREEMPTION_CHANGE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_preemption_change_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_thread_preemption_change_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_PRIORITY_CHANGE_CALL_NOT_USED
|
||||||
case TXM_THREAD_PRIORITY_CHANGE_CALL:
|
case TXM_THREAD_PRIORITY_CHANGE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_priority_change_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_thread_priority_change_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_RELINQUISH_CALL_NOT_USED
|
||||||
case TXM_THREAD_RELINQUISH_CALL:
|
case TXM_THREAD_RELINQUISH_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_relinquish_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_thread_relinquish_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_RESET_CALL_NOT_USED
|
||||||
case TXM_THREAD_RESET_CALL:
|
case TXM_THREAD_RESET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_reset_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_reset_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_RESUME_CALL_NOT_USED
|
||||||
case TXM_THREAD_RESUME_CALL:
|
case TXM_THREAD_RESUME_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_resume_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_resume_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_SLEEP_CALL_NOT_USED
|
||||||
case TXM_THREAD_SLEEP_CALL:
|
case TXM_THREAD_SLEEP_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_sleep_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_sleep_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_STACK_ERROR_NOTIFY_CALL_NOT_USED
|
||||||
case TXM_THREAD_STACK_ERROR_NOTIFY_CALL:
|
case TXM_THREAD_STACK_ERROR_NOTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_stack_error_notify_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_stack_error_notify_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_SUSPEND_CALL_NOT_USED
|
||||||
case TXM_THREAD_SUSPEND_CALL:
|
case TXM_THREAD_SUSPEND_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_suspend_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_suspend_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_SYSTEM_SUSPEND_CALL_NOT_USED
|
||||||
case TXM_THREAD_SYSTEM_SUSPEND_CALL:
|
case TXM_THREAD_SYSTEM_SUSPEND_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_system_suspend_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_system_suspend_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_TERMINATE_CALL_NOT_USED
|
||||||
case TXM_THREAD_TERMINATE_CALL:
|
case TXM_THREAD_TERMINATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_terminate_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_terminate_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_TIME_SLICE_CHANGE_CALL_NOT_USED
|
||||||
case TXM_THREAD_TIME_SLICE_CHANGE_CALL:
|
case TXM_THREAD_TIME_SLICE_CHANGE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_time_slice_change_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_thread_time_slice_change_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_THREAD_WAIT_ABORT_CALL_NOT_USED
|
||||||
case TXM_THREAD_WAIT_ABORT_CALL:
|
case TXM_THREAD_WAIT_ABORT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_thread_wait_abort_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_thread_wait_abort_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIME_GET_CALL_NOT_USED
|
||||||
case TXM_TIME_GET_CALL:
|
case TXM_TIME_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_time_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_time_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIME_SET_CALL_NOT_USED
|
||||||
case TXM_TIME_SET_CALL:
|
case TXM_TIME_SET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_time_set_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_time_set_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_ACTIVATE_CALL_NOT_USED
|
||||||
case TXM_TIMER_ACTIVATE_CALL:
|
case TXM_TIMER_ACTIVATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_activate_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_timer_activate_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_CHANGE_CALL_NOT_USED
|
||||||
case TXM_TIMER_CHANGE_CALL:
|
case TXM_TIMER_CHANGE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_change_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_timer_change_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_CREATE_CALL_NOT_USED
|
||||||
case TXM_TIMER_CREATE_CALL:
|
case TXM_TIMER_CREATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_timer_create_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_DEACTIVATE_CALL_NOT_USED
|
||||||
case TXM_TIMER_DEACTIVATE_CALL:
|
case TXM_TIMER_DEACTIVATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_deactivate_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_timer_deactivate_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_DELETE_CALL_NOT_USED
|
||||||
case TXM_TIMER_DELETE_CALL:
|
case TXM_TIMER_DELETE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_delete_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_timer_delete_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_TIMER_INFO_GET_CALL:
|
case TXM_TIMER_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_timer_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_TIMER_PERFORMANCE_INFO_GET_CALL:
|
case TXM_TIMER_PERFORMANCE_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_timer_performance_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TIMER_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
case TXM_TIMER_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
case TXM_TIMER_PERFORMANCE_SYSTEM_INFO_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_timer_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_timer_performance_system_info_get_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_BUFFER_FULL_NOTIFY_CALL_NOT_USED
|
||||||
case TXM_TRACE_BUFFER_FULL_NOTIFY_CALL:
|
case TXM_TRACE_BUFFER_FULL_NOTIFY_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_buffer_full_notify_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_trace_buffer_full_notify_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_DISABLE_CALL_NOT_USED
|
||||||
case TXM_TRACE_DISABLE_CALL:
|
case TXM_TRACE_DISABLE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_disable_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_trace_disable_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_ENABLE_CALL_NOT_USED
|
||||||
case TXM_TRACE_ENABLE_CALL:
|
case TXM_TRACE_ENABLE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_enable_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_tx_trace_enable_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_EVENT_FILTER_CALL_NOT_USED
|
||||||
case TXM_TRACE_EVENT_FILTER_CALL:
|
case TXM_TRACE_EVENT_FILTER_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_event_filter_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_trace_event_filter_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_EVENT_UNFILTER_CALL_NOT_USED
|
||||||
case TXM_TRACE_EVENT_UNFILTER_CALL:
|
case TXM_TRACE_EVENT_UNFILTER_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_event_unfilter_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_trace_event_unfilter_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_INTERRUPT_CONTROL_CALL_NOT_USED
|
||||||
case TXM_TRACE_INTERRUPT_CONTROL_CALL:
|
case TXM_TRACE_INTERRUPT_CONTROL_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_interrupt_control_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_trace_interrupt_control_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_ISR_ENTER_INSERT_CALL_NOT_USED
|
||||||
case TXM_TRACE_ISR_ENTER_INSERT_CALL:
|
case TXM_TRACE_ISR_ENTER_INSERT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_isr_enter_insert_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_trace_isr_enter_insert_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_ISR_EXIT_INSERT_CALL_NOT_USED
|
||||||
case TXM_TRACE_ISR_EXIT_INSERT_CALL:
|
case TXM_TRACE_ISR_EXIT_INSERT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_isr_exit_insert_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_tx_trace_isr_exit_insert_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_TRACE_USER_EVENT_INSERT_CALL_NOT_USED
|
||||||
case TXM_TRACE_USER_EVENT_INSERT_CALL:
|
case TXM_TRACE_USER_EVENT_INSERT_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_tx_trace_user_event_insert_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_tx_trace_user_event_insert_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MODULE_OBJECT_ALLOCATE_CALL_NOT_USED
|
||||||
case TXM_MODULE_OBJECT_ALLOCATE_CALL:
|
case TXM_MODULE_OBJECT_ALLOCATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_txm_module_object_allocate_dispatch(module_instance, param_0, param_1);
|
return_value = _txm_module_manager_txm_module_object_allocate_dispatch(module_instance, param_0, param_1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MODULE_OBJECT_DEALLOCATE_CALL_NOT_USED
|
||||||
case TXM_MODULE_OBJECT_DEALLOCATE_CALL:
|
case TXM_MODULE_OBJECT_DEALLOCATE_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_txm_module_object_deallocate_dispatch(module_instance, param_0);
|
return_value = _txm_module_manager_txm_module_object_deallocate_dispatch(module_instance, param_0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MODULE_OBJECT_POINTER_GET_CALL_NOT_USED
|
||||||
case TXM_MODULE_OBJECT_POINTER_GET_CALL:
|
case TXM_MODULE_OBJECT_POINTER_GET_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_txm_module_object_pointer_get_dispatch(module_instance, param_0, param_1, param_2);
|
return_value = _txm_module_manager_txm_module_object_pointer_get_dispatch(module_instance, param_0, param_1, param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TXM_MODULE_OBJECT_POINTER_GET_EXTENDED_CALL_NOT_USED
|
||||||
case TXM_MODULE_OBJECT_POINTER_GET_EXTENDED_CALL:
|
case TXM_MODULE_OBJECT_POINTER_GET_EXTENDED_CALL:
|
||||||
{
|
{
|
||||||
return_value = _txm_module_manager_txm_module_object_pointer_get_extended_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
return_value = _txm_module_manager_txm_module_object_pointer_get_extended_dispatch(module_instance, param_0, param_1, (ALIGN_TYPE *) param_2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
#ifdef TXM_MODULE_PORT_DISPATCH
|
||||||
|
/* Is this a port-specific request? */
|
||||||
|
if ((kernel_request >= TXM_MODULE_PORT_EXTENSION_API_ID_START) && (kernel_request <= TXM_MODULE_PORT_EXTENSION_API_ID_END))
|
||||||
|
{
|
||||||
|
/* Yes, call the port-specific dispatcher. */
|
||||||
|
return_value = (ALIGN_TYPE) _txm_module_manager_port_dispatch(module_instance, kernel_request, param_0, param_1, param_2);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Determine if an application request is present. */
|
/* Determine if an application request is present. */
|
||||||
if (kernel_request >= TXM_APPLICATION_REQUEST_ID_BASE)
|
if (kernel_request >= TXM_APPLICATION_REQUEST_ID_BASE)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_start PORTABLE C */
|
/* _txm_module_manager_start PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.3 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -53,7 +53,6 @@
|
|||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_name_build Build module:thread name */
|
|
||||||
/* _txm_module_manager_thread_create Module thread create */
|
/* _txm_module_manager_thread_create Module thread create */
|
||||||
/* _tx_mutex_get Get protection mutex */
|
/* _tx_mutex_get Get protection mutex */
|
||||||
/* _tx_mutex_put Release protection mutex */
|
/* _tx_mutex_put Release protection mutex */
|
||||||
@@ -69,7 +68,9 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_manager_start(TXM_MODULE_INSTANCE *module_instance)
|
UINT _txm_module_manager_start(TXM_MODULE_INSTANCE *module_instance)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ extern UINT _txm_module_manager_usbx_stop(TXM_MODULE_INSTANCE *module_instance)
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_stop PORTABLE C */
|
/* _txm_module_manager_stop PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.5 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -108,7 +108,10 @@ extern UINT _txm_module_manager_usbx_stop(TXM_MODULE_INSTANCE *module_instance)
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 03-02-2021 Scott Larson Modified comments, fix */
|
||||||
|
/* object delete underflow, */
|
||||||
|
/* resulting in version 6.1.5 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_manager_stop(TXM_MODULE_INSTANCE *module_instance)
|
UINT _txm_module_manager_stop(TXM_MODULE_INSTANCE *module_instance)
|
||||||
@@ -531,9 +534,8 @@ TXM_MODULE_ALLOCATED_OBJECT *object_ptr;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Delete the allocated objects for this module. */
|
/* Delete the allocated objects for this module. */
|
||||||
while (module_instance -> txm_module_instance_object_list_count--)
|
while (module_instance -> txm_module_instance_object_list_count != 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Pickup the current object pointer. */
|
/* Pickup the current object pointer. */
|
||||||
object_ptr = module_instance -> txm_module_instance_object_list_head;
|
object_ptr = module_instance -> txm_module_instance_object_list_head;
|
||||||
|
|
||||||
@@ -542,6 +544,9 @@ TXM_MODULE_ALLOCATED_OBJECT *object_ptr;
|
|||||||
|
|
||||||
/* Release the object. */
|
/* Release the object. */
|
||||||
_tx_byte_release((VOID *) object_ptr);
|
_tx_byte_release((VOID *) object_ptr);
|
||||||
|
|
||||||
|
/* Decrement count. */
|
||||||
|
module_instance -> txm_module_instance_object_list_count--;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set the allocated list head pointer to NULL. */
|
/* Set the allocated list head pointer to NULL. */
|
||||||
|
|||||||
@@ -21,11 +21,15 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#define TX_SOURCE_CODE
|
#define TX_SOURCE_CODE
|
||||||
|
#define TX_THREAD_SMP_SOURCE_CODE
|
||||||
|
|
||||||
|
|
||||||
|
/* Include necessary system files. */
|
||||||
|
|
||||||
#include "tx_api.h"
|
#include "tx_api.h"
|
||||||
#include "tx_trace.h"
|
#include "tx_trace.h"
|
||||||
#include "tx_initialize.h"
|
|
||||||
#include "tx_thread.h"
|
#include "tx_thread.h"
|
||||||
|
#include "tx_initialize.h"
|
||||||
#include "tx_timer.h"
|
#include "tx_timer.h"
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
|
||||||
@@ -35,7 +39,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_thread_create PORTABLE C */
|
/* _txm_module_manager_thread_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.3 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -47,22 +51,22 @@
|
|||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Thread control block pointer */
|
/* thread_ptr Thread control block pointer */
|
||||||
/* name Pointer to thread name string */
|
/* name Pointer to thread name string */
|
||||||
/* shell_function Shell function of the thread */
|
/* shell_function Shell function of the thread */
|
||||||
/* entry_function Entry function of the thread */
|
/* entry_function Entry function of the thread */
|
||||||
/* entry_input 32-bit input value to thread */
|
/* entry_input 32-bit input value to thread */
|
||||||
/* stack_start Pointer to start of stack */
|
/* stack_start Pointer to start of stack */
|
||||||
/* stack_size Stack size in bytes */
|
/* stack_size Stack size in bytes */
|
||||||
/* priority Priority of thread */
|
/* priority Priority of thread */
|
||||||
/* (default 0-31) */
|
/* (default 0-31) */
|
||||||
/* preempt_threshold Preemption threshold */
|
/* preempt_threshold Preemption threshold */
|
||||||
/* time_slice Thread time-slice value */
|
/* time_slice Thread time-slice value */
|
||||||
/* auto_start Automatic start selection */
|
/* auto_start Automatic start selection */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* return status Thread create return status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
@@ -81,35 +85,41 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 Scott Larson Modified comment(s), */
|
||||||
|
/* fix stack overlap checking, */
|
||||||
|
/* added 64-bit support, */
|
||||||
|
/* added SMP support, */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_manager_thread_create(TX_THREAD *thread_ptr, CHAR *name, VOID (*shell_function)(TX_THREAD *, TXM_MODULE_INSTANCE *),
|
UINT _txm_module_manager_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr,
|
||||||
VOID (*entry_function)(ULONG), ULONG entry_input,
|
VOID (*shell_function)(TX_THREAD *, TXM_MODULE_INSTANCE *),
|
||||||
VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
|
VOID (*entry_function)(ULONG id), ULONG entry_input,
|
||||||
ULONG time_slice, UINT auto_start, UINT thread_control_block_size, TXM_MODULE_INSTANCE *module_instance)
|
VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
|
||||||
|
ULONG time_slice, UINT auto_start,
|
||||||
|
UINT thread_control_block_size, TXM_MODULE_INSTANCE *module_instance)
|
||||||
{
|
{
|
||||||
|
|
||||||
TX_INTERRUPT_SAVE_AREA
|
TX_INTERRUPT_SAVE_AREA
|
||||||
|
|
||||||
TX_THREAD *next_thread;
|
#ifdef TX_THREAD_SMP
|
||||||
TX_THREAD *previous_thread;
|
UINT core_index;
|
||||||
|
#endif
|
||||||
|
TX_THREAD *next_thread;
|
||||||
|
TX_THREAD *previous_thread;
|
||||||
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
||||||
TX_THREAD *saved_thread_ptr;
|
TX_THREAD *saved_thread_ptr;
|
||||||
UINT saved_threshold = 0;
|
UINT saved_threshold = ((UINT) 0);
|
||||||
#endif
|
#endif
|
||||||
|
UCHAR *temp_ptr;
|
||||||
#ifdef TX_ENABLE_STACK_CHECKING
|
#ifdef TX_ENABLE_STACK_CHECKING
|
||||||
ULONG new_stack_start;
|
ALIGN_TYPE new_stack_start;
|
||||||
#endif
|
ALIGN_TYPE updated_stack_start;
|
||||||
TXM_MODULE_THREAD_ENTRY_INFO *thread_entry_info;
|
|
||||||
VOID *stack_end;
|
|
||||||
ULONG i;
|
|
||||||
#ifndef TX_TIMER_PROCESS_IN_ISR
|
|
||||||
TX_THREAD *current_thread;
|
|
||||||
#endif
|
|
||||||
#if TXM_MODULE_MEMORY_PROTECTION
|
|
||||||
ULONG status;
|
|
||||||
#endif
|
#endif
|
||||||
|
TXM_MODULE_THREAD_ENTRY_INFO *thread_entry_info;
|
||||||
|
VOID *stack_end;
|
||||||
|
ULONG i;
|
||||||
|
|
||||||
/* First, check for an invalid thread pointer. */
|
/* First, check for an invalid thread pointer. */
|
||||||
if (thread_ptr == TX_NULL)
|
if (thread_ptr == TX_NULL)
|
||||||
@@ -150,37 +160,12 @@ ULONG status;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check the stack pointer to see if it overlaps with this thread's stack. */
|
/* Check the stack pointer to see if it overlaps with this thread's stack. */
|
||||||
|
if ((((UCHAR *) ((VOID *) stack_start)) <= ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_end))) &&
|
||||||
/*lint -e{946} suppress pointer comparison, since this is necessary. */
|
(((UCHAR *) ((VOID *) stack_end)) >= ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_start))))
|
||||||
if (((UCHAR *) ((VOID *) stack_start)) >= ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_start)))
|
|
||||||
{
|
{
|
||||||
|
/* Stacks overlap, clear the stack pointer to force a stack error below. */
|
||||||
/*lint -e{946} suppress pointer comparison, since this is necessary. */
|
stack_start = TX_NULL;
|
||||||
if (((UCHAR *) ((VOID *) stack_start)) < ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_end)))
|
break;
|
||||||
{
|
|
||||||
|
|
||||||
/* This stack overlaps with an existing thread, clear the stack pointer to
|
|
||||||
force a stack error below. */
|
|
||||||
stack_start = TX_NULL;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check the end of the stack to see if it is inside this thread's stack area as well. */
|
|
||||||
|
|
||||||
/*lint -e{946} suppress pointer comparison, since this is necessary. */
|
|
||||||
if (((UCHAR *) ((VOID *) stack_end)) >= ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_start)))
|
|
||||||
{
|
|
||||||
|
|
||||||
/*lint -e{946} suppress pointer comparison, since this is necessary. */
|
|
||||||
if (((UCHAR *) ((VOID *) stack_end)) < ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_end)))
|
|
||||||
{
|
|
||||||
|
|
||||||
/* This stack overlaps with an existing thread, clear the stack pointer to
|
|
||||||
force a stack error below. */
|
|
||||||
stack_start = TX_NULL;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move to the next thread. */
|
/* Move to the next thread. */
|
||||||
@@ -256,16 +241,19 @@ ULONG status;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef TX_TIMER_PROCESS_IN_ISR
|
#ifndef TX_TIMER_PROCESS_IN_ISR
|
||||||
|
|
||||||
/* Pickup thread pointer. */
|
|
||||||
TX_THREAD_GET_CURRENT(current_thread)
|
|
||||||
|
|
||||||
/* Check for invalid caller of this function. First check for a calling thread. */
|
|
||||||
if (current_thread == &_tx_timer_thread)
|
|
||||||
{
|
{
|
||||||
|
TX_THREAD *current_thread;
|
||||||
|
|
||||||
/* Invalid caller of this function, return appropriate error code. */
|
/* Pickup thread pointer. */
|
||||||
return(TX_CALLER_ERROR);
|
TX_THREAD_GET_CURRENT(current_thread)
|
||||||
|
|
||||||
|
/* Check for invalid caller of this function. First check for a calling thread. */
|
||||||
|
if (current_thread == &_tx_timer_thread)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Invalid caller of this function, return appropriate error code. */
|
||||||
|
return(TX_CALLER_ERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -295,21 +283,22 @@ ULONG status;
|
|||||||
/* Ensure that there are two ULONG of 0xEF patterns at the top and
|
/* Ensure that there are two ULONG of 0xEF patterns at the top and
|
||||||
bottom of the thread's stack. This will be used to check for stack
|
bottom of the thread's stack. This will be used to check for stack
|
||||||
overflow conditions during run-time. */
|
overflow conditions during run-time. */
|
||||||
stack_size = ((stack_size/sizeof(ULONG)) * sizeof(ULONG)) - sizeof(ULONG);
|
stack_size = ((stack_size/(sizeof(ULONG))) * (sizeof(ULONG))) - (sizeof(ULONG));
|
||||||
|
|
||||||
/* Ensure the starting stack address is evenly aligned. */
|
/* Ensure the starting stack address is evenly aligned. */
|
||||||
new_stack_start = ((((ULONG) stack_start) + (sizeof(ULONG) - 1) ) & (~(sizeof(ULONG) - 1)));
|
new_stack_start = TX_POINTER_TO_ALIGN_TYPE_CONVERT(stack_start);
|
||||||
|
updated_stack_start = ((((ULONG) new_stack_start) + ((sizeof(ULONG)) - ((ULONG) 1)) ) & (~((sizeof(ULONG)) - ((ULONG) 1))));
|
||||||
|
|
||||||
/* Determine if the starting stack address is different. */
|
/* Determine if the starting stack address is different. */
|
||||||
if (new_stack_start != ((ULONG) stack_start))
|
if (new_stack_start != updated_stack_start)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Yes, subtract another ULONG from the size to avoid going past the stack area. */
|
/* Yes, subtract another ULONG from the size to avoid going past the stack area. */
|
||||||
stack_size = stack_size - sizeof(ULONG);
|
stack_size = stack_size - (sizeof(ULONG));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update the starting stack pointer. */
|
/* Update the starting stack pointer. */
|
||||||
stack_start = (VOID *) new_stack_start;
|
stack_start = TX_ALIGN_TYPE_TO_POINTER_CONVERT(updated_stack_start);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Allocate the thread entry information at the top of thread's stack - Leaving one
|
/* Allocate the thread entry information at the top of thread's stack - Leaving one
|
||||||
@@ -326,6 +315,8 @@ ULONG status;
|
|||||||
/* If this is a memory protected module, allocate a kernel stack. */
|
/* If this is a memory protected module, allocate a kernel stack. */
|
||||||
if((module_instance -> txm_module_instance_property_flags) & TXM_MODULE_MEMORY_PROTECTION)
|
if((module_instance -> txm_module_instance_property_flags) & TXM_MODULE_MEMORY_PROTECTION)
|
||||||
{
|
{
|
||||||
|
ULONG status;
|
||||||
|
|
||||||
/* Allocate kernel stack space. */
|
/* Allocate kernel stack space. */
|
||||||
status = _txm_module_manager_object_allocate((VOID **) &(thread_ptr -> tx_thread_module_kernel_stack_start), TXM_MODULE_KERNEL_STACK_SIZE, module_instance);
|
status = _txm_module_manager_object_allocate((VOID **) &(thread_ptr -> tx_thread_module_kernel_stack_start), TXM_MODULE_KERNEL_STACK_SIZE, module_instance);
|
||||||
if(status)
|
if(status)
|
||||||
@@ -348,25 +339,51 @@ ULONG status;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Place the stack parameters into the thread's control block. */
|
/* Place the stack parameters into the thread's control block. */
|
||||||
thread_ptr -> tx_thread_module_stack_start = stack_start;
|
thread_ptr -> tx_thread_module_stack_start = stack_start;
|
||||||
thread_ptr -> tx_thread_module_stack_size = stack_size;
|
thread_ptr -> tx_thread_module_stack_size = stack_size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Place the supplied parameters into the thread's control block. */
|
/* Place the supplied parameters into the thread's control block. */
|
||||||
thread_ptr -> tx_thread_name = name;
|
thread_ptr -> tx_thread_name = name_ptr;
|
||||||
thread_ptr -> tx_thread_entry = entry_function;
|
thread_ptr -> tx_thread_entry = entry_function;
|
||||||
thread_ptr -> tx_thread_entry_parameter = entry_input;
|
thread_ptr -> tx_thread_entry_parameter = entry_input;
|
||||||
thread_ptr -> tx_thread_stack_start = stack_start;
|
thread_ptr -> tx_thread_stack_start = stack_start;
|
||||||
thread_ptr -> tx_thread_stack_size = stack_size;
|
thread_ptr -> tx_thread_stack_size = stack_size;
|
||||||
thread_ptr -> tx_thread_stack_end = (VOID *) (((UCHAR *) stack_start) + (stack_size-1));
|
thread_ptr -> tx_thread_priority = priority;
|
||||||
|
thread_ptr -> tx_thread_user_priority = priority;
|
||||||
|
thread_ptr -> tx_thread_time_slice = time_slice;
|
||||||
|
thread_ptr -> tx_thread_new_time_slice = time_slice;
|
||||||
|
thread_ptr -> tx_thread_inherit_priority = ((UINT) TX_MAX_PRIORITIES);
|
||||||
|
#ifdef TX_THREAD_SMP
|
||||||
|
thread_ptr -> tx_thread_smp_core_executing = ((UINT) TX_THREAD_SMP_MAX_CORES);
|
||||||
|
thread_ptr -> tx_thread_smp_cores_excluded = ((ULONG) 0);
|
||||||
|
#ifndef TX_THREAD_SMP_DYNAMIC_CORE_MAX
|
||||||
|
thread_ptr -> tx_thread_smp_cores_allowed = ((ULONG) TX_THREAD_SMP_CORE_MASK);
|
||||||
|
#else
|
||||||
|
thread_ptr -> tx_thread_smp_cores_allowed = (((ULONG) 1) << _tx_thread_smp_max_cores) - 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TX_THREAD_SMP_ONLY_CORE_0_DEFAULT
|
||||||
|
|
||||||
|
/* Default thread creation such that core0 is the only allowed core for execution, i.e., bit 1 is set to exclude core1. */
|
||||||
|
thread_ptr -> tx_thread_smp_cores_excluded = (TX_THREAD_SMP_CORE_MASK & 0xFFFFFFFE);
|
||||||
|
thread_ptr -> tx_thread_smp_cores_allowed = 1;
|
||||||
|
|
||||||
|
/* Default the timers to run on core 0 as well. */
|
||||||
|
thread_ptr -> tx_thread_timer.tx_timer_internal_smp_cores_excluded = (TX_THREAD_SMP_CORE_MASK & 0xFFFFFFFE);
|
||||||
|
|
||||||
|
/* Default the mapped to 0 too. */
|
||||||
|
thread_ptr -> tx_thread_smp_core_mapped = 0;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Calculate the end of the thread's stack area. */
|
||||||
|
temp_ptr = TX_VOID_TO_UCHAR_POINTER_CONVERT(stack_start);
|
||||||
|
temp_ptr = (TX_UCHAR_POINTER_ADD(temp_ptr, (stack_size - ((ULONG) 1))));
|
||||||
|
thread_ptr -> tx_thread_stack_end = TX_UCHAR_TO_VOID_POINTER_CONVERT(temp_ptr);
|
||||||
#if TXM_MODULE_MEMORY_PROTECTION
|
#if TXM_MODULE_MEMORY_PROTECTION
|
||||||
thread_ptr -> tx_thread_module_stack_end = thread_ptr -> tx_thread_stack_end;
|
thread_ptr -> tx_thread_module_stack_end = thread_ptr -> tx_thread_stack_end;
|
||||||
#endif
|
#endif /* TXM_MODULE_MEMORY_PROTECTION */
|
||||||
thread_ptr -> tx_thread_priority = priority;
|
|
||||||
thread_ptr -> tx_thread_user_priority = priority;
|
|
||||||
thread_ptr -> tx_thread_time_slice = time_slice;
|
|
||||||
thread_ptr -> tx_thread_new_time_slice = time_slice;
|
|
||||||
thread_ptr -> tx_thread_inherit_priority = TX_MAX_PRIORITIES;
|
|
||||||
|
|
||||||
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
||||||
|
|
||||||
@@ -381,8 +398,8 @@ ULONG status;
|
|||||||
|
|
||||||
/* Preemption-threshold specified. Since specific preemption-threshold is not supported,
|
/* Preemption-threshold specified. Since specific preemption-threshold is not supported,
|
||||||
disable all preemption. */
|
disable all preemption. */
|
||||||
thread_ptr -> tx_thread_preempt_threshold = 0;
|
thread_ptr -> tx_thread_preempt_threshold = ((UINT) 0);
|
||||||
thread_ptr -> tx_thread_user_preempt_threshold = 0;
|
thread_ptr -> tx_thread_user_preempt_threshold = ((UINT) 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -399,6 +416,9 @@ ULONG status;
|
|||||||
/* Setup the necessary fields in the thread timer block. */
|
/* Setup the necessary fields in the thread timer block. */
|
||||||
TX_THREAD_CREATE_TIMEOUT_SETUP(thread_ptr)
|
TX_THREAD_CREATE_TIMEOUT_SETUP(thread_ptr)
|
||||||
|
|
||||||
|
/* Perform any additional thread setup activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_INTERNAL_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
/* Setup pointer to the thread entry information structure, which will live at the top of each
|
/* Setup pointer to the thread entry information structure, which will live at the top of each
|
||||||
module thread's stack. This will allow the module thread entry function to avoid direct
|
module thread's stack. This will allow the module thread entry function to avoid direct
|
||||||
access to the actual thread control block. */
|
access to the actual thread control block. */
|
||||||
@@ -420,9 +440,9 @@ ULONG status;
|
|||||||
|
|
||||||
#ifndef TX_DISABLE_NOTIFY_CALLBACKS
|
#ifndef TX_DISABLE_NOTIFY_CALLBACKS
|
||||||
thread_entry_info -> txm_module_thread_entry_info_exit_notify = thread_ptr -> tx_thread_entry_exit_notify;
|
thread_entry_info -> txm_module_thread_entry_info_exit_notify = thread_ptr -> tx_thread_entry_exit_notify;
|
||||||
#else
|
#else /* TX_DISABLE_NOTIFY_CALLBACKS */
|
||||||
thread_entry_info -> txm_module_thread_entry_info_exit_notify = TX_NULL;
|
thread_entry_info -> txm_module_thread_entry_info_exit_notify = TX_NULL;
|
||||||
#endif
|
#endif /* TX_DISABLE_NOTIFY_CALLBACKS */
|
||||||
if (thread_ptr -> tx_thread_entry == module_instance -> txm_module_instance_start_thread_entry)
|
if (thread_ptr -> tx_thread_entry == module_instance -> txm_module_instance_start_thread_entry)
|
||||||
thread_entry_info -> txm_module_thread_entry_info_start_thread = TX_TRUE;
|
thread_entry_info -> txm_module_thread_entry_info_start_thread = TX_TRUE;
|
||||||
else
|
else
|
||||||
@@ -457,7 +477,7 @@ ULONG status;
|
|||||||
|
|
||||||
/* Place the thread on the list of created threads. First,
|
/* Place the thread on the list of created threads. First,
|
||||||
check for an empty list. */
|
check for an empty list. */
|
||||||
if (_tx_thread_created_count++ == 0)
|
if (_tx_thread_created_count == TX_EMPTY)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* The created thread list is empty. Add thread to empty list. */
|
/* The created thread list is empty. Add thread to empty list. */
|
||||||
@@ -481,11 +501,14 @@ ULONG status;
|
|||||||
thread_ptr -> tx_thread_created_next = next_thread;
|
thread_ptr -> tx_thread_created_next = next_thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Increment the thread created count. */
|
||||||
|
_tx_thread_created_count++;
|
||||||
|
|
||||||
/* If trace is enabled, register this object. */
|
/* If trace is enabled, register this object. */
|
||||||
TX_TRACE_OBJECT_REGISTER(TX_TRACE_OBJECT_TYPE_THREAD, thread_ptr, name, stack_start, stack_size)
|
TX_TRACE_OBJECT_REGISTER(TX_TRACE_OBJECT_TYPE_THREAD, thread_ptr, name_ptr, TX_POINTER_TO_ULONG_CONVERT(stack_start), stack_size)
|
||||||
|
|
||||||
/* If trace is enabled, insert this event into the trace buffer. */
|
/* If trace is enabled, insert this event into the trace buffer. */
|
||||||
TX_TRACE_IN_LINE_INSERT(TX_TRACE_THREAD_CREATE, thread_ptr, priority, stack_start, stack_size, TX_TRACE_THREAD_EVENTS)
|
TX_TRACE_IN_LINE_INSERT(TX_TRACE_THREAD_CREATE, thread_ptr, priority, TX_POINTER_TO_ULONG_CONVERT(stack_start), stack_size, TX_TRACE_THREAD_EVENTS)
|
||||||
|
|
||||||
/* Register thread in the thread array structure. */
|
/* Register thread in the thread array structure. */
|
||||||
TX_EL_THREAD_REGISTER(thread_ptr)
|
TX_EL_THREAD_REGISTER(thread_ptr)
|
||||||
@@ -493,13 +516,131 @@ ULONG status;
|
|||||||
/* Log this kernel call. */
|
/* Log this kernel call. */
|
||||||
TX_EL_THREAD_CREATE_INSERT
|
TX_EL_THREAD_CREATE_INSERT
|
||||||
|
|
||||||
|
#ifdef TX_THREAD_SMP
|
||||||
|
|
||||||
|
#ifndef TX_NOT_INTERRUPTABLE
|
||||||
|
|
||||||
|
/* Temporarily disable preemption. */
|
||||||
|
_tx_thread_preempt_disable++;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Determine if an automatic start was requested. If so, call the resume
|
/* Determine if an automatic start was requested. If so, call the resume
|
||||||
thread function and then check for a preemption condition. */
|
thread function and then check for a preemption condition. */
|
||||||
if (auto_start == TX_AUTO_START)
|
if (auto_start == TX_AUTO_START)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#ifdef TX_NOT_INTERRUPTABLE
|
||||||
|
|
||||||
|
/* Perform any additional activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
|
/* Resume the thread! */
|
||||||
|
_tx_thread_system_ni_resume(thread_ptr);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* Restore previous interrupt posture. */
|
||||||
|
TX_RESTORE
|
||||||
|
|
||||||
|
/* Perform any additional activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
|
/* Call the resume thread function to make this thread ready. */
|
||||||
|
_tx_thread_system_resume(thread_ptr);
|
||||||
|
|
||||||
|
/* Disable interrupts again. */
|
||||||
|
TX_DISABLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Determine if the execution list needs to be re-evaluated. */
|
||||||
|
if (_tx_thread_smp_current_state_get() >= TX_INITIALIZE_IN_PROGRESS)
|
||||||
|
{
|
||||||
|
|
||||||
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
||||||
|
|
||||||
|
/* Clear the preemption bit maps, since nothing has yet run during initialization. */
|
||||||
|
TX_MEMSET(_tx_thread_preempted_maps, 0, sizeof(_tx_thread_preempted_maps));
|
||||||
|
#if TX_MAX_PRIORITIES > 32
|
||||||
|
_tx_thread_preempted_map_active = ((ULONG) 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Clear the entry in the preempted thread list. */
|
||||||
|
_tx_thread_preemption_threshold_list[priority] = TX_NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Set the pointer to the thread currently with preemption-threshold set to NULL. */
|
||||||
|
_tx_thread_preemption__threshold_scheduled = TX_NULL;
|
||||||
|
|
||||||
|
#ifdef TX_THREAD_SMP_DEBUG_ENABLE
|
||||||
|
|
||||||
|
/* Debug entry. */
|
||||||
|
_tx_thread_smp_debug_entry_insert(12, 0, thread_ptr);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Get the core index. */
|
||||||
|
core_index = TX_SMP_CORE_ID;
|
||||||
|
|
||||||
|
/* Call the rebalance routine. This routine maps cores and ready threads. */
|
||||||
|
_tx_thread_smp_rebalance_execute_list(core_index);
|
||||||
|
|
||||||
|
#ifdef TX_THREAD_SMP_DEBUG_ENABLE
|
||||||
|
|
||||||
|
/* Debug entry. */
|
||||||
|
_tx_thread_smp_debug_entry_insert(13, 0, thread_ptr);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef TX_NOT_INTERRUPTABLE
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
#ifdef TX_NOT_INTERRUPTABLE
|
||||||
|
|
||||||
|
/* Perform any additional activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
|
||||||
|
/* Perform any additional activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
|
/* Disable interrupts. */
|
||||||
|
TX_DISABLE
|
||||||
|
|
||||||
|
/* Re-enable preemption. */
|
||||||
|
_tx_thread_preempt_disable--;
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
|
||||||
|
/* Check for preemption. */
|
||||||
|
_tx_thread_system_preempt_check();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* TX_THREAD_SMP */
|
||||||
|
|
||||||
|
#ifndef TX_NOT_INTERRUPTABLE
|
||||||
|
|
||||||
|
/* Temporarily disable preemption. */
|
||||||
|
_tx_thread_preempt_disable++;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Determine if an automatic start was requested. If so, call the resume
|
||||||
|
thread function and then check for a preemption condition. */
|
||||||
|
if (auto_start == TX_AUTO_START)
|
||||||
|
{
|
||||||
|
|
||||||
/* Determine if the create call is being called from initialization. */
|
/* Determine if the create call is being called from initialization. */
|
||||||
if (TX_THREAD_GET_SYSTEM_STATE() >= TX_INITIALIZE_IN_PROGRESS)
|
if (TX_THREAD_GET_SYSTEM_STATE() >= TX_INITIALIZE_IN_PROGRESS)
|
||||||
{
|
{
|
||||||
@@ -533,7 +674,6 @@ ULONG status;
|
|||||||
/* Simply set the saved thread pointer to NULL. */
|
/* Simply set the saved thread pointer to NULL. */
|
||||||
saved_thread_ptr = TX_NULL;
|
saved_thread_ptr = TX_NULL;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef TX_NOT_INTERRUPTABLE
|
#ifdef TX_NOT_INTERRUPTABLE
|
||||||
|
|
||||||
@@ -547,9 +687,6 @@ ULONG status;
|
|||||||
TX_RESTORE
|
TX_RESTORE
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Temporarily disable preemption. */
|
|
||||||
_tx_thread_preempt_disable++;
|
|
||||||
|
|
||||||
/* Restore previous interrupt posture. */
|
/* Restore previous interrupt posture. */
|
||||||
TX_RESTORE
|
TX_RESTORE
|
||||||
|
|
||||||
@@ -560,8 +697,6 @@ ULONG status;
|
|||||||
_tx_thread_system_resume(thread_ptr);
|
_tx_thread_system_resume(thread_ptr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef TX_DISABLE_PREEMPTION_THRESHOLD
|
|
||||||
|
|
||||||
/* Determine if the thread's preemption-threshold needs to be restored. */
|
/* Determine if the thread's preemption-threshold needs to be restored. */
|
||||||
if (saved_thread_ptr != TX_NULL)
|
if (saved_thread_ptr != TX_NULL)
|
||||||
{
|
{
|
||||||
@@ -570,14 +705,40 @@ ULONG status;
|
|||||||
can only happen if this routine is called from initialization. */
|
can only happen if this routine is called from initialization. */
|
||||||
saved_thread_ptr -> tx_thread_preempt_threshold = saved_threshold;
|
saved_thread_ptr -> tx_thread_preempt_threshold = saved_threshold;
|
||||||
}
|
}
|
||||||
#endif
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
/* Interrupts are already restored, simply return success. */
|
#ifdef TX_NOT_INTERRUPTABLE
|
||||||
return(TX_SUCCESS);
|
|
||||||
|
/* Perform any additional activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
|
||||||
|
/* Perform any additional activities for tool or user purpose. */
|
||||||
|
TX_THREAD_CREATE_EXTENSION(thread_ptr)
|
||||||
|
|
||||||
|
/* Disable interrupts. */
|
||||||
|
TX_DISABLE
|
||||||
|
|
||||||
|
/* Re-enable preemption. */
|
||||||
|
_tx_thread_preempt_disable--;
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
|
||||||
|
/* Check for preemption. */
|
||||||
|
_tx_thread_system_preempt_check();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Restore interrupts. */
|
#endif /* TX_THREAD_SMP */
|
||||||
TX_RESTORE
|
|
||||||
|
|
||||||
/* Return success. */
|
/* Return success. */
|
||||||
return(TX_SUCCESS);
|
return(TX_SUCCESS);
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_api.h PORTABLE SMP */
|
/* tx_api.h PORTABLE SMP */
|
||||||
/* 6.1.1 */
|
/* 6.1.6 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -43,10 +43,21 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
/* 10-16-2020 William E. Lamie Modified comment(s), and */
|
/* 10-16-2020 William E. Lamie Modified comment(s), and */
|
||||||
/* increased patch version, */
|
/* increased patch version, */
|
||||||
/* resulting in version 6.1.1 */
|
/* resulting in version 6.1.1 */
|
||||||
|
/* 12-31-2020 William E. Lamie Modified comment(s), and */
|
||||||
|
/* increased patch version, */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
|
/* 03-02-2021 Scott Larson Modified comment(s), and */
|
||||||
|
/* order defines numerically, */
|
||||||
|
/* add option to remove FileX */
|
||||||
|
/* pointer, fix whitespace, */
|
||||||
|
/* resulting in version 6.1.5 */
|
||||||
|
/* 04-02-2021 Scott Larson Modified comment(s), and */
|
||||||
|
/* update patch number, */
|
||||||
|
/* resulting in version 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -86,7 +97,7 @@ extern "C" {
|
|||||||
#define AZURE_RTOS_THREADX
|
#define AZURE_RTOS_THREADX
|
||||||
#define THREADX_MAJOR_VERSION 6
|
#define THREADX_MAJOR_VERSION 6
|
||||||
#define THREADX_MINOR_VERSION 1
|
#define THREADX_MINOR_VERSION 1
|
||||||
#define THREADX_PATCH_VERSION 1
|
#define THREADX_PATCH_VERSION 6
|
||||||
|
|
||||||
/* Define the following symbol for backward compatibility */
|
/* Define the following symbol for backward compatibility */
|
||||||
#define EL_PRODUCT_THREADX
|
#define EL_PRODUCT_THREADX
|
||||||
@@ -147,7 +158,6 @@ extern "C" {
|
|||||||
|
|
||||||
#define TX_SUCCESS ((UINT) 0x00)
|
#define TX_SUCCESS ((UINT) 0x00)
|
||||||
#define TX_DELETED ((UINT) 0x01)
|
#define TX_DELETED ((UINT) 0x01)
|
||||||
#define TX_NO_MEMORY ((UINT) 0x10)
|
|
||||||
#define TX_POOL_ERROR ((UINT) 0x02)
|
#define TX_POOL_ERROR ((UINT) 0x02)
|
||||||
#define TX_PTR_ERROR ((UINT) 0x03)
|
#define TX_PTR_ERROR ((UINT) 0x03)
|
||||||
#define TX_WAIT_ERROR ((UINT) 0x04)
|
#define TX_WAIT_ERROR ((UINT) 0x04)
|
||||||
@@ -162,6 +172,7 @@ extern "C" {
|
|||||||
#define TX_NO_INSTANCE ((UINT) 0x0D)
|
#define TX_NO_INSTANCE ((UINT) 0x0D)
|
||||||
#define TX_THREAD_ERROR ((UINT) 0x0E)
|
#define TX_THREAD_ERROR ((UINT) 0x0E)
|
||||||
#define TX_PRIORITY_ERROR ((UINT) 0x0F)
|
#define TX_PRIORITY_ERROR ((UINT) 0x0F)
|
||||||
|
#define TX_NO_MEMORY ((UINT) 0x10)
|
||||||
#define TX_START_ERROR ((UINT) 0x10)
|
#define TX_START_ERROR ((UINT) 0x10)
|
||||||
#define TX_DELETE_ERROR ((UINT) 0x11)
|
#define TX_DELETE_ERROR ((UINT) 0x11)
|
||||||
#define TX_RESUME_ERROR ((UINT) 0x12)
|
#define TX_RESUME_ERROR ((UINT) 0x12)
|
||||||
@@ -446,7 +457,9 @@ typedef struct TX_THREAD_STRUCT
|
|||||||
/************* End of ThreadX SMP thread control block extensions. *************/
|
/************* End of ThreadX SMP thread control block extensions. *************/
|
||||||
|
|
||||||
/* Define a pointer type for FileX extensions. */
|
/* Define a pointer type for FileX extensions. */
|
||||||
|
#ifndef TX_NO_FILEX_POINTER
|
||||||
VOID *tx_thread_filex_ptr;
|
VOID *tx_thread_filex_ptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define the priority inheritance variables. These will be used
|
/* Define the priority inheritance variables. These will be used
|
||||||
to manage priority inheritance changes applied to this thread
|
to manage priority inheritance changes applied to this thread
|
||||||
@@ -1181,7 +1194,6 @@ UINT _tx_el_interrupt_control(UINT new_posture);
|
|||||||
|
|
||||||
#ifdef TX_ENABLE_MULTI_ERROR_CHECKING
|
#ifdef TX_ENABLE_MULTI_ERROR_CHECKING
|
||||||
|
|
||||||
|
|
||||||
/* Services with MULTI runtime error checking ThreadX. */
|
/* Services with MULTI runtime error checking ThreadX. */
|
||||||
|
|
||||||
#define tx_block_allocate _txr_block_allocate
|
#define tx_block_allocate _txr_block_allocate
|
||||||
@@ -1739,7 +1751,6 @@ UINT _tx_trace_user_event_insert(ULONG event_id, ULONG info_field_1, ULON
|
|||||||
UINT _tx_trace_interrupt_control(UINT new_posture);
|
UINT _tx_trace_interrupt_control(UINT new_posture);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Add a default macro that can be re-defined in tx_port.h to add default processing when a thread starts. Common usage
|
/* Add a default macro that can be re-defined in tx_port.h to add default processing when a thread starts. Common usage
|
||||||
would be for enabling floating point for a thread by default, however, the additional processing could be anything
|
would be for enabling floating point for a thread by default, however, the additional processing could be anything
|
||||||
defined in tx_port.h. */
|
defined in tx_port.h. */
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_user.h PORTABLE C */
|
/* tx_user.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.5 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -44,7 +44,11 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
/* 03-02-2021 Scott Larson Modified comment(s), */
|
||||||
|
/* added option to remove */
|
||||||
|
/* FileX pointer, */
|
||||||
|
/* resulting in version 6.1.5 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -74,6 +78,7 @@
|
|||||||
TX_DISABLE_PREEMPTION_THRESHOLD
|
TX_DISABLE_PREEMPTION_THRESHOLD
|
||||||
TX_DISABLE_REDUNDANT_CLEARING
|
TX_DISABLE_REDUNDANT_CLEARING
|
||||||
TX_DISABLE_NOTIFY_CALLBACKS
|
TX_DISABLE_NOTIFY_CALLBACKS
|
||||||
|
TX_NO_FILEX_POINTER
|
||||||
TX_NOT_INTERRUPTABLE
|
TX_NOT_INTERRUPTABLE
|
||||||
TX_TIMER_PROCESS_IN_ISR
|
TX_TIMER_PROCESS_IN_ISR
|
||||||
|
|
||||||
@@ -96,6 +101,16 @@
|
|||||||
#define TX_TIMER_THREAD_PRIORITY ????
|
#define TX_TIMER_THREAD_PRIORITY ????
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Determine if there is a FileX pointer in the thread control block.
|
||||||
|
By default, the pointer is there for legacy/backwards compatibility.
|
||||||
|
The pointer must also be there for applications using FileX.
|
||||||
|
Define this to save space in the thread control block.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
#define TX_NO_FILEX_POINTER
|
||||||
|
*/
|
||||||
|
|
||||||
/* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls
|
/* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls
|
||||||
should be processed within the a system timer thread or directly in the timer ISR.
|
should be processed within the a system timer thread or directly in the timer ISR.
|
||||||
By default, the timer thread is used. When the following is defined, the timer expiration
|
By default, the timer thread is used. When the following is defined, the timer expiration
|
||||||
@@ -153,7 +168,7 @@
|
|||||||
processing when not needed. The user will also have to comment out the call to
|
processing when not needed. The user will also have to comment out the call to
|
||||||
tx_timer_interrupt, which is typically made from assembly language in
|
tx_timer_interrupt, which is typically made from assembly language in
|
||||||
tx_initialize_low_level. Note: if TX_NO_TIMER is used, the define TX_TIMER_PROCESS_IN_ISR
|
tx_initialize_low_level. Note: if TX_NO_TIMER is used, the define TX_TIMER_PROCESS_IN_ISR
|
||||||
must also be used. */
|
must also be used and tx_timer_initialize must be removed from ThreadX library. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define TX_NO_TIMER
|
#define TX_NO_TIMER
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_create PORTABLE SMP */
|
/* _tx_thread_create PORTABLE SMP */
|
||||||
/* 6.1 */
|
/* 6.1.3 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -81,9 +81,12 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 Andres Mlinar Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG id), ULONG entry_input,
|
UINT _tx_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr,
|
||||||
|
VOID (*entry_function)(ULONG id), ULONG entry_input,
|
||||||
VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
|
VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
|
||||||
ULONG time_slice, UINT auto_start)
|
ULONG time_slice, UINT auto_start)
|
||||||
{
|
{
|
||||||
@@ -135,7 +138,7 @@ ALIGN_TYPE updated_stack_start;
|
|||||||
list. */
|
list. */
|
||||||
|
|
||||||
/* Initialize thread control block to all zeros. */
|
/* Initialize thread control block to all zeros. */
|
||||||
TX_MEMSET(thread_ptr, 0, (sizeof(TX_THREAD)));
|
TX_MEMSET(thread_ptr, 0, sizeof(TX_THREAD));
|
||||||
|
|
||||||
/* Place the supplied parameters into the thread's control block. */
|
/* Place the supplied parameters into the thread's control block. */
|
||||||
thread_ptr -> tx_thread_name = name_ptr;
|
thread_ptr -> tx_thread_name = name_ptr;
|
||||||
@@ -377,7 +380,7 @@ ALIGN_TYPE updated_stack_start;
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Always return a success. */
|
/* Return success. */
|
||||||
return(TX_SUCCESS);
|
return(TX_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_smp_high_level_initialize PORTABLE SMP */
|
/* _tx_thread_smp_high_level_initialize PORTABLE SMP */
|
||||||
/* 6.1 */
|
/* 6.1.3 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -69,6 +69,10 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 William E. Lamie Modified comments, added */
|
||||||
|
/* cast to address a MISRA */
|
||||||
|
/* compliant issue, */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
void _tx_thread_smp_high_level_initialize(void)
|
void _tx_thread_smp_high_level_initialize(void)
|
||||||
@@ -95,7 +99,7 @@ void _tx_thread_smp_high_level_initialize(void)
|
|||||||
TX_MEMSET(&_tx_thread_smp_protect_wait_list[0], 0xff, sizeof(_tx_thread_smp_protect_wait_list));
|
TX_MEMSET(&_tx_thread_smp_protect_wait_list[0], 0xff, sizeof(_tx_thread_smp_protect_wait_list));
|
||||||
|
|
||||||
/* Set the wait list size so we can access it from assembly functions. */
|
/* Set the wait list size so we can access it from assembly functions. */
|
||||||
_tx_thread_smp_protect_wait_list_size = TX_THREAD_SMP_PROTECT_WAIT_LIST_SIZE;
|
_tx_thread_smp_protect_wait_list_size = ((ULONG) TX_THREAD_SMP_PROTECT_WAIT_LIST_SIZE);
|
||||||
|
|
||||||
#ifndef TX_THREAD_SMP_DYNAMIC_CORE_MAX
|
#ifndef TX_THREAD_SMP_DYNAMIC_CORE_MAX
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
/* Include necessary system files. */
|
/* Include necessary system files. */
|
||||||
|
|
||||||
#include "tx_api.h"
|
#include "tx_api.h"
|
||||||
#ifdef TX_MISRA_ENABLE
|
|
||||||
#include "tx_trace.h"
|
#include "tx_trace.h"
|
||||||
#include "tx_timer.h"
|
#include "tx_timer.h"
|
||||||
|
|
||||||
@@ -36,7 +35,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_time_get PORTABLE C */
|
/* _tx_time_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.3 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -67,6 +66,8 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
/* 12-31-2020 Andres Mlinar Modified comment(s), */
|
||||||
|
/* resulting in version 6.1.3 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
ULONG _tx_time_get(VOID)
|
ULONG _tx_time_get(VOID)
|
||||||
@@ -98,5 +99,4 @@ ULONG temp_time;
|
|||||||
/* Return the time. */
|
/* Return the time. */
|
||||||
return(temp_time);
|
return(temp_time);
|
||||||
}
|
}
|
||||||
#endif /* TX_MISRA_ENABLE */
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARCv2_EM/MetaWare */
|
/* tx_port.h ARCv2_EM/MetaWare */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -288,7 +291,7 @@ ULONG _tx_misra_time_stamp_get(VOID);
|
|||||||
macros. */
|
macros. */
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA register unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA register UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _clri();
|
#define TX_DISABLE interrupt_save = _clri();
|
||||||
#define TX_RESTORE _seti(interrupt_save);
|
#define TX_RESTORE _seti(interrupt_save);
|
||||||
@@ -308,7 +311,7 @@ ULONG _tx_misra_time_stamp_get(VOID);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARCv2_EM/MetaWare Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARCv2_EM/MetaWare Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
#ifdef TX_MISRA_ENABLE
|
#ifdef TX_MISRA_ENABLE
|
||||||
extern CHAR _tx_version_id[100];
|
extern CHAR _tx_version_id[100];
|
||||||
|
|||||||
@@ -209,6 +209,18 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
tx_initialize_low_level.s Modified comments
|
||||||
|
tx_thread_context_restore.s r25/r30 are caller saved
|
||||||
|
tx_thread_context_save.s r25/r30 are caller saved
|
||||||
|
tx_thread_interrupt_control.s Modified comments
|
||||||
|
tx_thread_schedule.s fixed interrupt priority overwritting bug,
|
||||||
|
and fixed hardware stack checker disable and reenable logic
|
||||||
|
tx_thread_stack_build.s Modified comments
|
||||||
|
tx_thread_system_return.s Modified comments
|
||||||
|
tx_timer_interrupt.s remove unneeded load of _tx_thread_preempt_disable
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 for ARCv2 EM using MetaWare tools.
|
09-30-2020 Initial ThreadX 6.1 for ARCv2 EM using MetaWare tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,12 +18,12 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
.equ IRQ_SELECT, 0x40B
|
.equ IRQ_SELECT, 0x40B
|
||||||
.equ KSTACK_TOP, 0x264
|
.equ KSTACK_TOP, 0x264
|
||||||
.equ KSTACK_BASE, 0x265
|
.equ KSTACK_BASE, 0x265
|
||||||
.equ STATUS32_SC, 0x4000
|
.equ STATUS32_SC, 0x4000
|
||||||
;
|
|
||||||
;
|
;
|
||||||
; /* Define section for placement after all linker allocated RAM memory. This
|
; /* Define section for placement after all linker allocated RAM memory. This
|
||||||
; is used to calculate the first free address that is passed to
|
; is used to calculate the first free address that is passed to
|
||||||
@@ -53,15 +52,14 @@ _tx_system_stack_top_address:
|
|||||||
.global _tx_system_stack_base_address
|
.global _tx_system_stack_base_address
|
||||||
_tx_system_stack_base_address:
|
_tx_system_stack_base_address:
|
||||||
.space 4
|
.space 4
|
||||||
;
|
|
||||||
;
|
|
||||||
.text
|
.text
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
|
;/* _tx_initialize_low_level ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -95,6 +93,8 @@ _tx_system_stack_base_address:
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comments, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_initialize_low_level(VOID)
|
;VOID _tx_initialize_low_level(VOID)
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,28 +19,18 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
.equ BTA, 0x412
|
.equ BTA, 0x412
|
||||||
.equ KSTACK_TOP, 0x264
|
.equ KSTACK_TOP, 0x264
|
||||||
.equ KSTACK_BASE, 0x265
|
.equ KSTACK_BASE, 0x265
|
||||||
.equ STATUS32_SC, 0x4000
|
.equ STATUS32_SC, 0x4000
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;#include "tx_timer.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_thread_context_restore ARCv2_EM/MetaWare */
|
;/* _tx_thread_context_restore ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -73,6 +63,9 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comment(s), and */
|
||||||
|
;/* r25/r30 are caller saved, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_thread_context_restore(VOID)
|
;VOID _tx_thread_context_restore(VOID)
|
||||||
@@ -128,6 +121,7 @@ __tx_thread_nested_restore:
|
|||||||
ld r59, [sp, 144] ; Recover r59
|
ld r59, [sp, 144] ; Recover r59
|
||||||
.endif
|
.endif
|
||||||
ld blink, [sp, 16] ; Recover blink
|
ld blink, [sp, 16] ; Recover blink
|
||||||
|
ld r25, [sp, 32] ; Recover r25
|
||||||
ld r12, [sp, 84] ; Recover r12
|
ld r12, [sp, 84] ; Recover r12
|
||||||
ld r11, [sp, 88] ; Recover r11
|
ld r11, [sp, 88] ; Recover r11
|
||||||
ld r10, [sp, 92] ; Recover r10
|
ld r10, [sp, 92] ; Recover r10
|
||||||
@@ -140,7 +134,8 @@ __tx_thread_nested_restore:
|
|||||||
ld r3, [sp, 120] ; Recover r3
|
ld r3, [sp, 120] ; Recover r3
|
||||||
ld r2, [sp, 124] ; Recover r2
|
ld r2, [sp, 124] ; Recover r2
|
||||||
ld r1, [sp, 128] ; Recover r1
|
ld r1, [sp, 128] ; Recover r1
|
||||||
ld r0, [sp, 132] ; Recover r0
|
ld r0, [sp, 132] ; Recover r0
|
||||||
|
ld r30, [sp, 136] ; Recover r30
|
||||||
add sp, sp, 160 ; Recover interrupt stack frame
|
add sp, sp, 160 ; Recover interrupt stack frame
|
||||||
rtie ; Return from interrupt
|
rtie ; Return from interrupt
|
||||||
;
|
;
|
||||||
@@ -207,6 +202,7 @@ __tx_thread_no_preempt_restore:
|
|||||||
ld r59, [sp, 144] ; Recover r59
|
ld r59, [sp, 144] ; Recover r59
|
||||||
.endif
|
.endif
|
||||||
ld blink, [sp, 16] ; Recover blink
|
ld blink, [sp, 16] ; Recover blink
|
||||||
|
ld r25, [sp, 32] ; Recover r25
|
||||||
ld r12, [sp, 84] ; Recover r12
|
ld r12, [sp, 84] ; Recover r12
|
||||||
ld r11, [sp, 88] ; Recover r11
|
ld r11, [sp, 88] ; Recover r11
|
||||||
ld r10, [sp, 92] ; Recover r10
|
ld r10, [sp, 92] ; Recover r10
|
||||||
@@ -220,6 +216,7 @@ __tx_thread_no_preempt_restore:
|
|||||||
ld r2, [sp, 124] ; Recover r2
|
ld r2, [sp, 124] ; Recover r2
|
||||||
ld r1, [sp, 128] ; Recover r1
|
ld r1, [sp, 128] ; Recover r1
|
||||||
ld r0, [sp, 132] ; Recover r0
|
ld r0, [sp, 132] ; Recover r0
|
||||||
|
ld r30, [sp, 136] ; Recover r30
|
||||||
add sp, sp, 160 ; Recover interrupt stack frame
|
add sp, sp, 160 ; Recover interrupt stack frame
|
||||||
rtie ; Return from interrupt
|
rtie ; Return from interrupt
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,28 +18,18 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
.equ BTA, 0x412
|
.equ BTA, 0x412
|
||||||
.equ KSTACK_TOP, 0x264
|
.equ KSTACK_TOP, 0x264
|
||||||
.equ KSTACK_BASE, 0x265
|
.equ KSTACK_BASE, 0x265
|
||||||
.equ STATUS32_SC, 0x4000
|
.equ STATUS32_SC, 0x4000
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;#include "tx_timer.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_thread_context_save ARCv2_EM/MetaWare */
|
;/* _tx_thread_context_save ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -72,6 +61,9 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comment(s), and */
|
||||||
|
;/* r25/r30 are caller saved, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_thread_context_save(VOID)
|
;VOID _tx_thread_context_save(VOID)
|
||||||
@@ -106,6 +98,8 @@ _tx_thread_context_save:
|
|||||||
; calling ISR. */
|
; calling ISR. */
|
||||||
;
|
;
|
||||||
__tx_thread_nested_save: ; Label is for special nested interrupt case from idle system save below
|
__tx_thread_nested_save: ; Label is for special nested interrupt case from idle system save below
|
||||||
|
st r30, [sp, 136] ; Save r30
|
||||||
|
st r25, [sp, 32] ; Save r25
|
||||||
st r12, [sp, 84] ; Save r12
|
st r12, [sp, 84] ; Save r12
|
||||||
st r11, [sp, 88] ; Save r11
|
st r11, [sp, 88] ; Save r11
|
||||||
st r10, [sp, 92] ; Save r10
|
st r10, [sp, 92] ; Save r10
|
||||||
@@ -114,7 +108,7 @@ __tx_thread_nested_save: ; Label is for special n
|
|||||||
st r7, [sp, 104] ; Save r7
|
st r7, [sp, 104] ; Save r7
|
||||||
st r6, [sp, 108] ; Save r6
|
st r6, [sp, 108] ; Save r6
|
||||||
st r5, [sp, 112] ; Save r5
|
st r5, [sp, 112] ; Save r5
|
||||||
st r4, [sp, 116] ; Save r6
|
st r4, [sp, 116] ; Save r4
|
||||||
lr r10, [LP_START] ; Pickup LP_START
|
lr r10, [LP_START] ; Pickup LP_START
|
||||||
lr r9, [LP_END] ; Pickup LP_END
|
lr r9, [LP_END] ; Pickup LP_END
|
||||||
st LP_COUNT, [sp, 12] ; Save LP_COUNT
|
st LP_COUNT, [sp, 12] ; Save LP_COUNT
|
||||||
@@ -156,6 +150,8 @@ __tx_thread_not_nested_save:
|
|||||||
add r0, r0, 1 ; Increment the nested interrupt count
|
add r0, r0, 1 ; Increment the nested interrupt count
|
||||||
st r0, [gp, _tx_thread_system_state@sda] ; Update system state
|
st r0, [gp, _tx_thread_system_state@sda] ; Update system state
|
||||||
ld r1, [gp, _tx_thread_current_ptr@sda] ; Pickup current thread pointer
|
ld r1, [gp, _tx_thread_current_ptr@sda] ; Pickup current thread pointer
|
||||||
|
st r30, [sp, 136] ; Save r30
|
||||||
|
st r25, [sp, 32] ; Save r25
|
||||||
st r12, [sp, 84] ; Save r12
|
st r12, [sp, 84] ; Save r12
|
||||||
st r11, [sp, 88] ; Save r11
|
st r11, [sp, 88] ; Save r11
|
||||||
breq r1, 0, __tx_thread_idle_system_save ; If no thread is running, idle system was
|
breq r1, 0, __tx_thread_idle_system_save ; If no thread is running, idle system was
|
||||||
@@ -247,7 +243,9 @@ __tx_thread_idle_system_save:
|
|||||||
lr r0, [AUX_IRQ_ACT] ; Pickup the interrupt active register
|
lr r0, [AUX_IRQ_ACT] ; Pickup the interrupt active register
|
||||||
neg r1, r0 ; Negate
|
neg r1, r0 ; Negate
|
||||||
and r1, r0, r1 ; See if there are any other interrupts present
|
and r1, r0, r1 ; See if there are any other interrupts present
|
||||||
brne r0, r1, __tx_thread_nested_save ; If more interrupts, go into the nested interrupt save logic
|
breq r0, r1, __tx_thread_not_nested
|
||||||
|
j __tx_thread_nested_save ; If more interrupts, go into the nested interrupt save logic
|
||||||
|
__tx_thread_not_nested:
|
||||||
;
|
;
|
||||||
; /* Not much to do here, just adjust the stack pointer, and return to
|
; /* Not much to do here, just adjust the stack pointer, and return to
|
||||||
; ISR processing. */
|
; ISR processing. */
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,22 +18,13 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_thread_interrupt_control ARCv2_EM/MetaWare */
|
;/* _tx_thread_interrupt_control ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -65,6 +55,8 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comments, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;UINT _tx_thread_interrupt_control(UINT new_posture)
|
;UINT _tx_thread_interrupt_control(UINT new_posture)
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,29 +18,18 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
;
|
|
||||||
.equ BTA, 0x412
|
.equ BTA, 0x412
|
||||||
.equ KSTACK_TOP, 0x264
|
.equ KSTACK_TOP, 0x264
|
||||||
.equ KSTACK_BASE, 0x265
|
.equ KSTACK_BASE, 0x265
|
||||||
.equ STATUS32_SC, 0x4000
|
.equ STATUS32_SC, 0x4000
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;#include "tx_timer.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_thread_schedule ARCv2_EM/MetaWare */
|
;/* _tx_thread_schedule ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -75,6 +63,12 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comment(s), and */
|
||||||
|
;/* fixed interrupt priority */
|
||||||
|
;/* overwritting bug, and */
|
||||||
|
;/* fixed hardware stack checker*/
|
||||||
|
;/* disable and reenable logic, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_thread_schedule(VOID)
|
;VOID _tx_thread_schedule(VOID)
|
||||||
@@ -85,8 +79,13 @@ _tx_thread_schedule:
|
|||||||
;
|
;
|
||||||
; /* Enable interrupts. */
|
; /* Enable interrupts. */
|
||||||
;
|
;
|
||||||
mov r0, 0x1F ; Build enable interrupt value
|
seti 0 ; Enable interrupts without changing threshold level
|
||||||
seti r0 ; Enable interrupts
|
|
||||||
|
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||||
|
lr r2, [status32] ; Pickup current STATUS32
|
||||||
|
and r2, r2, ~STATUS32_SC ; Clear the hardware stack checking enable bit (SC)
|
||||||
|
kflag r2 ; Disable hardware stack checking
|
||||||
|
.endif
|
||||||
;
|
;
|
||||||
; /* Wait for a thread to execute. */
|
; /* Wait for a thread to execute. */
|
||||||
; do
|
; do
|
||||||
@@ -118,16 +117,6 @@ __tx_thread_schedule_loop:
|
|||||||
ld r4, [r0, 24] ; Pickup time-slice for this thread
|
ld r4, [r0, 24] ; Pickup time-slice for this thread
|
||||||
add r3, r3, 1 ; Increment run counter
|
add r3, r3, 1 ; Increment run counter
|
||||||
st r3, [r0, 4] ; Store the new run counter
|
st r3, [r0, 4] ; Store the new run counter
|
||||||
|
|
||||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
|
||||||
lr r2, [status32] ; Pickup current STATUS32
|
|
||||||
and r2, r2, ~STATUS32_SC ; Clear the hardware stack checking enable bit (SC)
|
|
||||||
kflag r2 ; Disable hardware stack checking
|
|
||||||
ld r3, [r0, 12] ; Pickup the top of the thread's stack (lowest address)
|
|
||||||
sr r3, [KSTACK_TOP] ; Setup KSTACK_TOP
|
|
||||||
ld r3, [r0, 16] ; Pickup the base of the thread's stack (highest address)
|
|
||||||
sr r3, [KSTACK_BASE] ; Setup KSTACK_BASE
|
|
||||||
.endif
|
|
||||||
;
|
;
|
||||||
; /* Setup time-slice, if present. */
|
; /* Setup time-slice, if present. */
|
||||||
; _tx_timer_time_slice = _tx_thread_current_ptr -> tx_thread_time_slice;
|
; _tx_timer_time_slice = _tx_thread_current_ptr -> tx_thread_time_slice;
|
||||||
@@ -135,6 +124,10 @@ __tx_thread_schedule_loop:
|
|||||||
ld sp, [r0, 8] ; Switch to thread's stack
|
ld sp, [r0, 8] ; Switch to thread's stack
|
||||||
|
|
||||||
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
.ifdef TX_ENABLE_HW_STACK_CHECKING
|
||||||
|
ld r3, [r0, 12] ; Pickup the top of the thread's stack (lowest address)
|
||||||
|
sr r3, [KSTACK_TOP] ; Setup KSTACK_TOP
|
||||||
|
ld r3, [r0, 16] ; Pickup the base of the thread's stack (highest address)
|
||||||
|
sr r3, [KSTACK_BASE] ; Setup KSTACK_BASE
|
||||||
or r2, r2, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
or r2, r2, STATUS32_SC ; Or in hardware stack checking enable bit (SC)
|
||||||
kflag r2 ; Enable hardware stack checking
|
kflag r2 ; Enable hardware stack checking
|
||||||
.endif
|
.endif
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,27 +18,16 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
.equ LONG_ALIGN_MASK, 0xFFFFFFFC
|
.equ LONG_ALIGN_MASK, 0xFFFFFFFC
|
||||||
.equ INT_ENABLE_BITS, 0x8000001E
|
.equ INT_ENABLE_BITS, 0x8000001E
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_thread_stack_build ARCv2_EM/MetaWare */
|
;/* _tx_thread_stack_build ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -72,6 +60,8 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comments, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
|
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,26 +18,17 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
.equ KSTACK_TOP, 0x264
|
.equ KSTACK_TOP, 0x264
|
||||||
.equ KSTACK_BASE, 0x265
|
.equ KSTACK_BASE, 0x265
|
||||||
.equ STATUS32_SC, 0x4000
|
.equ STATUS32_SC, 0x4000
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;#include "tx_timer.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_thread_system_return ARCv2_EM/MetaWare */
|
;/* _tx_thread_system_return ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.6 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -71,6 +61,8 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 04-02-2021 Andres Mlinar Modified comments, */
|
||||||
|
;/* resulting in version 6.1.6 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_thread_system_return(VOID)
|
;VOID _tx_thread_system_return(VOID)
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
;/* and in the root directory of this software. */
|
;/* and in the root directory of this software. */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/** */
|
;/** */
|
||||||
@@ -19,23 +18,13 @@
|
|||||||
;/** */
|
;/** */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;
|
|
||||||
;#define TX_SOURCE_CODE
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/* Include necessary system files. */
|
|
||||||
;
|
|
||||||
;#include "tx_api.h"
|
|
||||||
;#include "tx_timer.h"
|
|
||||||
;#include "tx_thread.h"
|
|
||||||
;
|
|
||||||
;
|
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;/* */
|
;/* */
|
||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_timer_interrupt ARCv2_EM/MetaWare */
|
;/* _tx_timer_interrupt ARCv2_EM/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.3 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -72,6 +61,10 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 12-31-2020 Scott Larson Modified comment(s), remove */
|
||||||
|
;/* unneeded load of */
|
||||||
|
;/* _tx_thread_preempt_disable, */
|
||||||
|
;/* resulting in version 6.1.3 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_timer_interrupt(VOID)
|
;VOID _tx_timer_interrupt(VOID)
|
||||||
@@ -187,7 +180,6 @@ __tx_something_expired:
|
|||||||
; {
|
; {
|
||||||
;
|
;
|
||||||
ld r2, [gp, _tx_timer_expired@sda] ; Pickup timer expired flag
|
ld r2, [gp, _tx_timer_expired@sda] ; Pickup timer expired flag
|
||||||
ld r4, [gp, _tx_thread_preempt_disable@sda] ; Pickup preempt disable
|
|
||||||
breq r2, 0, __tx_timer_dont_activate ; If not set, skip expiration processing
|
breq r2, 0, __tx_timer_dont_activate ; If not set, skip expiration processing
|
||||||
;
|
;
|
||||||
; /* Process the timer expiration. */
|
; /* Process the timer expiration. */
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARC_HS/MetaWare */
|
/* tx_port.h ARC_HS/MetaWare */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -288,7 +291,7 @@ ULONG _tx_misra_time_stamp_get(VOID);
|
|||||||
macros. */
|
macros. */
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA register unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA register UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _clri();
|
#define TX_DISABLE interrupt_save = _clri();
|
||||||
#define TX_RESTORE _seti(interrupt_save);
|
#define TX_RESTORE _seti(interrupt_save);
|
||||||
@@ -322,7 +325,7 @@ VOID tx_thread_register_bank_assign(VOID *thread_ptr, UINT register_bank);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARC_HS/MetaWare Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARC_HS/MetaWare Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
#ifdef TX_MISRA_ENABLE
|
#ifdef TX_MISRA_ENABLE
|
||||||
extern CHAR _tx_version_id[100];
|
extern CHAR _tx_version_id[100];
|
||||||
|
|||||||
@@ -241,6 +241,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 for ARC HS using MetaWare tools.
|
09-30-2020 Initial ThreadX 6.1 for ARC HS using MetaWare tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
;/* FUNCTION RELEASE */
|
;/* FUNCTION RELEASE */
|
||||||
;/* */
|
;/* */
|
||||||
;/* _tx_timer_interrupt ARC_HS/MetaWare */
|
;/* _tx_timer_interrupt ARC_HS/MetaWare */
|
||||||
;/* 6.1 */
|
;/* 6.1.3 */
|
||||||
;/* AUTHOR */
|
;/* AUTHOR */
|
||||||
;/* */
|
;/* */
|
||||||
;/* William E. Lamie, Microsoft Corporation */
|
;/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -72,6 +72,10 @@
|
|||||||
;/* DATE NAME DESCRIPTION */
|
;/* DATE NAME DESCRIPTION */
|
||||||
;/* */
|
;/* */
|
||||||
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
;/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
||||||
|
;/* 12-31-2020 Scott Larson Modified comment(s), remove */
|
||||||
|
;/* unneeded load of */
|
||||||
|
;/* _tx_thread_preempt_disable, */
|
||||||
|
;/* resulting in version 6.1.3 */
|
||||||
;/* */
|
;/* */
|
||||||
;/**************************************************************************/
|
;/**************************************************************************/
|
||||||
;VOID _tx_timer_interrupt(VOID)
|
;VOID _tx_timer_interrupt(VOID)
|
||||||
@@ -187,7 +191,6 @@ __tx_something_expired:
|
|||||||
; {
|
; {
|
||||||
;
|
;
|
||||||
ld r2, [gp, _tx_timer_expired@sda] ; Pickup timer expired flag
|
ld r2, [gp, _tx_timer_expired@sda] ; Pickup timer expired flag
|
||||||
ld r4, [gp, _tx_thread_preempt_disable@sda] ; Pickup preempt disable
|
|
||||||
breq r2, 0, __tx_timer_dont_activate ; If not set, skip expiration processing
|
breq r2, 0, __tx_timer_dont_activate ; If not set, skip expiration processing
|
||||||
;
|
;
|
||||||
; /* Process the timer expiration. */
|
; /* Process the timer expiration. */
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARM11/AC5 */
|
/* tx_port.h ARM11/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -265,7 +268,7 @@ typedef unsigned short USHORT;
|
|||||||
|
|
||||||
#ifndef __thumb
|
#ifndef __thumb
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA register unsigned int interrupt_save_disabled;
|
#define TX_INTERRUPT_SAVE_AREA register UINT interrupt_save_disabled;
|
||||||
|
|
||||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||||
|
|
||||||
@@ -296,7 +299,7 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
@@ -317,7 +320,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/AC5 Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/AC5 Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -524,6 +524,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for Cortex-A5 using AC5 tools.
|
09-30-2020 Initial ThreadX 6.1 version for Cortex-A5 using AC5 tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARM11/GNU */
|
/* tx_port.h ARM11/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -272,14 +275,14 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save, tx_temp;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save, tx_temp;
|
||||||
|
|
||||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||||
#define TX_DISABLE asm volatile (" MRS %0,CPSR; ORR %1,%0,#0xC0; MSR CPSR_cxsf,%1 ": "=r" (interrupt_save), "=r" (tx_temp) );
|
#define TX_DISABLE asm volatile (" MRS %0,CPSR; ORR %1,%0,#0xC0; MSR CPSR_cxsf,%1 ": "=r" (interrupt_save), "=r" (tx_temp) );
|
||||||
@@ -306,7 +309,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/GNU Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/GNU Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -486,6 +486,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for ARM11 using GNU tools.
|
09-30-2020 Initial ThreadX 6.1 version for ARM11 using GNU tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,535 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace>
|
|
||||||
<ConfigDictionary>
|
|
||||||
<CurrentConfigs>
|
|
||||||
<Project>sample_threadx/Debug</Project>
|
|
||||||
<Project>tx/Debug</Project>
|
|
||||||
</CurrentConfigs>
|
|
||||||
<CurrentProj>sample_threadx</CurrentProj>
|
|
||||||
<OverviewSelected>1</OverviewSelected>
|
|
||||||
</ConfigDictionary>
|
|
||||||
<WindowStorage>
|
|
||||||
<Desktop>
|
|
||||||
<IarPane-34048>
|
|
||||||
<ColumnWidth0>21</ColumnWidth0>
|
|
||||||
<ColumnWidth1>2518</ColumnWidth1>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34048>
|
|
||||||
<IarPane-34049>
|
|
||||||
<ToolBarCmdIds>
|
|
||||||
<item>34001</item>
|
|
||||||
<item>0</item>
|
|
||||||
</ToolBarCmdIds>
|
|
||||||
</IarPane-34049>
|
|
||||||
<IarPane-34050>
|
|
||||||
<ToolBarCmdIds>
|
|
||||||
<item>57600</item>
|
|
||||||
<item>57601</item>
|
|
||||||
<item>57603</item>
|
|
||||||
<item>33024</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>57607</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>57635</item>
|
|
||||||
<item>57634</item>
|
|
||||||
<item>57637</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>57643</item>
|
|
||||||
<item>57644</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>33090</item>
|
|
||||||
<item>33057</item>
|
|
||||||
<item>57636</item>
|
|
||||||
<item>57640</item>
|
|
||||||
<item>57641</item>
|
|
||||||
<item>33026</item>
|
|
||||||
<item>33065</item>
|
|
||||||
<item>33063</item>
|
|
||||||
<item>33064</item>
|
|
||||||
<item>33053</item>
|
|
||||||
<item>33054</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>33035</item>
|
|
||||||
<item>33036</item>
|
|
||||||
<item>34399</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>33038</item>
|
|
||||||
<item>33039</item>
|
|
||||||
<item>0</item>
|
|
||||||
</ToolBarCmdIds>
|
|
||||||
</IarPane-34050>
|
|
||||||
<IarPane-34065>
|
|
||||||
<ColumnWidths>
|
|
||||||
<Column0>359</Column0>
|
|
||||||
<Column1>30</Column1>
|
|
||||||
<Column2>30</Column2>
|
|
||||||
<Column3>30</Column3>
|
|
||||||
</ColumnWidths>
|
|
||||||
<NodeDict>
|
|
||||||
<ExpandedNode><ws></ExpandedNode>
|
|
||||||
</NodeDict>
|
|
||||||
</IarPane-34065>
|
|
||||||
<ControlBarVersion>
|
|
||||||
<Major>14</Major>
|
|
||||||
<Minor>26</Minor>
|
|
||||||
</ControlBarVersion>
|
|
||||||
<MFCToolBarParameters>
|
|
||||||
<Tooltips>1</Tooltips>
|
|
||||||
<ShortcutKeys>1</ShortcutKeys>
|
|
||||||
<LargeIcons>0</LargeIcons>
|
|
||||||
<MenuAnimation>0</MenuAnimation>
|
|
||||||
<RecentlyUsedMenus>1</RecentlyUsedMenus>
|
|
||||||
<MenuShadows>1</MenuShadows>
|
|
||||||
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
|
|
||||||
<CommandsUsage>010000000D002596000001000000108600000B0000000C8100000300000004860000010000001781000002000000148100000100000003E10000010000000E81000001000000E980000001000000118600000A00000046810000020000000D81000001000000E880000001000000</CommandsUsage>
|
|
||||||
</MFCToolBarParameters>
|
|
||||||
<CommandManager>
|
|
||||||
<CommandsWithoutImages>0F000D8400000F84000008840000FFFFFFFF54840000328100001C81000009840000818400007D8400008284000083840000848400000E84000030840000</CommandsWithoutImages>
|
|
||||||
<MenuUserImages>0400048400004C000000068400004E0000000B8100001B0000000D8100001D000000</MenuUserImages>
|
|
||||||
</CommandManager>
|
|
||||||
<Pane-59393>
|
|
||||||
<ID>0</ID>
|
|
||||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000004E050000000A000061050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-59393>
|
|
||||||
<BasePane-59393>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-59393>
|
|
||||||
<Pane-34051>
|
|
||||||
<ID>34051</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34051>
|
|
||||||
<BasePane-34051>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34051>
|
|
||||||
<IarPane-34051 />
|
|
||||||
<Pane--1>
|
|
||||||
<ID>4294967295</ID>
|
|
||||||
<RectRecentFloat>0000000082040000000A000065050000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000006B040000000A00004E050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane--1>
|
|
||||||
<BasePane--1>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane--1>
|
|
||||||
<Pane-34052>
|
|
||||||
<ID>34052</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34052>
|
|
||||||
<BasePane-34052>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34052>
|
|
||||||
<IarPane-34052>
|
|
||||||
<ColumnWidth0>24</ColumnWidth0>
|
|
||||||
<ColumnWidth1>1880</ColumnWidth1>
|
|
||||||
<ColumnWidth2>501</ColumnWidth2>
|
|
||||||
<ColumnWidth3>125</ColumnWidth3>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile>C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\BuildLog.log</LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34052>
|
|
||||||
<Pane-34048>
|
|
||||||
<ID>34048</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34048>
|
|
||||||
<BasePane-34048>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34048>
|
|
||||||
<Pane-34056>
|
|
||||||
<ID>34056</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34056>
|
|
||||||
<BasePane-34056>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34056>
|
|
||||||
<IarPane-34056>
|
|
||||||
<ColumnWidth0>891</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1528</ColumnWidth2>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34056>
|
|
||||||
<Pane-34057>
|
|
||||||
<ID>34057</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34057>
|
|
||||||
<BasePane-34057>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34057>
|
|
||||||
<IarPane-34057>
|
|
||||||
<ColumnWidth0>891</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1528</ColumnWidth2>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34057>
|
|
||||||
<Pane-34058>
|
|
||||||
<ID>34058</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34058>
|
|
||||||
<BasePane-34058>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34058>
|
|
||||||
<IarPane-34058>
|
|
||||||
<ColumnWidth0>764</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1146</ColumnWidth2>
|
|
||||||
<ColumnWidth3>509</ColumnWidth3>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34058>
|
|
||||||
<Pane-34059>
|
|
||||||
<ID>34059</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34059>
|
|
||||||
<BasePane-34059>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34059>
|
|
||||||
<IarPane-34059>
|
|
||||||
<ColumnWidth0>891</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1528</ColumnWidth2>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34059>
|
|
||||||
<Pane-34062>
|
|
||||||
<ID>34062</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000083040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34062>
|
|
||||||
<BasePane-34062>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34062>
|
|
||||||
<IarPane-34062>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34062>
|
|
||||||
<Pane-34053>
|
|
||||||
<ID>34053</ID>
|
|
||||||
<RectRecentFloat>000000001700000080020000A8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>00000000000000008002000091000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34053>
|
|
||||||
<BasePane-34053>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34053>
|
|
||||||
<IarPane-34053>
|
|
||||||
<cg_type>
|
|
||||||
<item>2</item>
|
|
||||||
</cg_type>
|
|
||||||
<cg_symbol>
|
|
||||||
<item></item>
|
|
||||||
</cg_symbol>
|
|
||||||
<cg_user>
|
|
||||||
<item></item>
|
|
||||||
</cg_user>
|
|
||||||
<cg_display>
|
|
||||||
<item><Right-click on a symbol in the editor to show a call graph></item>
|
|
||||||
</cg_display>
|
|
||||||
<cg_def_file>
|
|
||||||
<item></item>
|
|
||||||
</cg_def_file>
|
|
||||||
<cg_def_line>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_def_line>
|
|
||||||
<cg_def_col>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_def_col>
|
|
||||||
<cg_call_file>
|
|
||||||
<item></item>
|
|
||||||
</cg_call_file>
|
|
||||||
<cg_call_line>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_call_line>
|
|
||||||
<cg_call_col>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_call_col>
|
|
||||||
<col-names>
|
|
||||||
<item>File</item>
|
|
||||||
<item>Function</item>
|
|
||||||
<item>Line</item>
|
|
||||||
</col-names>
|
|
||||||
<col-widths>
|
|
||||||
<item>200</item>
|
|
||||||
<item>700</item>
|
|
||||||
<item>100</item>
|
|
||||||
</col-widths>
|
|
||||||
</IarPane-34053>
|
|
||||||
<Pane-34054>
|
|
||||||
<ID>34054</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34054>
|
|
||||||
<BasePane-34054>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34054>
|
|
||||||
<IarPane-34054 />
|
|
||||||
<Pane-34055>
|
|
||||||
<ID>34055</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34055>
|
|
||||||
<BasePane-34055>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34055>
|
|
||||||
<IarPane-34055>
|
|
||||||
<col-names>
|
|
||||||
<item>Check</item>
|
|
||||||
<item>File</item>
|
|
||||||
<item>Line</item>
|
|
||||||
<item>Message</item>
|
|
||||||
<item>Severity</item>
|
|
||||||
</col-names>
|
|
||||||
<col-widths>
|
|
||||||
<item>200</item>
|
|
||||||
<item>200</item>
|
|
||||||
<item>100</item>
|
|
||||||
<item>500</item>
|
|
||||||
<item>100</item>
|
|
||||||
</col-widths>
|
|
||||||
</IarPane-34055>
|
|
||||||
<Pane-34060>
|
|
||||||
<ID>34060</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34060>
|
|
||||||
<BasePane-34060>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34060>
|
|
||||||
<IarPane-34060>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile>$WS_DIR/SourceBrowseLog.log</LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34060>
|
|
||||||
<Pane-34061>
|
|
||||||
<ID>34061</ID>
|
|
||||||
<RectRecentFloat>000000001700000080020000A8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>00000000000000008002000091000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34061>
|
|
||||||
<BasePane-34061>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34061>
|
|
||||||
<IarPane-34061>
|
|
||||||
<SB_FileFilter>
|
|
||||||
<item>2</item>
|
|
||||||
</SB_FileFilter>
|
|
||||||
<SB_TypeFilter>
|
|
||||||
<item>0</item>
|
|
||||||
</SB_TypeFilter>
|
|
||||||
<SB_SBW_File>
|
|
||||||
<item>C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\Debug\Obj\sample_threadx.pbw</item>
|
|
||||||
</SB_SBW_File>
|
|
||||||
<col-names>
|
|
||||||
<item>File</item>
|
|
||||||
<item>Name</item>
|
|
||||||
<item>Scope</item>
|
|
||||||
<item>Symbol type</item>
|
|
||||||
</col-names>
|
|
||||||
<col-widths>
|
|
||||||
<item>300</item>
|
|
||||||
<item>300</item>
|
|
||||||
<item>300</item>
|
|
||||||
<item>300</item>
|
|
||||||
</col-widths>
|
|
||||||
</IarPane-34061>
|
|
||||||
<Pane-34063>
|
|
||||||
<ID>34063</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34063>
|
|
||||||
<BasePane-34063>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34063>
|
|
||||||
<IarPane-34063 />
|
|
||||||
<Pane-34064>
|
|
||||||
<ID>34064</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34064>
|
|
||||||
<BasePane-34064>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34064>
|
|
||||||
<IarPane-34064 />
|
|
||||||
<Pane-34065>
|
|
||||||
<ID>34065</ID>
|
|
||||||
<RectRecentFloat>00000000170000000601000078010000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0000000032000000AF01000067040000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34065>
|
|
||||||
<BasePane-34065>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34065>
|
|
||||||
<DockingManager-256>
|
|
||||||
<DockingPaneAndPaneDividers>0000000014000000000000000010000001000000FFFFFFFFFFFFFFFFAF01000032000000B301000067040000010000000200001004000000010000005DFFFFFFBD080000118500000000000000000000000000000000000001000000118500000100000011850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000108500000000000000000000000000000000000001000000108500000100000010850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF0000000067040000000A00006B040000010000000100001004000000010000009EFBFFFF6F000000FFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E6500800000010000000000000082040000000A000065050000000000006B040000000A00004E050000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers>
|
|
||||||
</DockingManager-256>
|
|
||||||
<MFCToolBar-34049>
|
|
||||||
<Name>CMSIS-Pack</Name>
|
|
||||||
<Buttons>00200000010000000100FFFF01001100434D4643546F6F6C426172427574746F6ED1840000000000000C000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF0A43004D005300490053002D005000610063006B0018000000</Buttons>
|
|
||||||
</MFCToolBar-34049>
|
|
||||||
<Pane-34049>
|
|
||||||
<ID>34049</ID>
|
|
||||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>FE020000000000002C0300001A000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>8192</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>24</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34049>
|
|
||||||
<BasePane-34049>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34049>
|
|
||||||
<MFCToolBar-34050>
|
|
||||||
<Name>Main</Name>
|
|
||||||
<Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01000D005061737465436F6D626F426F784281000000000400FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons>
|
|
||||||
</MFCToolBar-34050>
|
|
||||||
<Pane-34050>
|
|
||||||
<ID>34050</ID>
|
|
||||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0000000000000000FE0200001A000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>8192</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>744</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34050>
|
|
||||||
<BasePane-34050>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34050>
|
|
||||||
</Desktop>
|
|
||||||
<ChildIdMap>
|
|
||||||
<WIN_DEBUG_LOG>34048</WIN_DEBUG_LOG>
|
|
||||||
<TB_CMSISPACK>34049</TB_CMSISPACK>
|
|
||||||
<TB_MAIN2>34050</TB_MAIN2>
|
|
||||||
<WIN_BREAKPOINTS>34051</WIN_BREAKPOINTS>
|
|
||||||
<WIN_BUILD>34052</WIN_BUILD>
|
|
||||||
<WIN_CALL_GRAPH>34053</WIN_CALL_GRAPH>
|
|
||||||
<WIN_CUSTOM_SFR>34054</WIN_CUSTOM_SFR>
|
|
||||||
<WIN_C_STAT>34055</WIN_C_STAT>
|
|
||||||
<WIN_FIND_ALL_DECLARATIONS>34056</WIN_FIND_ALL_DECLARATIONS>
|
|
||||||
<WIN_FIND_ALL_REFERENCES>34057</WIN_FIND_ALL_REFERENCES>
|
|
||||||
<WIN_FIND_IN_FILES>34058</WIN_FIND_IN_FILES>
|
|
||||||
<WIN_SELECT_AMBIGUOUS_DEFINITIONS>34059</WIN_SELECT_AMBIGUOUS_DEFINITIONS>
|
|
||||||
<WIN_SOURCEBROWSE_LOG>34060</WIN_SOURCEBROWSE_LOG>
|
|
||||||
<WIN_SOURCE_BROWSE2>34061</WIN_SOURCE_BROWSE2>
|
|
||||||
<WIN_TOOL_OUTPUT>34062</WIN_TOOL_OUTPUT>
|
|
||||||
<WIN_TS_INTERRUPT_AVAILABLE>34063</WIN_TS_INTERRUPT_AVAILABLE>
|
|
||||||
<WIN_TS_INTERRUPT_CONFIG>34064</WIN_TS_INTERRUPT_CONFIG>
|
|
||||||
<WIN_WORKSPACE>34065</WIN_WORKSPACE>
|
|
||||||
</ChildIdMap>
|
|
||||||
<MDIWindows>
|
|
||||||
<MDIClientArea-0>
|
|
||||||
<MDITabsState>01000000030000000100000000000000000000000100000001000000FFFFFFFF00000000010000000100000000000000280000002800000000000000</MDITabsState>
|
|
||||||
</MDIClientArea-0>
|
|
||||||
</MDIWindows>
|
|
||||||
</WindowStorage>
|
|
||||||
</Workspace>
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
@REM This batch file has been generated by the IAR Embedded Workbench
|
|
||||||
@REM C-SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
@REM the cspybat command line utility using the appropriate settings.
|
|
||||||
@REM
|
|
||||||
@REM Note that this file is generated every time a new debug session
|
|
||||||
@REM is initialized, so you may want to move or rename the file before
|
|
||||||
@REM making changes.
|
|
||||||
@REM
|
|
||||||
@REM You can launch cspybat by typing the name of this batch file followed
|
|
||||||
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
|
|
||||||
@REM
|
|
||||||
@REM Read about available command line parameters in the C-SPY Debugging
|
|
||||||
@REM Guide. Hints about additional command line parameters that may be
|
|
||||||
@REM useful in specific cases:
|
|
||||||
@REM --download_only Downloads a code image without starting a debug
|
|
||||||
@REM session afterwards.
|
|
||||||
@REM --silent Omits the sign-on message.
|
|
||||||
@REM --timeout Limits the maximum allowed execution time.
|
|
||||||
@REM
|
|
||||||
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
|
|
||||||
if not "%~1" == "" goto debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
:end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
param([String]$debugfile = "");
|
|
||||||
|
|
||||||
# This powershell file has been generated by the IAR Embedded Workbench
|
|
||||||
# C - SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
# the cspybat command line utility using the appropriate settings.
|
|
||||||
#
|
|
||||||
# Note that this file is generated every time a new debug session
|
|
||||||
# is initialized, so you may want to move or rename the file before
|
|
||||||
# making changes.
|
|
||||||
#
|
|
||||||
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
|
|
||||||
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
|
|
||||||
#
|
|
||||||
# Read about available command line parameters in the C - SPY Debugging
|
|
||||||
# Guide. Hints about additional command line parameters that may be
|
|
||||||
# useful in specific cases :
|
|
||||||
# --download_only Downloads a code image without starting a debug
|
|
||||||
# session afterwards.
|
|
||||||
# --silent Omits the sign - on message.
|
|
||||||
# --timeout Limits the maximum allowed execution time.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
if ($debugfile -eq "")
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
"--endian=little"
|
|
||||||
|
|
||||||
"--cpu=ARM1136J-S"
|
|
||||||
|
|
||||||
"--fpu=None"
|
|
||||||
|
|
||||||
"--semihosting"
|
|
||||||
|
|
||||||
"--multicore_nr_of_cores=1"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armproc.dll"
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armsim2.dll"
|
|
||||||
|
|
||||||
"C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm11\iar\example_build\Debug\Exe\sample_threadx.out"
|
|
||||||
|
|
||||||
--plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armbat.dll"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<crun>
|
|
||||||
<version>1</version>
|
|
||||||
<filter_entries>
|
|
||||||
<filter index="0" type="default">
|
|
||||||
<type>*</type>
|
|
||||||
<start_file>*</start_file>
|
|
||||||
<end_file>*</end_file>
|
|
||||||
<action_debugger>0</action_debugger>
|
|
||||||
<action_log>1</action_log>
|
|
||||||
</filter>
|
|
||||||
</filter_entries>
|
|
||||||
</crun>
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,99 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<settings>
|
|
||||||
<Stack>
|
|
||||||
<FillEnabled>0</FillEnabled>
|
|
||||||
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
|
|
||||||
<WarningThreshold>90</WarningThreshold>
|
|
||||||
<SpWarningsEnabled>1</SpWarningsEnabled>
|
|
||||||
<WarnLogOnly>1</WarnLogOnly>
|
|
||||||
<UseTrigger>1</UseTrigger>
|
|
||||||
<TriggerName>main</TriggerName>
|
|
||||||
<LimitSize>0</LimitSize>
|
|
||||||
<ByteLimit>50</ByteLimit>
|
|
||||||
</Stack>
|
|
||||||
<Trace1>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<ShowSource>1</ShowSource>
|
|
||||||
</Trace1>
|
|
||||||
<DebugChecksum>
|
|
||||||
<Checksum>1018058853</Checksum>
|
|
||||||
</DebugChecksum>
|
|
||||||
<CodeCoverage>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<ShowSource>0</ShowSource>
|
|
||||||
<HideCovered>0</HideCovered>
|
|
||||||
</CodeCoverage>
|
|
||||||
<Disassembly>
|
|
||||||
<InstrCount>0</InstrCount>
|
|
||||||
</Disassembly>
|
|
||||||
<Exceptions>
|
|
||||||
<StopOnUncaught>_ 0</StopOnUncaught>
|
|
||||||
<StopOnThrow>_ 0</StopOnThrow>
|
|
||||||
</Exceptions>
|
|
||||||
<CallStack>
|
|
||||||
<ShowArgs>0</ShowArgs>
|
|
||||||
</CallStack>
|
|
||||||
<DriverProfiling>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<Mode>1</Mode>
|
|
||||||
<Graph>0</Graph>
|
|
||||||
<Symbiont>0</Symbiont>
|
|
||||||
</DriverProfiling>
|
|
||||||
<CallStackLog>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
</CallStackLog>
|
|
||||||
<CallStackStripe>
|
|
||||||
<ShowTiming>1</ShowTiming>
|
|
||||||
</CallStackStripe>
|
|
||||||
<TermIOLog>
|
|
||||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
|
||||||
<LogFile>_ ""</LogFile>
|
|
||||||
</TermIOLog>
|
|
||||||
<LogFile>
|
|
||||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
|
||||||
<LogFile>_ ""</LogFile>
|
|
||||||
<Category>_ 0</Category>
|
|
||||||
</LogFile>
|
|
||||||
<InterruptLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
<SumSortOrder>0</SumSortOrder>
|
|
||||||
</InterruptLog>
|
|
||||||
<DataLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
</DataLog>
|
|
||||||
<DisassembleMode>
|
|
||||||
<mode>0</mode>
|
|
||||||
</DisassembleMode>
|
|
||||||
<Breakpoints2>
|
|
||||||
<Count>0</Count>
|
|
||||||
</Breakpoints2>
|
|
||||||
<Interrupts>
|
|
||||||
<Enabled>1</Enabled>
|
|
||||||
<Irq0>_ 0 9999 0 9999 1 0 0 100 0 1 "IRQ 1 0x18 CPSR.I"</Irq0>
|
|
||||||
<Count>1</Count>
|
|
||||||
</Interrupts>
|
|
||||||
<MemConfig>
|
|
||||||
<Base>1</Base>
|
|
||||||
<Manual>0</Manual>
|
|
||||||
<Ddf>1</Ddf>
|
|
||||||
<TypeViol>0</TypeViol>
|
|
||||||
<Stop>1</Stop>
|
|
||||||
</MemConfig>
|
|
||||||
<Aliases>
|
|
||||||
<Count>0</Count>
|
|
||||||
<SuppressDialog>0</SuppressDialog>
|
|
||||||
</Aliases>
|
|
||||||
<Simulator>
|
|
||||||
<Freq>10000000</Freq>
|
|
||||||
<FreqHi>0</FreqHi>
|
|
||||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
|
||||||
</Simulator>
|
|
||||||
</settings>
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
@REM This batch file has been generated by the IAR Embedded Workbench
|
|
||||||
@REM C-SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
@REM the cspybat command line utility using the appropriate settings.
|
|
||||||
@REM
|
|
||||||
@REM Note that this file is generated every time a new debug session
|
|
||||||
@REM is initialized, so you may want to move or rename the file before
|
|
||||||
@REM making changes.
|
|
||||||
@REM
|
|
||||||
@REM You can launch cspybat by typing the name of this batch file followed
|
|
||||||
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
|
|
||||||
@REM
|
|
||||||
@REM Read about available command line parameters in the C-SPY Debugging
|
|
||||||
@REM Guide. Hints about additional command line parameters that may be
|
|
||||||
@REM useful in specific cases:
|
|
||||||
@REM --download_only Downloads a code image without starting a debug
|
|
||||||
@REM session afterwards.
|
|
||||||
@REM --silent Omits the sign-on message.
|
|
||||||
@REM --timeout Limits the maximum allowed execution time.
|
|
||||||
@REM
|
|
||||||
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
|
|
||||||
if not "%~1" == "" goto debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
:end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
param([String]$debugfile = "");
|
|
||||||
|
|
||||||
# This powershell file has been generated by the IAR Embedded Workbench
|
|
||||||
# C - SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
# the cspybat command line utility using the appropriate settings.
|
|
||||||
#
|
|
||||||
# Note that this file is generated every time a new debug session
|
|
||||||
# is initialized, so you may want to move or rename the file before
|
|
||||||
# making changes.
|
|
||||||
#
|
|
||||||
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
|
|
||||||
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
|
|
||||||
#
|
|
||||||
# Read about available command line parameters in the C - SPY Debugging
|
|
||||||
# Guide. Hints about additional command line parameters that may be
|
|
||||||
# useful in specific cases :
|
|
||||||
# --download_only Downloads a code image without starting a debug
|
|
||||||
# session afterwards.
|
|
||||||
# --silent Omits the sign - on message.
|
|
||||||
# --timeout Limits the maximum allowed execution time.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
if ($debugfile -eq "")
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
"--endian=little"
|
|
||||||
|
|
||||||
"--cpu=ARM1136J-S"
|
|
||||||
|
|
||||||
"--fpu=None"
|
|
||||||
|
|
||||||
"--semihosting"
|
|
||||||
|
|
||||||
"--multicore_nr_of_cores=1"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armproc.dll"
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armsim2.dll"
|
|
||||||
|
|
||||||
"C:\release\threadx\Debug\Exe\tx.out"
|
|
||||||
|
|
||||||
--plugin "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armbat.dll"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<crun>
|
|
||||||
<version>1</version>
|
|
||||||
<filter_entries>
|
|
||||||
<filter index="0" type="default">
|
|
||||||
<type>*</type>
|
|
||||||
<start_file>*</start_file>
|
|
||||||
<end_file>*</end_file>
|
|
||||||
<action_debugger>0</action_debugger>
|
|
||||||
<action_log>1</action_log>
|
|
||||||
</filter>
|
|
||||||
</filter_entries>
|
|
||||||
</crun>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Project>
|
|
||||||
<WindowStorage />
|
|
||||||
</Project>
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<settings>
|
|
||||||
<InterruptLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
<SumSortOrder>0</SumSortOrder>
|
|
||||||
</InterruptLog>
|
|
||||||
<DataLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
</DataLog>
|
|
||||||
<Stack>
|
|
||||||
<FillEnabled>0</FillEnabled>
|
|
||||||
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
|
|
||||||
<WarningThreshold>90</WarningThreshold>
|
|
||||||
<SpWarningsEnabled>1</SpWarningsEnabled>
|
|
||||||
<WarnLogOnly>1</WarnLogOnly>
|
|
||||||
<UseTrigger>1</UseTrigger>
|
|
||||||
<TriggerName>main</TriggerName>
|
|
||||||
<LimitSize>0</LimitSize>
|
|
||||||
<ByteLimit>50</ByteLimit>
|
|
||||||
</Stack>
|
|
||||||
<DisassembleMode>
|
|
||||||
<mode>0</mode>
|
|
||||||
</DisassembleMode>
|
|
||||||
<Breakpoints2>
|
|
||||||
<Count>0</Count>
|
|
||||||
</Breakpoints2>
|
|
||||||
<Interrupts>
|
|
||||||
<Enabled>1</Enabled>
|
|
||||||
</Interrupts>
|
|
||||||
<MemConfig>
|
|
||||||
<Base>1</Base>
|
|
||||||
<Manual>0</Manual>
|
|
||||||
<Ddf>1</Ddf>
|
|
||||||
<TypeViol>0</TypeViol>
|
|
||||||
<Stop>1</Stop>
|
|
||||||
</MemConfig>
|
|
||||||
<Trace1>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<ShowSource>1</ShowSource>
|
|
||||||
</Trace1>
|
|
||||||
<Aliases>
|
|
||||||
<Count>0</Count>
|
|
||||||
<SuppressDialog>0</SuppressDialog>
|
|
||||||
</Aliases>
|
|
||||||
<Simulator>
|
|
||||||
<Freq>10000000</Freq>
|
|
||||||
<FreqHi>0</FreqHi>
|
|
||||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
|
||||||
</Simulator>
|
|
||||||
</settings>
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARM11/IAR */
|
/* tx_port.h ARM11/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -334,9 +337,9 @@ __intrinsic void __set_CPSR( unsigned long );
|
|||||||
|
|
||||||
|
|
||||||
#if (__VER__ < 8002000)
|
#if (__VER__ < 8002000)
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned long interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA ULONG interrupt_save;
|
||||||
#else
|
#else
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = __get_CPSR(); \
|
#define TX_DISABLE interrupt_save = __get_CPSR(); \
|
||||||
@@ -372,7 +375,7 @@ void _tx_thread_interrupt_restore(UINT old_posture);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/IAR Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/IAR Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
#ifdef TX_MISRA_ENABLE
|
#ifdef TX_MISRA_ENABLE
|
||||||
extern CHAR _tx_version_id[100];
|
extern CHAR _tx_version_id[100];
|
||||||
|
|||||||
@@ -517,6 +517,9 @@ The project options "General Options -> Library Configuration" should also have
|
|||||||
|
|
||||||
11. Revision History
|
11. Revision History
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for ARM11 using IAR's ARM tools.
|
09-30-2020 Initial ThreadX 6.1 version for ARM11 using IAR's ARM tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARM9/AC5 */
|
/* tx_port.h ARM9/AC5 */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -267,7 +270,7 @@ typedef unsigned short USHORT;
|
|||||||
macros. */
|
macros. */
|
||||||
|
|
||||||
#ifndef __thumb
|
#ifndef __thumb
|
||||||
#define TX_INTERRUPT_SAVE_AREA register unsigned int interrupt_save_disabled;
|
#define TX_INTERRUPT_SAVE_AREA register UINT interrupt_save_disabled;
|
||||||
|
|
||||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||||
|
|
||||||
@@ -298,7 +301,7 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
@@ -319,7 +322,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/AC5 Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/AC5 Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -508,6 +508,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for ARM9 using AC5 tools.
|
09-30-2020 Initial ThreadX 6.1 version for ARM9 using AC5 tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARM9/GNU */
|
/* tx_port.h ARM9/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -272,14 +275,14 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save, tx_temp;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save, tx_temp;
|
||||||
|
|
||||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||||
#define TX_DISABLE asm volatile (" MRS %0,CPSR; ORR %1,%0,#0xC0; MSR CPSR_cxsf,%1 ": "=r" (interrupt_save), "=r" (tx_temp) );
|
#define TX_DISABLE asm volatile (" MRS %0,CPSR; ORR %1,%0,#0xC0; MSR CPSR_cxsf,%1 ": "=r" (interrupt_save), "=r" (tx_temp) );
|
||||||
@@ -306,7 +309,7 @@ unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/GNU Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/GNU Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -486,6 +486,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for ARM9 using GNU tools.
|
09-30-2020 Initial ThreadX 6.1 version for ARM9 using GNU tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,220 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project>
|
|
||||||
<fileVersion>4</fileVersion>
|
|
||||||
<fileChecksum>3136050671</fileChecksum>
|
|
||||||
<configuration>
|
|
||||||
<name>Debug</name>
|
|
||||||
<outputs>
|
|
||||||
<file>$PROJ_DIR$\cstartup.s</file>
|
|
||||||
<file>$PROJ_DIR$\sample_threadx.c</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Exe\tx.a</file>
|
|
||||||
<file>$PROJ_DIR$\tx_api.h</file>
|
|
||||||
<file>$PROJ_DIR$\tx_initialize_low_level.s</file>
|
|
||||||
<file>$PROJ_DIR$\tx_port.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\xencoding_limits.h</file>
|
|
||||||
<file>$PROJ_DIR$\TX_ILL.s79</file>
|
|
||||||
<file>$TOOLKIT_DIR$\lib\rt4t_al.a</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\demo.r79</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\List\sample_threadx.map</file>
|
|
||||||
<file>$PROJ_DIR$\DEMO.C</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\sample_threadx.o</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\cstartup.o</file>
|
|
||||||
<file>$PROJ_DIR$\sample_threadx.icf</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\DLib_Config_Normal.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Exe\sample_threadx.out</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\TX_ILL.r79</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\string.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\tx_execution_profile.pbi</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\intrinsics.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\lib\shs_l.a</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>
|
|
||||||
<file>$PROJ_DIR$\tx_cstartup.s79</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\DLib_Product_string.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product_string.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\DLib_Defaults.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\tx_execution_profile.o</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\DLib_Threads.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\stdlib.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\sample_threadx.pbd</file>
|
|
||||||
<file>$PROJ_DIR$\cstartup.s79</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\yvals.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
|
|
||||||
<file>$PROJ_DIR$\tx_execution_profile.c</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\List\tx_initialize_low_level.lst</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\ycheck.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\ysizet.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\tx_initialize_low_level.o</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\List\cstartup.lst</file>
|
|
||||||
<file>$TOOLKIT_DIR$\lib\dl4t_aln.a</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\tx_cstartup.r79</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\intrinsics.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\lib\m4t_al.a</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\sample_threadx.xcl</file>
|
|
||||||
<file>$PROJ_DIR$\tx_initialize_low_level.s79</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\string.h</file>
|
|
||||||
<file>$PROJ_DIR$\..\inc\tx_port.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\iccarm_builtin.h</file>
|
|
||||||
<file>$TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h</file>
|
|
||||||
<file>$PROJ_DIR$\..\..\..\..\common\inc\tx_api.h</file>
|
|
||||||
<file>$PROJ_DIR$\Debug\Obj\sample_threadx.__cstat.et</file>
|
|
||||||
<file>$PROJ_DIR$\..\..\..\..\common\src\tx_queue_receive.c</file>
|
|
||||||
</outputs>
|
|
||||||
<file>
|
|
||||||
<name>[ROOT_NODE]</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>ILINK</name>
|
|
||||||
<file> 17 11</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\cstartup.s</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>AARM</name>
|
|
||||||
<file> 14 42</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\sample_threadx.c</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 13</file>
|
|
||||||
</tool>
|
|
||||||
<tool>
|
|
||||||
<name>BICOMP</name>
|
|
||||||
<file> 50</file>
|
|
||||||
</tool>
|
|
||||||
<tool>
|
|
||||||
<name>__cstat</name>
|
|
||||||
<file> 58</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
<inputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 57 54 41 48 35 47 29 52 46 6 53 26 45 55 56</file>
|
|
||||||
</tool>
|
|
||||||
</inputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\tx_initialize_low_level.s</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>AARM</name>
|
|
||||||
<file> 40 37</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\TX_ILL.s79</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>AARM</name>
|
|
||||||
<file> 18</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\DEMO.C</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 10</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
<inputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 3 5</file>
|
|
||||||
</tool>
|
|
||||||
</inputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\Debug\Exe\sample_threadx.out</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>ILINK</name>
|
|
||||||
<file> 11</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
<inputs>
|
|
||||||
<tool>
|
|
||||||
<name>ILINK</name>
|
|
||||||
<file> 15 14 13 2 40 22 9 49 43</file>
|
|
||||||
</tool>
|
|
||||||
</inputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\tx_cstartup.s79</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>AARM</name>
|
|
||||||
<file> 44</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\cstartup.s79</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>AARM</name>
|
|
||||||
<file> 14</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\tx_execution_profile.c</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 28</file>
|
|
||||||
</tool>
|
|
||||||
<tool>
|
|
||||||
<name>BICOMP</name>
|
|
||||||
<file> 20</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
<inputs>
|
|
||||||
<tool>
|
|
||||||
<name>ICCARM</name>
|
|
||||||
<file> 3 5 31 38 34 27 16 23 7 30 39 19 25 21</file>
|
|
||||||
</tool>
|
|
||||||
<tool>
|
|
||||||
<name>BICOMP</name>
|
|
||||||
<file> 3 5 31 38 34 27 23 7 30 39 19 25 21</file>
|
|
||||||
</tool>
|
|
||||||
</inputs>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\tx_initialize_low_level.s79</name>
|
|
||||||
<outputs>
|
|
||||||
<tool>
|
|
||||||
<name>AARM</name>
|
|
||||||
<file> 40 37</file>
|
|
||||||
</tool>
|
|
||||||
</outputs>
|
|
||||||
</file>
|
|
||||||
</configuration>
|
|
||||||
<configuration>
|
|
||||||
<name>Release</name>
|
|
||||||
<outputs />
|
|
||||||
<forcedrebuild>
|
|
||||||
<name>[MULTI_TOOL]</name>
|
|
||||||
<tool>ILINK</tool>
|
|
||||||
</forcedrebuild>
|
|
||||||
<forcedrebuild>
|
|
||||||
<name>[REBUILD_ALL]</name>
|
|
||||||
</forcedrebuild>
|
|
||||||
</configuration>
|
|
||||||
</project>
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,535 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace>
|
|
||||||
<ConfigDictionary>
|
|
||||||
<CurrentConfigs>
|
|
||||||
<Project>sample_threadx/Debug</Project>
|
|
||||||
<Project>tx/Debug</Project>
|
|
||||||
</CurrentConfigs>
|
|
||||||
<CurrentProj>sample_threadx</CurrentProj>
|
|
||||||
<OverviewSelected>1</OverviewSelected>
|
|
||||||
</ConfigDictionary>
|
|
||||||
<WindowStorage>
|
|
||||||
<Desktop>
|
|
||||||
<IarPane-34048>
|
|
||||||
<ColumnWidth0>21</ColumnWidth0>
|
|
||||||
<ColumnWidth1>2518</ColumnWidth1>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34048>
|
|
||||||
<IarPane-34049>
|
|
||||||
<ToolBarCmdIds>
|
|
||||||
<item>34001</item>
|
|
||||||
<item>0</item>
|
|
||||||
</ToolBarCmdIds>
|
|
||||||
</IarPane-34049>
|
|
||||||
<IarPane-34050>
|
|
||||||
<ToolBarCmdIds>
|
|
||||||
<item>57600</item>
|
|
||||||
<item>57601</item>
|
|
||||||
<item>57603</item>
|
|
||||||
<item>33024</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>57607</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>57635</item>
|
|
||||||
<item>57634</item>
|
|
||||||
<item>57637</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>57643</item>
|
|
||||||
<item>57644</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>33090</item>
|
|
||||||
<item>33057</item>
|
|
||||||
<item>57636</item>
|
|
||||||
<item>57640</item>
|
|
||||||
<item>57641</item>
|
|
||||||
<item>33026</item>
|
|
||||||
<item>33065</item>
|
|
||||||
<item>33063</item>
|
|
||||||
<item>33064</item>
|
|
||||||
<item>33053</item>
|
|
||||||
<item>33054</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>33035</item>
|
|
||||||
<item>33036</item>
|
|
||||||
<item>34399</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>33038</item>
|
|
||||||
<item>33039</item>
|
|
||||||
<item>0</item>
|
|
||||||
</ToolBarCmdIds>
|
|
||||||
</IarPane-34050>
|
|
||||||
<IarPane-34065>
|
|
||||||
<ColumnWidths>
|
|
||||||
<Column0>265</Column0>
|
|
||||||
<Column1>30</Column1>
|
|
||||||
<Column2>30</Column2>
|
|
||||||
<Column3>30</Column3>
|
|
||||||
</ColumnWidths>
|
|
||||||
<NodeDict>
|
|
||||||
<ExpandedNode><ws></ExpandedNode>
|
|
||||||
</NodeDict>
|
|
||||||
</IarPane-34065>
|
|
||||||
<ControlBarVersion>
|
|
||||||
<Major>14</Major>
|
|
||||||
<Minor>25</Minor>
|
|
||||||
</ControlBarVersion>
|
|
||||||
<MFCToolBarParameters>
|
|
||||||
<Tooltips>1</Tooltips>
|
|
||||||
<ShortcutKeys>1</ShortcutKeys>
|
|
||||||
<LargeIcons>0</LargeIcons>
|
|
||||||
<MenuAnimation>0</MenuAnimation>
|
|
||||||
<RecentlyUsedMenus>1</RecentlyUsedMenus>
|
|
||||||
<MenuShadows>1</MenuShadows>
|
|
||||||
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
|
|
||||||
<CommandsUsage>010000000E002596000002000000138600001000000010860000090000000C8100001400000004860000020000001781000003000000148100000100000003E10000050000000E81000001000000E980000001000000118600000F00000046810000030000000D81000001000000E880000003000000</CommandsUsage>
|
|
||||||
</MFCToolBarParameters>
|
|
||||||
<CommandManager>
|
|
||||||
<CommandsWithoutImages>0A000D8400000F84000008840000FFFFFFFF54840000328100001C810000098400000E84000030840000</CommandsWithoutImages>
|
|
||||||
<MenuUserImages>0400048400004C000000068400004E0000000B8100001B0000000D8100001D000000</MenuUserImages>
|
|
||||||
</CommandManager>
|
|
||||||
<Pane-59393>
|
|
||||||
<ID>0</ID>
|
|
||||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000004E050000000A000061050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-59393>
|
|
||||||
<BasePane-59393>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-59393>
|
|
||||||
<Pane-34051>
|
|
||||||
<ID>34051</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34051>
|
|
||||||
<BasePane-34051>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34051>
|
|
||||||
<IarPane-34051 />
|
|
||||||
<Pane--1>
|
|
||||||
<ID>4294967295</ID>
|
|
||||||
<RectRecentFloat>0000000070040000000A000065050000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0000000059040000000A00004E050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane--1>
|
|
||||||
<BasePane--1>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane--1>
|
|
||||||
<Pane-34052>
|
|
||||||
<ID>34052</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34052>
|
|
||||||
<BasePane-34052>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34052>
|
|
||||||
<IarPane-34052>
|
|
||||||
<ColumnWidth0>24</ColumnWidth0>
|
|
||||||
<ColumnWidth1>1880</ColumnWidth1>
|
|
||||||
<ColumnWidth2>501</ColumnWidth2>
|
|
||||||
<ColumnWidth3>125</ColumnWidth3>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile>C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\BuildLog.log</LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34052>
|
|
||||||
<Pane-34048>
|
|
||||||
<ID>34048</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34048>
|
|
||||||
<BasePane-34048>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34048>
|
|
||||||
<Pane-34056>
|
|
||||||
<ID>34056</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34056>
|
|
||||||
<BasePane-34056>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34056>
|
|
||||||
<IarPane-34056>
|
|
||||||
<ColumnWidth0>891</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1528</ColumnWidth2>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34056>
|
|
||||||
<Pane-34057>
|
|
||||||
<ID>34057</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34057>
|
|
||||||
<BasePane-34057>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34057>
|
|
||||||
<IarPane-34057>
|
|
||||||
<ColumnWidth0>891</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1528</ColumnWidth2>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34057>
|
|
||||||
<Pane-34058>
|
|
||||||
<ID>34058</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34058>
|
|
||||||
<BasePane-34058>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34058>
|
|
||||||
<IarPane-34058>
|
|
||||||
<ColumnWidth0>764</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1146</ColumnWidth2>
|
|
||||||
<ColumnWidth3>509</ColumnWidth3>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34058>
|
|
||||||
<Pane-34059>
|
|
||||||
<ID>34059</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34059>
|
|
||||||
<BasePane-34059>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34059>
|
|
||||||
<IarPane-34059>
|
|
||||||
<ColumnWidth0>891</ColumnWidth0>
|
|
||||||
<ColumnWidth1>127</ColumnWidth1>
|
|
||||||
<ColumnWidth2>1528</ColumnWidth2>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34059>
|
|
||||||
<Pane-34062>
|
|
||||||
<ID>34062</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0400000071040000FC09000034050000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34062>
|
|
||||||
<BasePane-34062>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34062>
|
|
||||||
<IarPane-34062>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile></LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34062>
|
|
||||||
<Pane-34053>
|
|
||||||
<ID>34053</ID>
|
|
||||||
<RectRecentFloat>000000001700000080020000A8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>00000000000000008002000091000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34053>
|
|
||||||
<BasePane-34053>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34053>
|
|
||||||
<IarPane-34053>
|
|
||||||
<cg_type>
|
|
||||||
<item>2</item>
|
|
||||||
</cg_type>
|
|
||||||
<cg_symbol>
|
|
||||||
<item></item>
|
|
||||||
</cg_symbol>
|
|
||||||
<cg_user>
|
|
||||||
<item></item>
|
|
||||||
</cg_user>
|
|
||||||
<cg_display>
|
|
||||||
<item><Right-click on a symbol in the editor to show a call graph></item>
|
|
||||||
</cg_display>
|
|
||||||
<cg_def_file>
|
|
||||||
<item></item>
|
|
||||||
</cg_def_file>
|
|
||||||
<cg_def_line>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_def_line>
|
|
||||||
<cg_def_col>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_def_col>
|
|
||||||
<cg_call_file>
|
|
||||||
<item></item>
|
|
||||||
</cg_call_file>
|
|
||||||
<cg_call_line>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_call_line>
|
|
||||||
<cg_call_col>
|
|
||||||
<item>0</item>
|
|
||||||
</cg_call_col>
|
|
||||||
<col-names>
|
|
||||||
<item>File</item>
|
|
||||||
<item>Function</item>
|
|
||||||
<item>Line</item>
|
|
||||||
</col-names>
|
|
||||||
<col-widths>
|
|
||||||
<item>200</item>
|
|
||||||
<item>700</item>
|
|
||||||
<item>100</item>
|
|
||||||
</col-widths>
|
|
||||||
</IarPane-34053>
|
|
||||||
<Pane-34054>
|
|
||||||
<ID>34054</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34054>
|
|
||||||
<BasePane-34054>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34054>
|
|
||||||
<IarPane-34054 />
|
|
||||||
<Pane-34055>
|
|
||||||
<ID>34055</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34055>
|
|
||||||
<BasePane-34055>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34055>
|
|
||||||
<IarPane-34055>
|
|
||||||
<col-names>
|
|
||||||
<item>Check</item>
|
|
||||||
<item>File</item>
|
|
||||||
<item>Line</item>
|
|
||||||
<item>Message</item>
|
|
||||||
<item>Severity</item>
|
|
||||||
</col-names>
|
|
||||||
<col-widths>
|
|
||||||
<item>200</item>
|
|
||||||
<item>200</item>
|
|
||||||
<item>100</item>
|
|
||||||
<item>500</item>
|
|
||||||
<item>100</item>
|
|
||||||
</col-widths>
|
|
||||||
</IarPane-34055>
|
|
||||||
<Pane-34060>
|
|
||||||
<ID>34060</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34060>
|
|
||||||
<BasePane-34060>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34060>
|
|
||||||
<IarPane-34060>
|
|
||||||
<FilterLevel>2</FilterLevel>
|
|
||||||
<LiveFile>$WS_DIR/SourceBrowseLog.log</LiveFile>
|
|
||||||
<LiveLogEnabled>0</LiveLogEnabled>
|
|
||||||
<LiveFilterLevel>-1</LiveFilterLevel>
|
|
||||||
</IarPane-34060>
|
|
||||||
<Pane-34061>
|
|
||||||
<ID>34061</ID>
|
|
||||||
<RectRecentFloat>000000001700000080020000A8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>00000000000000008002000091000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34061>
|
|
||||||
<BasePane-34061>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34061>
|
|
||||||
<IarPane-34061>
|
|
||||||
<SB_FileFilter>
|
|
||||||
<item>2</item>
|
|
||||||
</SB_FileFilter>
|
|
||||||
<SB_TypeFilter>
|
|
||||||
<item>0</item>
|
|
||||||
</SB_TypeFilter>
|
|
||||||
<SB_SBW_File>
|
|
||||||
<item>C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\Debug\Obj\sample_threadx.pbw</item>
|
|
||||||
</SB_SBW_File>
|
|
||||||
<col-names>
|
|
||||||
<item>File</item>
|
|
||||||
<item>Name</item>
|
|
||||||
<item>Scope</item>
|
|
||||||
<item>Symbol type</item>
|
|
||||||
</col-names>
|
|
||||||
<col-widths>
|
|
||||||
<item>300</item>
|
|
||||||
<item>300</item>
|
|
||||||
<item>300</item>
|
|
||||||
<item>300</item>
|
|
||||||
</col-widths>
|
|
||||||
</IarPane-34061>
|
|
||||||
<Pane-34063>
|
|
||||||
<ID>34063</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34063>
|
|
||||||
<BasePane-34063>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34063>
|
|
||||||
<IarPane-34063 />
|
|
||||||
<Pane-34064>
|
|
||||||
<ID>34064</ID>
|
|
||||||
<RectRecentFloat>000000001700000022010000C8000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>000000000000000022010000B1000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>32768</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34064>
|
|
||||||
<BasePane-34064>
|
|
||||||
<IsVisible>0</IsVisible>
|
|
||||||
</BasePane-34064>
|
|
||||||
<IarPane-34064 />
|
|
||||||
<Pane-34065>
|
|
||||||
<ID>34065</ID>
|
|
||||||
<RectRecentFloat>00000000170000000601000078010000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>00000000320000005101000055040000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>4096</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>32767</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34065>
|
|
||||||
<BasePane-34065>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34065>
|
|
||||||
<DockingManager-256>
|
|
||||||
<DockingPaneAndPaneDividers>0000000014000000000000000010000001000000FFFFFFFFFFFFFFFF51010000320000005501000055040000010000000200001004000000010000003EFFFFFF9E080000118500000000000000000000000000000000000001000000118500000100000011850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000108500000000000000000000000000000000000001000000108500000100000010850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000F85000000000000000000000000000000000000010000000F850000010000000F850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000D85000000000000000000000000000000000000010000000D850000010000000D850000000000000080000000000000FFFFFFFFFFFFFFFF000000000000000004000000040000000000000001000000040000000100000000000000000000000C85000000000000000000000000000000000000010000000C850000010000000C850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000078500000000000000000000000000000000000001000000078500000100000007850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000068500000000000000000000000000000000000001000000068500000100000006850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000058500000000000000000000000000000000000001000000058500000100000005850000000000000080000001000000FFFFFFFFFFFFFFFF0000000055040000000A00005904000001000000010000100400000001000000C5FBFFFF96000000FFFFFFFF07000000048500000085000008850000098500000A8500000B8500000E850000FFFF02000B004354616262656450616E6500800000010000000000000070040000000A0000650500000000000059040000000A00004E050000000000004080005607000000FFFEFF054200750069006C006400010000000485000001000000FFFFFFFFFFFFFFFFFFFEFF094400650062007500670020004C006F006700010000000085000001000000FFFFFFFFFFFFFFFFFFFEFF0C4400650063006C00610072006100740069006F006E007300000000000885000001000000FFFFFFFFFFFFFFFFFFFEFF0A5200650066006500720065006E00630065007300000000000985000001000000FFFFFFFFFFFFFFFFFFFEFF0D460069006E006400200069006E002000460069006C0065007300000000000A85000001000000FFFFFFFFFFFFFFFFFFFEFF1541006D0062006900670075006F0075007300200044006500660069006E006900740069006F006E007300000000000B85000001000000FFFFFFFFFFFFFFFFFFFEFF0B54006F006F006C0020004F0075007400700075007400000000000E85000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFF0485000001000000FFFFFFFF04850000000000000080000000000000FFFFFFFFFFFFFFFF00000000000000000400000004000000000000000100000004000000010000000000000000000000038500000000000000000000000000000000000001000000038500000100000003850000000000000000000000000000</DockingPaneAndPaneDividers>
|
|
||||||
</DockingManager-256>
|
|
||||||
<MFCToolBar-34049>
|
|
||||||
<Name>CMSIS-Pack</Name>
|
|
||||||
<Buttons>00200000010000000100FFFF01001100434D4643546F6F6C426172427574746F6ED1840000000000000C000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF0A43004D005300490053002D005000610063006B0018000000</Buttons>
|
|
||||||
</MFCToolBar-34049>
|
|
||||||
<Pane-34049>
|
|
||||||
<ID>34049</ID>
|
|
||||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>FE020000000000002C0300001A000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>8192</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>24</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34049>
|
|
||||||
<BasePane-34049>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34049>
|
|
||||||
<MFCToolBar-34050>
|
|
||||||
<Name>Main</Name>
|
|
||||||
<Buttons>00200000010000002000FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000035000000FFFEFF000000000000000000000000000100000001000000018001E100000000000036000000FFFEFF000000000000000000000000000100000001000000018003E100000000040038000000FFFEFF0000000000000000000000000001000000010000000180008100000000000019000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000004003B000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004003D000000FFFEFF000000000000000000000000000100000001000000018022E10000000004003C000000FFFEFF000000000000000000000000000100000001000000018025E10000000004003F000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040042000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040043000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01000D005061737465436F6D626F426F784281000000000400FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004002C000000FFFEFF000000000000000000000000000100000001000000018024E10000000004003E000000FFFEFF000000000000000000000000000100000001000000018028E100000000040040000000FFFEFF000000000000000000000000000100000001000000018029E100000000040041000000FFFEFF000000000000000000000000000100000001000000018002810000000004001B000000FFFEFF0000000000000000000000000001000000010000000180298100000000040030000000FFFEFF000000000000000000000000000100000001000000018027810000000004002E000000FFFEFF000000000000000000000000000100000001000000018028810000000004002F000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040028000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040029000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004001F000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000020000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000034000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800E8100000000000022000000FFFEFF00000000000000000000000000010000000100000001800F8100000000000023000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00E8020000</Buttons>
|
|
||||||
</MFCToolBar-34050>
|
|
||||||
<Pane-34050>
|
|
||||||
<ID>34050</ID>
|
|
||||||
<RectRecentFloat>0A0000000A0000006E0000006E000000</RectRecentFloat>
|
|
||||||
<RectRecentDocked>0000000000000000FE0200001A000000</RectRecentDocked>
|
|
||||||
<RecentFrameAlignment>8192</RecentFrameAlignment>
|
|
||||||
<RecentRowIndex>0</RecentRowIndex>
|
|
||||||
<IsFloating>0</IsFloating>
|
|
||||||
<MRUWidth>744</MRUWidth>
|
|
||||||
<PinState>0</PinState>
|
|
||||||
</Pane-34050>
|
|
||||||
<BasePane-34050>
|
|
||||||
<IsVisible>1</IsVisible>
|
|
||||||
</BasePane-34050>
|
|
||||||
</Desktop>
|
|
||||||
<ChildIdMap>
|
|
||||||
<WIN_DEBUG_LOG>34048</WIN_DEBUG_LOG>
|
|
||||||
<TB_CMSISPACK>34049</TB_CMSISPACK>
|
|
||||||
<TB_MAIN2>34050</TB_MAIN2>
|
|
||||||
<WIN_BREAKPOINTS>34051</WIN_BREAKPOINTS>
|
|
||||||
<WIN_BUILD>34052</WIN_BUILD>
|
|
||||||
<WIN_CALL_GRAPH>34053</WIN_CALL_GRAPH>
|
|
||||||
<WIN_CUSTOM_SFR>34054</WIN_CUSTOM_SFR>
|
|
||||||
<WIN_C_STAT>34055</WIN_C_STAT>
|
|
||||||
<WIN_FIND_ALL_DECLARATIONS>34056</WIN_FIND_ALL_DECLARATIONS>
|
|
||||||
<WIN_FIND_ALL_REFERENCES>34057</WIN_FIND_ALL_REFERENCES>
|
|
||||||
<WIN_FIND_IN_FILES>34058</WIN_FIND_IN_FILES>
|
|
||||||
<WIN_SELECT_AMBIGUOUS_DEFINITIONS>34059</WIN_SELECT_AMBIGUOUS_DEFINITIONS>
|
|
||||||
<WIN_SOURCEBROWSE_LOG>34060</WIN_SOURCEBROWSE_LOG>
|
|
||||||
<WIN_SOURCE_BROWSE2>34061</WIN_SOURCE_BROWSE2>
|
|
||||||
<WIN_TOOL_OUTPUT>34062</WIN_TOOL_OUTPUT>
|
|
||||||
<WIN_TS_INTERRUPT_AVAILABLE>34063</WIN_TS_INTERRUPT_AVAILABLE>
|
|
||||||
<WIN_TS_INTERRUPT_CONFIG>34064</WIN_TS_INTERRUPT_CONFIG>
|
|
||||||
<WIN_WORKSPACE>34065</WIN_WORKSPACE>
|
|
||||||
</ChildIdMap>
|
|
||||||
<MDIWindows>
|
|
||||||
<MDIClientArea-0>
|
|
||||||
<MDITabsState>01000000030000000100000000000000000000000100000001000000FFFFFFFF00000000010000000100000000000000280000002800000000000000</MDITabsState>
|
|
||||||
</MDIClientArea-0>
|
|
||||||
</MDIWindows>
|
|
||||||
</WindowStorage>
|
|
||||||
</Workspace>
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
@REM This batch file has been generated by the IAR Embedded Workbench
|
|
||||||
@REM C-SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
@REM the cspybat command line utility using the appropriate settings.
|
|
||||||
@REM
|
|
||||||
@REM Note that this file is generated every time a new debug session
|
|
||||||
@REM is initialized, so you may want to move or rename the file before
|
|
||||||
@REM making changes.
|
|
||||||
@REM
|
|
||||||
@REM You can launch cspybat by typing the name of this batch file followed
|
|
||||||
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
|
|
||||||
@REM
|
|
||||||
@REM Read about available command line parameters in the C-SPY Debugging
|
|
||||||
@REM Guide. Hints about additional command line parameters that may be
|
|
||||||
@REM useful in specific cases:
|
|
||||||
@REM --download_only Downloads a code image without starting a debug
|
|
||||||
@REM session afterwards.
|
|
||||||
@REM --silent Omits the sign-on message.
|
|
||||||
@REM --timeout Limits the maximum allowed execution time.
|
|
||||||
@REM
|
|
||||||
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
|
|
||||||
if not "%~1" == "" goto debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.general.xcl" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
:end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
param([String]$debugfile = "");
|
|
||||||
|
|
||||||
# This powershell file has been generated by the IAR Embedded Workbench
|
|
||||||
# C - SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
# the cspybat command line utility using the appropriate settings.
|
|
||||||
#
|
|
||||||
# Note that this file is generated every time a new debug session
|
|
||||||
# is initialized, so you may want to move or rename the file before
|
|
||||||
# making changes.
|
|
||||||
#
|
|
||||||
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
|
|
||||||
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
|
|
||||||
#
|
|
||||||
# Read about available command line parameters in the C - SPY Debugging
|
|
||||||
# Guide. Hints about additional command line parameters that may be
|
|
||||||
# useful in specific cases :
|
|
||||||
# --download_only Downloads a code image without starting a debug
|
|
||||||
# session afterwards.
|
|
||||||
# --silent Omits the sign - on message.
|
|
||||||
# --timeout Limits the maximum allowed execution time.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
if ($debugfile -eq "")
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.general.xcl" --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\common\bin\cspybat" -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\settings\sample_threadx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
"--endian=little"
|
|
||||||
|
|
||||||
"--cpu=ARM9TDMI"
|
|
||||||
|
|
||||||
"--fpu=None"
|
|
||||||
|
|
||||||
"--semihosting"
|
|
||||||
|
|
||||||
"--multicore_nr_of_cores=1"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armproc.dll"
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armsim2.dll"
|
|
||||||
|
|
||||||
"C:\Users\nisohack\Documents\work\x-ware_libs\threadx\ports\arm9\iar\example_build\Debug\Exe\sample_threadx.out"
|
|
||||||
|
|
||||||
--plugin="C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.4\arm\bin\armbat.dll"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<crun>
|
|
||||||
<version>1</version>
|
|
||||||
<filter_entries>
|
|
||||||
<filter index="0" type="default">
|
|
||||||
<type>*</type>
|
|
||||||
<start_file>*</start_file>
|
|
||||||
<end_file>*</end_file>
|
|
||||||
<action_debugger>0</action_debugger>
|
|
||||||
<action_log>1</action_log>
|
|
||||||
</filter>
|
|
||||||
</filter_entries>
|
|
||||||
</crun>
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,99 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<settings>
|
|
||||||
<Stack>
|
|
||||||
<FillEnabled>0</FillEnabled>
|
|
||||||
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
|
|
||||||
<WarningThreshold>90</WarningThreshold>
|
|
||||||
<SpWarningsEnabled>1</SpWarningsEnabled>
|
|
||||||
<WarnLogOnly>1</WarnLogOnly>
|
|
||||||
<UseTrigger>1</UseTrigger>
|
|
||||||
<TriggerName>main</TriggerName>
|
|
||||||
<LimitSize>0</LimitSize>
|
|
||||||
<ByteLimit>50</ByteLimit>
|
|
||||||
</Stack>
|
|
||||||
<Trace1>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<ShowSource>1</ShowSource>
|
|
||||||
</Trace1>
|
|
||||||
<DebugChecksum>
|
|
||||||
<Checksum>530500706</Checksum>
|
|
||||||
</DebugChecksum>
|
|
||||||
<CodeCoverage>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<ShowSource>0</ShowSource>
|
|
||||||
<HideCovered>0</HideCovered>
|
|
||||||
</CodeCoverage>
|
|
||||||
<Disassembly>
|
|
||||||
<InstrCount>0</InstrCount>
|
|
||||||
</Disassembly>
|
|
||||||
<Exceptions>
|
|
||||||
<StopOnUncaught>_ 0</StopOnUncaught>
|
|
||||||
<StopOnThrow>_ 0</StopOnThrow>
|
|
||||||
</Exceptions>
|
|
||||||
<CallStack>
|
|
||||||
<ShowArgs>0</ShowArgs>
|
|
||||||
</CallStack>
|
|
||||||
<DriverProfiling>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<Mode>1</Mode>
|
|
||||||
<Graph>0</Graph>
|
|
||||||
<Symbiont>0</Symbiont>
|
|
||||||
</DriverProfiling>
|
|
||||||
<CallStackLog>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
</CallStackLog>
|
|
||||||
<CallStackStripe>
|
|
||||||
<ShowTiming>1</ShowTiming>
|
|
||||||
</CallStackStripe>
|
|
||||||
<TermIOLog>
|
|
||||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
|
||||||
<LogFile>_ ""</LogFile>
|
|
||||||
</TermIOLog>
|
|
||||||
<LogFile>
|
|
||||||
<LoggingEnabled>_ 0</LoggingEnabled>
|
|
||||||
<LogFile>_ ""</LogFile>
|
|
||||||
<Category>_ 0</Category>
|
|
||||||
</LogFile>
|
|
||||||
<InterruptLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
<SumSortOrder>0</SumSortOrder>
|
|
||||||
</InterruptLog>
|
|
||||||
<DataLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
</DataLog>
|
|
||||||
<DisassembleMode>
|
|
||||||
<mode>0</mode>
|
|
||||||
</DisassembleMode>
|
|
||||||
<Breakpoints2>
|
|
||||||
<Count>0</Count>
|
|
||||||
</Breakpoints2>
|
|
||||||
<Interrupts>
|
|
||||||
<Enabled>1</Enabled>
|
|
||||||
<Irq0>_ 0 9999 0 9999 1 0 0 100 0 1 "IRQ 1 0x18 CPSR.I"</Irq0>
|
|
||||||
<Count>1</Count>
|
|
||||||
</Interrupts>
|
|
||||||
<MemConfig>
|
|
||||||
<Base>1</Base>
|
|
||||||
<Manual>0</Manual>
|
|
||||||
<Ddf>1</Ddf>
|
|
||||||
<TypeViol>0</TypeViol>
|
|
||||||
<Stop>1</Stop>
|
|
||||||
</MemConfig>
|
|
||||||
<Aliases>
|
|
||||||
<Count>0</Count>
|
|
||||||
<SuppressDialog>0</SuppressDialog>
|
|
||||||
</Aliases>
|
|
||||||
<Simulator>
|
|
||||||
<Freq>10000000</Freq>
|
|
||||||
<FreqHi>0</FreqHi>
|
|
||||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
|
||||||
</Simulator>
|
|
||||||
</settings>
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
@REM This batch file has been generated by the IAR Embedded Workbench
|
|
||||||
@REM C-SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
@REM the cspybat command line utility using the appropriate settings.
|
|
||||||
@REM
|
|
||||||
@REM Note that this file is generated every time a new debug session
|
|
||||||
@REM is initialized, so you may want to move or rename the file before
|
|
||||||
@REM making changes.
|
|
||||||
@REM
|
|
||||||
@REM You can launch cspybat by typing the name of this batch file followed
|
|
||||||
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
|
|
||||||
@REM
|
|
||||||
@REM Read about available command line parameters in the C-SPY Debugging
|
|
||||||
@REM Guide. Hints about additional command line parameters that may be
|
|
||||||
@REM useful in specific cases:
|
|
||||||
@REM --download_only Downloads a code image without starting a debug
|
|
||||||
@REM session afterwards.
|
|
||||||
@REM --silent Omits the sign-on message.
|
|
||||||
@REM --timeout Limits the maximum allowed execution time.
|
|
||||||
@REM
|
|
||||||
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
|
|
||||||
if not "%~1" == "" goto debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:debugFile
|
|
||||||
|
|
||||||
@echo on
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" "--debug_file=%~1" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
:end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
param([String]$debugfile = "");
|
|
||||||
|
|
||||||
# This powershell file has been generated by the IAR Embedded Workbench
|
|
||||||
# C - SPY Debugger, as an aid to preparing a command line for running
|
|
||||||
# the cspybat command line utility using the appropriate settings.
|
|
||||||
#
|
|
||||||
# Note that this file is generated every time a new debug session
|
|
||||||
# is initialized, so you may want to move or rename the file before
|
|
||||||
# making changes.
|
|
||||||
#
|
|
||||||
# You can launch cspybat by typing Powershell.exe -File followed by the name of this batch file, followed
|
|
||||||
# by the name of the debug file (usually an ELF / DWARF or UBROF file).
|
|
||||||
#
|
|
||||||
# Read about available command line parameters in the C - SPY Debugging
|
|
||||||
# Guide. Hints about additional command line parameters that may be
|
|
||||||
# useful in specific cases :
|
|
||||||
# --download_only Downloads a code image without starting a debug
|
|
||||||
# session afterwards.
|
|
||||||
# --silent Omits the sign - on message.
|
|
||||||
# --timeout Limits the maximum allowed execution time.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
if ($debugfile -eq "")
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
& "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\common\bin\cspybat" -f "C:\release\threadx\settings\tx.Debug.general.xcl" --debug_file=$debugfile --backend -f "C:\release\threadx\settings\tx.Debug.driver.xcl"
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
"--endian=little"
|
|
||||||
|
|
||||||
"--cpu=ARM9TDMI"
|
|
||||||
|
|
||||||
"--fpu=None"
|
|
||||||
|
|
||||||
"--semihosting"
|
|
||||||
|
|
||||||
"--multicore_nr_of_cores=1"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armproc.dll"
|
|
||||||
|
|
||||||
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armsim2.dll"
|
|
||||||
|
|
||||||
"C:\release\threadx\Debug\Exe\tx.out"
|
|
||||||
|
|
||||||
--plugin "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0_2\arm\bin\armbat.dll"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<crun>
|
|
||||||
<version>1</version>
|
|
||||||
<filter_entries>
|
|
||||||
<filter index="0" type="default">
|
|
||||||
<type>*</type>
|
|
||||||
<start_file>*</start_file>
|
|
||||||
<end_file>*</end_file>
|
|
||||||
<action_debugger>0</action_debugger>
|
|
||||||
<action_log>1</action_log>
|
|
||||||
</filter>
|
|
||||||
</filter_entries>
|
|
||||||
</crun>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Project>
|
|
||||||
<WindowStorage />
|
|
||||||
</Project>
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<settings>
|
|
||||||
<InterruptLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
<SumSortOrder>0</SumSortOrder>
|
|
||||||
</InterruptLog>
|
|
||||||
<DataLog>
|
|
||||||
<LogEnabled>0</LogEnabled>
|
|
||||||
<GraphEnabled>0</GraphEnabled>
|
|
||||||
<ShowTimeLog>1</ShowTimeLog>
|
|
||||||
<SumEnabled>0</SumEnabled>
|
|
||||||
<ShowTimeSum>1</ShowTimeSum>
|
|
||||||
</DataLog>
|
|
||||||
<Stack>
|
|
||||||
<FillEnabled>0</FillEnabled>
|
|
||||||
<OverflowWarningsEnabled>1</OverflowWarningsEnabled>
|
|
||||||
<WarningThreshold>90</WarningThreshold>
|
|
||||||
<SpWarningsEnabled>1</SpWarningsEnabled>
|
|
||||||
<WarnLogOnly>1</WarnLogOnly>
|
|
||||||
<UseTrigger>1</UseTrigger>
|
|
||||||
<TriggerName>main</TriggerName>
|
|
||||||
<LimitSize>0</LimitSize>
|
|
||||||
<ByteLimit>50</ByteLimit>
|
|
||||||
</Stack>
|
|
||||||
<DisassembleMode>
|
|
||||||
<mode>0</mode>
|
|
||||||
</DisassembleMode>
|
|
||||||
<Breakpoints2>
|
|
||||||
<Count>0</Count>
|
|
||||||
</Breakpoints2>
|
|
||||||
<Interrupts>
|
|
||||||
<Enabled>1</Enabled>
|
|
||||||
</Interrupts>
|
|
||||||
<MemConfig>
|
|
||||||
<Base>1</Base>
|
|
||||||
<Manual>0</Manual>
|
|
||||||
<Ddf>1</Ddf>
|
|
||||||
<TypeViol>0</TypeViol>
|
|
||||||
<Stop>1</Stop>
|
|
||||||
</MemConfig>
|
|
||||||
<Trace1>
|
|
||||||
<Enabled>0</Enabled>
|
|
||||||
<ShowSource>1</ShowSource>
|
|
||||||
</Trace1>
|
|
||||||
<Aliases>
|
|
||||||
<Count>0</Count>
|
|
||||||
<SuppressDialog>0</SuppressDialog>
|
|
||||||
</Aliases>
|
|
||||||
<Simulator>
|
|
||||||
<Freq>10000000</Freq>
|
|
||||||
<FreqHi>0</FreqHi>
|
|
||||||
<MultiCoreRunAll>1</MultiCoreRunAll>
|
|
||||||
</Simulator>
|
|
||||||
</settings>
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h ARM9/IAR */
|
/* tx_port.h ARM9/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -334,9 +337,9 @@ __intrinsic void __set_CPSR( unsigned long );
|
|||||||
|
|
||||||
|
|
||||||
#if (__VER__ < 8002000)
|
#if (__VER__ < 8002000)
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned long interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA ULONG interrupt_save;
|
||||||
#else
|
#else
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = __get_CPSR(); \
|
#define TX_DISABLE interrupt_save = __get_CPSR(); \
|
||||||
@@ -372,7 +375,7 @@ void _tx_thread_interrupt_restore(UINT old_posture);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/IAR Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/IAR Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
#ifdef TX_MISRA_ENABLE
|
#ifdef TX_MISRA_ENABLE
|
||||||
extern CHAR _tx_version_id[100];
|
extern CHAR _tx_version_id[100];
|
||||||
|
|||||||
@@ -518,6 +518,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX version 6.1 for ARM9 using IAR's ARM tools.
|
09-30-2020 Initial ThreadX version 6.1 for ARM9 using IAR's ARM tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
351
ports/c667x/ccs/example_build/tx/Release/makefile
Normal file
351
ports/c667x/ccs/example_build/tx/Release/makefile
Normal file
@@ -0,0 +1,351 @@
|
|||||||
|
################################################################################
|
||||||
|
# Automatically-generated file. Do not edit!
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
SHELL = cmd.exe
|
||||||
|
|
||||||
|
CG_TOOL_ROOT := C:/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4
|
||||||
|
|
||||||
|
GEN_OPTS__FLAG :=
|
||||||
|
GEN_CMDS__FLAG :=
|
||||||
|
|
||||||
|
ORDERED_OBJS += \
|
||||||
|
"./tx_block_allocate.obj" \
|
||||||
|
"./tx_block_pool_cleanup.obj" \
|
||||||
|
"./tx_block_pool_create.obj" \
|
||||||
|
"./tx_block_pool_delete.obj" \
|
||||||
|
"./tx_block_pool_info_get.obj" \
|
||||||
|
"./tx_block_pool_initialize.obj" \
|
||||||
|
"./tx_block_pool_performance_info_get.obj" \
|
||||||
|
"./tx_block_pool_performance_system_info_get.obj" \
|
||||||
|
"./tx_block_pool_prioritize.obj" \
|
||||||
|
"./tx_block_release.obj" \
|
||||||
|
"./tx_byte_allocate.obj" \
|
||||||
|
"./tx_byte_pool_cleanup.obj" \
|
||||||
|
"./tx_byte_pool_create.obj" \
|
||||||
|
"./tx_byte_pool_delete.obj" \
|
||||||
|
"./tx_byte_pool_info_get.obj" \
|
||||||
|
"./tx_byte_pool_initialize.obj" \
|
||||||
|
"./tx_byte_pool_performance_info_get.obj" \
|
||||||
|
"./tx_byte_pool_performance_system_info_get.obj" \
|
||||||
|
"./tx_byte_pool_prioritize.obj" \
|
||||||
|
"./tx_byte_pool_search.obj" \
|
||||||
|
"./tx_byte_release.obj" \
|
||||||
|
"./tx_event_flags_cleanup.obj" \
|
||||||
|
"./tx_event_flags_create.obj" \
|
||||||
|
"./tx_event_flags_delete.obj" \
|
||||||
|
"./tx_event_flags_get.obj" \
|
||||||
|
"./tx_event_flags_info_get.obj" \
|
||||||
|
"./tx_event_flags_initialize.obj" \
|
||||||
|
"./tx_event_flags_performance_info_get.obj" \
|
||||||
|
"./tx_event_flags_performance_system_info_get.obj" \
|
||||||
|
"./tx_event_flags_set.obj" \
|
||||||
|
"./tx_event_flags_set_notify.obj" \
|
||||||
|
"./tx_initialize_high_level.obj" \
|
||||||
|
"./tx_initialize_kernel_enter.obj" \
|
||||||
|
"./tx_initialize_kernel_setup.obj" \
|
||||||
|
"./tx_mutex_cleanup.obj" \
|
||||||
|
"./tx_mutex_create.obj" \
|
||||||
|
"./tx_mutex_delete.obj" \
|
||||||
|
"./tx_mutex_get.obj" \
|
||||||
|
"./tx_mutex_info_get.obj" \
|
||||||
|
"./tx_mutex_initialize.obj" \
|
||||||
|
"./tx_mutex_performance_info_get.obj" \
|
||||||
|
"./tx_mutex_performance_system_info_get.obj" \
|
||||||
|
"./tx_mutex_prioritize.obj" \
|
||||||
|
"./tx_mutex_priority_change.obj" \
|
||||||
|
"./tx_mutex_put.obj" \
|
||||||
|
"./tx_queue_cleanup.obj" \
|
||||||
|
"./tx_queue_create.obj" \
|
||||||
|
"./tx_queue_delete.obj" \
|
||||||
|
"./tx_queue_flush.obj" \
|
||||||
|
"./tx_queue_front_send.obj" \
|
||||||
|
"./tx_queue_info_get.obj" \
|
||||||
|
"./tx_queue_initialize.obj" \
|
||||||
|
"./tx_queue_performance_info_get.obj" \
|
||||||
|
"./tx_queue_performance_system_info_get.obj" \
|
||||||
|
"./tx_queue_prioritize.obj" \
|
||||||
|
"./tx_queue_receive.obj" \
|
||||||
|
"./tx_queue_send.obj" \
|
||||||
|
"./tx_queue_send_notify.obj" \
|
||||||
|
"./tx_semaphore_ceiling_put.obj" \
|
||||||
|
"./tx_semaphore_cleanup.obj" \
|
||||||
|
"./tx_semaphore_create.obj" \
|
||||||
|
"./tx_semaphore_delete.obj" \
|
||||||
|
"./tx_semaphore_get.obj" \
|
||||||
|
"./tx_semaphore_info_get.obj" \
|
||||||
|
"./tx_semaphore_initialize.obj" \
|
||||||
|
"./tx_semaphore_performance_info_get.obj" \
|
||||||
|
"./tx_semaphore_performance_system_info_get.obj" \
|
||||||
|
"./tx_semaphore_prioritize.obj" \
|
||||||
|
"./tx_semaphore_put.obj" \
|
||||||
|
"./tx_semaphore_put_notify.obj" \
|
||||||
|
"./tx_thread_context_restore.obj" \
|
||||||
|
"./tx_thread_context_save.obj" \
|
||||||
|
"./tx_thread_create.obj" \
|
||||||
|
"./tx_thread_delete.obj" \
|
||||||
|
"./tx_thread_entry_exit_notify.obj" \
|
||||||
|
"./tx_thread_identify.obj" \
|
||||||
|
"./tx_thread_info_get.obj" \
|
||||||
|
"./tx_thread_initialize.obj" \
|
||||||
|
"./tx_thread_interrupt_control.obj" \
|
||||||
|
"./tx_thread_performance_info_get.obj" \
|
||||||
|
"./tx_thread_performance_system_info_get.obj" \
|
||||||
|
"./tx_thread_preemption_change.obj" \
|
||||||
|
"./tx_thread_priority_change.obj" \
|
||||||
|
"./tx_thread_relinquish.obj" \
|
||||||
|
"./tx_thread_reset.obj" \
|
||||||
|
"./tx_thread_resume.obj" \
|
||||||
|
"./tx_thread_schedule.obj" \
|
||||||
|
"./tx_thread_shell_entry.obj" \
|
||||||
|
"./tx_thread_sleep.obj" \
|
||||||
|
"./tx_thread_stack_analyze.obj" \
|
||||||
|
"./tx_thread_stack_build.obj" \
|
||||||
|
"./tx_thread_stack_error_handler.obj" \
|
||||||
|
"./tx_thread_stack_error_notify.obj" \
|
||||||
|
"./tx_thread_suspend.obj" \
|
||||||
|
"./tx_thread_system_preempt_check.obj" \
|
||||||
|
"./tx_thread_system_resume.obj" \
|
||||||
|
"./tx_thread_system_return.obj" \
|
||||||
|
"./tx_thread_system_suspend.obj" \
|
||||||
|
"./tx_thread_terminate.obj" \
|
||||||
|
"./tx_thread_time_slice.obj" \
|
||||||
|
"./tx_thread_time_slice_change.obj" \
|
||||||
|
"./tx_thread_timeout.obj" \
|
||||||
|
"./tx_thread_wait_abort.obj" \
|
||||||
|
"./tx_time_get.obj" \
|
||||||
|
"./tx_time_set.obj" \
|
||||||
|
"./tx_timer_activate.obj" \
|
||||||
|
"./tx_timer_change.obj" \
|
||||||
|
"./tx_timer_create.obj" \
|
||||||
|
"./tx_timer_deactivate.obj" \
|
||||||
|
"./tx_timer_delete.obj" \
|
||||||
|
"./tx_timer_expiration_process.obj" \
|
||||||
|
"./tx_timer_info_get.obj" \
|
||||||
|
"./tx_timer_initialize.obj" \
|
||||||
|
"./tx_timer_interrupt.obj" \
|
||||||
|
"./tx_timer_performance_info_get.obj" \
|
||||||
|
"./tx_timer_performance_system_info_get.obj" \
|
||||||
|
"./tx_timer_system_activate.obj" \
|
||||||
|
"./tx_timer_system_deactivate.obj" \
|
||||||
|
"./tx_timer_thread_entry.obj" \
|
||||||
|
"./tx_trace_buffer_full_notify.obj" \
|
||||||
|
"./tx_trace_disable.obj" \
|
||||||
|
"./tx_trace_enable.obj" \
|
||||||
|
"./tx_trace_event_filter.obj" \
|
||||||
|
"./tx_trace_event_unfilter.obj" \
|
||||||
|
"./tx_trace_initialize.obj" \
|
||||||
|
"./tx_trace_interrupt_control.obj" \
|
||||||
|
"./tx_trace_isr_enter_insert.obj" \
|
||||||
|
"./tx_trace_isr_exit_insert.obj" \
|
||||||
|
"./tx_trace_object_register.obj" \
|
||||||
|
"./tx_trace_object_unregister.obj" \
|
||||||
|
"./tx_trace_user_event_insert.obj" \
|
||||||
|
"./txe_block_allocate.obj" \
|
||||||
|
"./txe_block_pool_create.obj" \
|
||||||
|
"./txe_block_pool_delete.obj" \
|
||||||
|
"./txe_block_pool_info_get.obj" \
|
||||||
|
"./txe_block_pool_prioritize.obj" \
|
||||||
|
"./txe_block_release.obj" \
|
||||||
|
"./txe_byte_allocate.obj" \
|
||||||
|
"./txe_byte_pool_create.obj" \
|
||||||
|
"./txe_byte_pool_delete.obj" \
|
||||||
|
"./txe_byte_pool_info_get.obj" \
|
||||||
|
"./txe_byte_pool_prioritize.obj" \
|
||||||
|
"./txe_byte_release.obj" \
|
||||||
|
"./txe_event_flags_create.obj" \
|
||||||
|
"./txe_event_flags_delete.obj" \
|
||||||
|
"./txe_event_flags_get.obj" \
|
||||||
|
"./txe_event_flags_info_get.obj" \
|
||||||
|
"./txe_event_flags_set.obj" \
|
||||||
|
"./txe_event_flags_set_notify.obj" \
|
||||||
|
"./txe_mutex_create.obj" \
|
||||||
|
"./txe_mutex_delete.obj" \
|
||||||
|
"./txe_mutex_get.obj" \
|
||||||
|
"./txe_mutex_info_get.obj" \
|
||||||
|
"./txe_mutex_prioritize.obj" \
|
||||||
|
"./txe_mutex_put.obj" \
|
||||||
|
"./txe_queue_create.obj" \
|
||||||
|
"./txe_queue_delete.obj" \
|
||||||
|
"./txe_queue_flush.obj" \
|
||||||
|
"./txe_queue_front_send.obj" \
|
||||||
|
"./txe_queue_info_get.obj" \
|
||||||
|
"./txe_queue_prioritize.obj" \
|
||||||
|
"./txe_queue_receive.obj" \
|
||||||
|
"./txe_queue_send.obj" \
|
||||||
|
"./txe_queue_send_notify.obj" \
|
||||||
|
"./txe_semaphore_ceiling_put.obj" \
|
||||||
|
"./txe_semaphore_create.obj" \
|
||||||
|
"./txe_semaphore_delete.obj" \
|
||||||
|
"./txe_semaphore_get.obj" \
|
||||||
|
"./txe_semaphore_info_get.obj" \
|
||||||
|
"./txe_semaphore_prioritize.obj" \
|
||||||
|
"./txe_semaphore_put.obj" \
|
||||||
|
"./txe_semaphore_put_notify.obj" \
|
||||||
|
"./txe_thread_create.obj" \
|
||||||
|
"./txe_thread_delete.obj" \
|
||||||
|
"./txe_thread_entry_exit_notify.obj" \
|
||||||
|
"./txe_thread_info_get.obj" \
|
||||||
|
"./txe_thread_preemption_change.obj" \
|
||||||
|
"./txe_thread_priority_change.obj" \
|
||||||
|
"./txe_thread_relinquish.obj" \
|
||||||
|
"./txe_thread_reset.obj" \
|
||||||
|
"./txe_thread_resume.obj" \
|
||||||
|
"./txe_thread_suspend.obj" \
|
||||||
|
"./txe_thread_terminate.obj" \
|
||||||
|
"./txe_thread_time_slice_change.obj" \
|
||||||
|
"./txe_thread_wait_abort.obj" \
|
||||||
|
"./txe_timer_activate.obj" \
|
||||||
|
"./txe_timer_change.obj" \
|
||||||
|
"./txe_timer_create.obj" \
|
||||||
|
"./txe_timer_deactivate.obj" \
|
||||||
|
"./txe_timer_delete.obj" \
|
||||||
|
"./txe_timer_info_get.obj" \
|
||||||
|
|
||||||
|
-include ../makefile.init
|
||||||
|
|
||||||
|
RM := DEL /F
|
||||||
|
RMDIR := RMDIR /S/Q
|
||||||
|
|
||||||
|
# All of the sources participating in the build are defined here
|
||||||
|
-include sources.mk
|
||||||
|
-include subdir_vars.mk
|
||||||
|
-include subdir_rules.mk
|
||||||
|
-include objects.mk
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
ifneq ($(strip $(C55_DEPS)),)
|
||||||
|
-include $(C55_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C_UPPER_DEPS)),)
|
||||||
|
-include $(C_UPPER_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S67_DEPS)),)
|
||||||
|
-include $(S67_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S62_DEPS)),)
|
||||||
|
-include $(S62_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S_DEPS)),)
|
||||||
|
-include $(S_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(OPT_DEPS)),)
|
||||||
|
-include $(OPT_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C??_DEPS)),)
|
||||||
|
-include $(C??_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(ASM_UPPER_DEPS)),)
|
||||||
|
-include $(ASM_UPPER_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S??_DEPS)),)
|
||||||
|
-include $(S??_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C64_DEPS)),)
|
||||||
|
-include $(C64_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(CXX_DEPS)),)
|
||||||
|
-include $(CXX_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S64_DEPS)),)
|
||||||
|
-include $(S64_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(INO_DEPS)),)
|
||||||
|
-include $(INO_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(CLA_DEPS)),)
|
||||||
|
-include $(CLA_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S55_DEPS)),)
|
||||||
|
-include $(S55_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(SV7A_DEPS)),)
|
||||||
|
-include $(SV7A_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C62_DEPS)),)
|
||||||
|
-include $(C62_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C67_DEPS)),)
|
||||||
|
-include $(C67_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(PDE_DEPS)),)
|
||||||
|
-include $(PDE_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(K_DEPS)),)
|
||||||
|
-include $(K_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
-include $(C_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(CC_DEPS)),)
|
||||||
|
-include $(CC_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C++_DEPS)),)
|
||||||
|
-include $(C++_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(C43_DEPS)),)
|
||||||
|
-include $(C43_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S43_DEPS)),)
|
||||||
|
-include $(S43_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(ASM_DEPS)),)
|
||||||
|
-include $(ASM_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(S_UPPER_DEPS)),)
|
||||||
|
-include $(S_UPPER_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(CPP_DEPS)),)
|
||||||
|
-include $(CPP_DEPS)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(SA_DEPS)),)
|
||||||
|
-include $(SA_DEPS)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
-include ../makefile.defs
|
||||||
|
|
||||||
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
|
LIB_OUTPUTS += \
|
||||||
|
tx.lib \
|
||||||
|
|
||||||
|
LIB_OUTPUTS__QUOTED += \
|
||||||
|
"tx.lib" \
|
||||||
|
|
||||||
|
|
||||||
|
# All Target
|
||||||
|
all: tx.lib
|
||||||
|
|
||||||
|
# Tool invocations
|
||||||
|
tx.lib: $(OBJS) $(OBJ_SRCS) $(LIB_SRCS)
|
||||||
|
ifneq ($(strip $(ORDERED_OBJS)),)
|
||||||
|
@echo 'Building target: "$@"'
|
||||||
|
@echo 'Invoking: C6000 Archiver'
|
||||||
|
"C:/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4/bin/ar6x" r "tx.lib" $(ORDERED_OBJS)
|
||||||
|
@echo 'Finished building target: "$@"'
|
||||||
|
@echo ' '
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Other Targets
|
||||||
|
clean:
|
||||||
|
-$(RM) $(LIB_OUTPUTS__QUOTED)
|
||||||
|
-$(RM) "tx_block_allocate.obj" "tx_block_pool_cleanup.obj" "tx_block_pool_create.obj" "tx_block_pool_delete.obj" "tx_block_pool_info_get.obj" "tx_block_pool_initialize.obj" "tx_block_pool_performance_info_get.obj" "tx_block_pool_performance_system_info_get.obj" "tx_block_pool_prioritize.obj" "tx_block_release.obj" "tx_byte_allocate.obj" "tx_byte_pool_cleanup.obj" "tx_byte_pool_create.obj" "tx_byte_pool_delete.obj" "tx_byte_pool_info_get.obj" "tx_byte_pool_initialize.obj" "tx_byte_pool_performance_info_get.obj" "tx_byte_pool_performance_system_info_get.obj" "tx_byte_pool_prioritize.obj" "tx_byte_pool_search.obj" "tx_byte_release.obj" "tx_event_flags_cleanup.obj" "tx_event_flags_create.obj" "tx_event_flags_delete.obj" "tx_event_flags_get.obj" "tx_event_flags_info_get.obj" "tx_event_flags_initialize.obj" "tx_event_flags_performance_info_get.obj" "tx_event_flags_performance_system_info_get.obj" "tx_event_flags_set.obj" "tx_event_flags_set_notify.obj" "tx_initialize_high_level.obj" "tx_initialize_kernel_enter.obj"
|
||||||
|
-$(RM) "tx_initialize_kernel_setup.obj" "tx_mutex_cleanup.obj" "tx_mutex_create.obj" "tx_mutex_delete.obj" "tx_mutex_get.obj" "tx_mutex_info_get.obj" "tx_mutex_initialize.obj" "tx_mutex_performance_info_get.obj" "tx_mutex_performance_system_info_get.obj" "tx_mutex_prioritize.obj" "tx_mutex_priority_change.obj" "tx_mutex_put.obj" "tx_queue_cleanup.obj" "tx_queue_create.obj" "tx_queue_delete.obj" "tx_queue_flush.obj" "tx_queue_front_send.obj" "tx_queue_info_get.obj" "tx_queue_initialize.obj" "tx_queue_performance_info_get.obj" "tx_queue_performance_system_info_get.obj" "tx_queue_prioritize.obj" "tx_queue_receive.obj" "tx_queue_send.obj" "tx_queue_send_notify.obj" "tx_semaphore_ceiling_put.obj" "tx_semaphore_cleanup.obj" "tx_semaphore_create.obj" "tx_semaphore_delete.obj" "tx_semaphore_get.obj" "tx_semaphore_info_get.obj" "tx_semaphore_initialize.obj" "tx_semaphore_performance_info_get.obj" "tx_semaphore_performance_system_info_get.obj" "tx_semaphore_prioritize.obj" "tx_semaphore_put.obj" "tx_semaphore_put_notify.obj"
|
||||||
|
-$(RM) "tx_thread_context_restore.obj" "tx_thread_context_save.obj" "tx_thread_create.obj" "tx_thread_delete.obj" "tx_thread_entry_exit_notify.obj" "tx_thread_identify.obj" "tx_thread_info_get.obj" "tx_thread_initialize.obj" "tx_thread_interrupt_control.obj" "tx_thread_performance_info_get.obj" "tx_thread_performance_system_info_get.obj" "tx_thread_preemption_change.obj" "tx_thread_priority_change.obj" "tx_thread_relinquish.obj" "tx_thread_reset.obj" "tx_thread_resume.obj" "tx_thread_schedule.obj" "tx_thread_shell_entry.obj" "tx_thread_sleep.obj" "tx_thread_stack_analyze.obj" "tx_thread_stack_build.obj" "tx_thread_stack_error_handler.obj" "tx_thread_stack_error_notify.obj" "tx_thread_suspend.obj" "tx_thread_system_preempt_check.obj" "tx_thread_system_resume.obj" "tx_thread_system_return.obj" "tx_thread_system_suspend.obj" "tx_thread_terminate.obj" "tx_thread_time_slice.obj" "tx_thread_time_slice_change.obj" "tx_thread_timeout.obj" "tx_thread_wait_abort.obj" "tx_time_get.obj" "tx_time_set.obj"
|
||||||
|
-$(RM) "tx_timer_activate.obj" "tx_timer_change.obj" "tx_timer_create.obj" "tx_timer_deactivate.obj" "tx_timer_delete.obj" "tx_timer_expiration_process.obj" "tx_timer_info_get.obj" "tx_timer_initialize.obj" "tx_timer_interrupt.obj" "tx_timer_performance_info_get.obj" "tx_timer_performance_system_info_get.obj" "tx_timer_system_activate.obj" "tx_timer_system_deactivate.obj" "tx_timer_thread_entry.obj" "tx_trace_buffer_full_notify.obj" "tx_trace_disable.obj" "tx_trace_enable.obj" "tx_trace_event_filter.obj" "tx_trace_event_unfilter.obj" "tx_trace_initialize.obj" "tx_trace_interrupt_control.obj" "tx_trace_isr_enter_insert.obj" "tx_trace_isr_exit_insert.obj" "tx_trace_object_register.obj" "tx_trace_object_unregister.obj" "tx_trace_user_event_insert.obj" "txe_block_allocate.obj" "txe_block_pool_create.obj" "txe_block_pool_delete.obj" "txe_block_pool_info_get.obj" "txe_block_pool_prioritize.obj" "txe_block_release.obj" "txe_byte_allocate.obj" "txe_byte_pool_create.obj" "txe_byte_pool_delete.obj" "txe_byte_pool_info_get.obj"
|
||||||
|
-$(RM) "txe_byte_pool_prioritize.obj" "txe_byte_release.obj" "txe_event_flags_create.obj" "txe_event_flags_delete.obj" "txe_event_flags_get.obj" "txe_event_flags_info_get.obj" "txe_event_flags_set.obj" "txe_event_flags_set_notify.obj" "txe_mutex_create.obj" "txe_mutex_delete.obj" "txe_mutex_get.obj" "txe_mutex_info_get.obj" "txe_mutex_prioritize.obj" "txe_mutex_put.obj" "txe_queue_create.obj" "txe_queue_delete.obj" "txe_queue_flush.obj" "txe_queue_front_send.obj" "txe_queue_info_get.obj" "txe_queue_prioritize.obj" "txe_queue_receive.obj" "txe_queue_send.obj" "txe_queue_send_notify.obj" "txe_semaphore_ceiling_put.obj" "txe_semaphore_create.obj" "txe_semaphore_delete.obj" "txe_semaphore_get.obj" "txe_semaphore_info_get.obj" "txe_semaphore_prioritize.obj" "txe_semaphore_put.obj" "txe_semaphore_put_notify.obj" "txe_thread_create.obj" "txe_thread_delete.obj" "txe_thread_entry_exit_notify.obj" "txe_thread_info_get.obj" "txe_thread_preemption_change.obj" "txe_thread_priority_change.obj" "txe_thread_relinquish.obj"
|
||||||
|
-$(RM) "txe_thread_reset.obj" "txe_thread_resume.obj" "txe_thread_suspend.obj" "txe_thread_terminate.obj" "txe_thread_time_slice_change.obj" "txe_thread_wait_abort.obj" "txe_timer_activate.obj" "txe_timer_change.obj" "txe_timer_create.obj" "txe_timer_deactivate.obj" "txe_timer_delete.obj" "txe_timer_info_get.obj"
|
||||||
|
-$(RM) "tx_block_allocate.d" "tx_block_pool_cleanup.d" "tx_block_pool_create.d" "tx_block_pool_delete.d" "tx_block_pool_info_get.d" "tx_block_pool_initialize.d" "tx_block_pool_performance_info_get.d" "tx_block_pool_performance_system_info_get.d" "tx_block_pool_prioritize.d" "tx_block_release.d" "tx_byte_allocate.d" "tx_byte_pool_cleanup.d" "tx_byte_pool_create.d" "tx_byte_pool_delete.d" "tx_byte_pool_info_get.d" "tx_byte_pool_initialize.d" "tx_byte_pool_performance_info_get.d" "tx_byte_pool_performance_system_info_get.d" "tx_byte_pool_prioritize.d" "tx_byte_pool_search.d" "tx_byte_release.d" "tx_event_flags_cleanup.d" "tx_event_flags_create.d" "tx_event_flags_delete.d" "tx_event_flags_get.d" "tx_event_flags_info_get.d" "tx_event_flags_initialize.d" "tx_event_flags_performance_info_get.d" "tx_event_flags_performance_system_info_get.d" "tx_event_flags_set.d" "tx_event_flags_set_notify.d" "tx_initialize_high_level.d" "tx_initialize_kernel_enter.d" "tx_initialize_kernel_setup.d" "tx_mutex_cleanup.d"
|
||||||
|
-$(RM) "tx_mutex_create.d" "tx_mutex_delete.d" "tx_mutex_get.d" "tx_mutex_info_get.d" "tx_mutex_initialize.d" "tx_mutex_performance_info_get.d" "tx_mutex_performance_system_info_get.d" "tx_mutex_prioritize.d" "tx_mutex_priority_change.d" "tx_mutex_put.d" "tx_queue_cleanup.d" "tx_queue_create.d" "tx_queue_delete.d" "tx_queue_flush.d" "tx_queue_front_send.d" "tx_queue_info_get.d" "tx_queue_initialize.d" "tx_queue_performance_info_get.d" "tx_queue_performance_system_info_get.d" "tx_queue_prioritize.d" "tx_queue_receive.d" "tx_queue_send.d" "tx_queue_send_notify.d" "tx_semaphore_ceiling_put.d" "tx_semaphore_cleanup.d" "tx_semaphore_create.d" "tx_semaphore_delete.d" "tx_semaphore_get.d" "tx_semaphore_info_get.d" "tx_semaphore_initialize.d" "tx_semaphore_performance_info_get.d" "tx_semaphore_performance_system_info_get.d" "tx_semaphore_prioritize.d" "tx_semaphore_put.d" "tx_semaphore_put_notify.d" "tx_thread_create.d" "tx_thread_delete.d" "tx_thread_entry_exit_notify.d" "tx_thread_identify.d" "tx_thread_info_get.d"
|
||||||
|
-$(RM) "tx_thread_initialize.d" "tx_thread_performance_info_get.d" "tx_thread_performance_system_info_get.d" "tx_thread_preemption_change.d" "tx_thread_priority_change.d" "tx_thread_relinquish.d" "tx_thread_reset.d" "tx_thread_resume.d" "tx_thread_shell_entry.d" "tx_thread_sleep.d" "tx_thread_stack_analyze.d" "tx_thread_stack_error_handler.d" "tx_thread_stack_error_notify.d" "tx_thread_suspend.d" "tx_thread_system_preempt_check.d" "tx_thread_system_resume.d" "tx_thread_system_suspend.d" "tx_thread_terminate.d" "tx_thread_time_slice.d" "tx_thread_time_slice_change.d" "tx_thread_timeout.d" "tx_thread_wait_abort.d" "tx_time_get.d" "tx_time_set.d" "tx_timer_activate.d" "tx_timer_change.d" "tx_timer_create.d" "tx_timer_deactivate.d" "tx_timer_delete.d" "tx_timer_expiration_process.d" "tx_timer_info_get.d" "tx_timer_initialize.d" "tx_timer_performance_info_get.d" "tx_timer_performance_system_info_get.d" "tx_timer_system_activate.d" "tx_timer_system_deactivate.d" "tx_timer_thread_entry.d" "tx_trace_buffer_full_notify.d"
|
||||||
|
-$(RM) "tx_trace_disable.d" "tx_trace_enable.d" "tx_trace_event_filter.d" "tx_trace_event_unfilter.d" "tx_trace_initialize.d" "tx_trace_interrupt_control.d" "tx_trace_isr_enter_insert.d" "tx_trace_isr_exit_insert.d" "tx_trace_object_register.d" "tx_trace_object_unregister.d" "tx_trace_user_event_insert.d" "txe_block_allocate.d" "txe_block_pool_create.d" "txe_block_pool_delete.d" "txe_block_pool_info_get.d" "txe_block_pool_prioritize.d" "txe_block_release.d" "txe_byte_allocate.d" "txe_byte_pool_create.d" "txe_byte_pool_delete.d" "txe_byte_pool_info_get.d" "txe_byte_pool_prioritize.d" "txe_byte_release.d" "txe_event_flags_create.d" "txe_event_flags_delete.d" "txe_event_flags_get.d" "txe_event_flags_info_get.d" "txe_event_flags_set.d" "txe_event_flags_set_notify.d" "txe_mutex_create.d" "txe_mutex_delete.d" "txe_mutex_get.d" "txe_mutex_info_get.d" "txe_mutex_prioritize.d" "txe_mutex_put.d" "txe_queue_create.d" "txe_queue_delete.d" "txe_queue_flush.d" "txe_queue_front_send.d" "txe_queue_info_get.d"
|
||||||
|
-$(RM) "txe_queue_prioritize.d" "txe_queue_receive.d" "txe_queue_send.d" "txe_queue_send_notify.d" "txe_semaphore_ceiling_put.d" "txe_semaphore_create.d" "txe_semaphore_delete.d" "txe_semaphore_get.d" "txe_semaphore_info_get.d" "txe_semaphore_prioritize.d" "txe_semaphore_put.d" "txe_semaphore_put_notify.d" "txe_thread_create.d" "txe_thread_delete.d" "txe_thread_entry_exit_notify.d" "txe_thread_info_get.d" "txe_thread_preemption_change.d" "txe_thread_priority_change.d" "txe_thread_relinquish.d" "txe_thread_reset.d" "txe_thread_resume.d" "txe_thread_suspend.d" "txe_thread_terminate.d" "txe_thread_time_slice_change.d" "txe_thread_wait_abort.d" "txe_timer_activate.d" "txe_timer_change.d" "txe_timer_create.d" "txe_timer_deactivate.d" "txe_timer_delete.d" "txe_timer_info_get.d"
|
||||||
|
-$(RM) "tx_thread_context_restore.d" "tx_thread_context_save.d" "tx_thread_interrupt_control.d" "tx_thread_schedule.d" "tx_thread_stack_build.d" "tx_thread_system_return.d" "tx_timer_interrupt.d"
|
||||||
|
-@echo 'Finished clean'
|
||||||
|
-@echo ' '
|
||||||
|
|
||||||
|
.PHONY: all clean dependents
|
||||||
|
.SECONDARY:
|
||||||
|
|
||||||
|
-include ../makefile.targets
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h C667x/TI */
|
/* tx_port.h C667x/TI */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -237,7 +240,7 @@ typedef unsigned short USHORT;
|
|||||||
is used to define a local function save area for the disable and restore
|
is used to define a local function save area for the disable and restore
|
||||||
macros. */
|
macros. */
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#ifdef TX_SKIP_INTRINSICS
|
#ifdef TX_SKIP_INTRINSICS
|
||||||
unsigned int _tx_thread_interrupt_control(unsigned int);
|
unsigned int _tx_thread_interrupt_control(unsigned int);
|
||||||
@@ -264,7 +267,7 @@ unsigned int _tx_thread_interrupt_control(unsigned int);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX C667x/TI Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX C667x/TI Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -238,6 +238,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for TMS320C667x using TI Code Composer tools.
|
09-30-2020 Initial ThreadX 6.1 version for TMS320C667x using TI Code Composer tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h Cortex-A15/AC6 */
|
/* tx_port.h Cortex-A15/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -272,14 +275,14 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save, tx_temp;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save, tx_temp;
|
||||||
|
|
||||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||||
#define TX_DISABLE asm volatile (" MRS %0,CPSR; CPSID if ": "=r" (interrupt_save) );
|
#define TX_DISABLE asm volatile (" MRS %0,CPSR; CPSID if ": "=r" (interrupt_save) );
|
||||||
@@ -313,7 +316,7 @@ void tx_thread_vfp_disable(void);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A15/AC6 Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A15/AC6 Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -332,6 +332,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for Cortex-A15 using AC6 tools.
|
09-30-2020 Initial ThreadX 6.1 version for Cortex-A15 using AC6 tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h Cortex-A15/GNU */
|
/* tx_port.h Cortex-A15/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -272,14 +275,14 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save, tx_temp;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save, tx_temp;
|
||||||
|
|
||||||
#ifdef TX_ENABLE_FIQ_SUPPORT
|
#ifdef TX_ENABLE_FIQ_SUPPORT
|
||||||
#define TX_DISABLE asm volatile (" MRS %0,CPSR; CPSID if ": "=r" (interrupt_save) );
|
#define TX_DISABLE asm volatile (" MRS %0,CPSR; CPSID if ": "=r" (interrupt_save) );
|
||||||
@@ -313,7 +316,7 @@ void tx_thread_vfp_disable(void);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A15/GNU Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A15/GNU Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -503,6 +503,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for Cortex-A15 using GNU tools.
|
09-30-2020 Initial ThreadX 6.1 version for Cortex-A15 using GNU tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h Cortex-A15/IAR */
|
/* tx_port.h Cortex-A15/IAR */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -336,9 +339,9 @@ __intrinsic void __set_CPSR( unsigned long );
|
|||||||
|
|
||||||
|
|
||||||
#if (__VER__ < 8002000)
|
#if (__VER__ < 8002000)
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned long interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA ULONG interrupt_save;
|
||||||
#else
|
#else
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -382,7 +385,7 @@ void tx_thread_vfp_disable(void);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A15/IAR Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A15/IAR Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
#ifdef TX_MISRA_ENABLE
|
#ifdef TX_MISRA_ENABLE
|
||||||
extern CHAR _tx_version_id[100];
|
extern CHAR _tx_version_id[100];
|
||||||
|
|||||||
@@ -534,6 +534,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX version 6.1 for Cortex-A15 using IAR's ARM tools.
|
09-30-2020 Initial ThreadX version 6.1 for Cortex-A15 using IAR's ARM tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<project>
|
|
||||||
|
|
||||||
<configuration id="com.arm.eclipse.build.config.v6.exe.debug.base.515451048" name="Debug">
|
|
||||||
|
|
||||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
|
||||||
|
|
||||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider class="com.arm.eclipse.builder.armcc.discovery.ArmCompiler6LanguageSettingsProvider" console="false" env-hash="-890320463837788586" id="com.arm.eclipse.builder.armcc.v6.langprovider" keep-relative-paths="false" name="Arm Compiler 6 Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.c.ac6"/>
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.cpp.ac6"/>
|
|
||||||
|
|
||||||
</provider>
|
|
||||||
|
|
||||||
</extension>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
<configuration id="com.arm.eclipse.build.config.v6.exe.release.base.262471578" name="Release">
|
|
||||||
|
|
||||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
|
||||||
|
|
||||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider class="com.arm.eclipse.builder.armcc.discovery.ArmCompiler6LanguageSettingsProvider" console="false" env-hash="-936373864897685072" id="com.arm.eclipse.builder.armcc.v6.langprovider" keep-relative-paths="false" name="Arm Compiler 6 Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.c.ac6"/>
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.cpp.ac6"/>
|
|
||||||
|
|
||||||
</provider>
|
|
||||||
|
|
||||||
</extension>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<project>
|
|
||||||
|
|
||||||
<configuration id="com.arm.eclipse.build.config.v6.lib.debug.base.332565915" name="Debug">
|
|
||||||
|
|
||||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
|
||||||
|
|
||||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider class="com.arm.eclipse.builder.armcc.discovery.ArmCompiler6LanguageSettingsProvider" console="false" env-hash="-890320463837788586" id="com.arm.eclipse.builder.armcc.v6.langprovider" keep-relative-paths="false" name="Arm Compiler 6 Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.c.ac6"/>
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.cpp.ac6"/>
|
|
||||||
|
|
||||||
</provider>
|
|
||||||
|
|
||||||
</extension>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
<configuration id="com.arm.eclipse.build.config.v6.lib.release.base.979090268" name="Release">
|
|
||||||
|
|
||||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
|
||||||
|
|
||||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
|
||||||
|
|
||||||
<provider class="com.arm.eclipse.builder.armcc.discovery.ArmCompiler6LanguageSettingsProvider" console="false" env-hash="-936373864897685072" id="com.arm.eclipse.builder.armcc.v6.langprovider" keep-relative-paths="false" name="Arm Compiler 6 Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.c.ac6"/>
|
|
||||||
|
|
||||||
<language-scope id="com.arm.eclipse.builder.armcc.lang.cpp.ac6"/>
|
|
||||||
|
|
||||||
</provider>
|
|
||||||
|
|
||||||
</extension>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h Cortex-A35/AC6 */
|
/* tx_port.h Cortex-A35/AC6 */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -311,7 +314,7 @@ unsigned long long temp;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
#define TX_DISABLE interrupt_save = __disable_interrupts();
|
#define TX_DISABLE interrupt_save = __disable_interrupts();
|
||||||
#define TX_RESTORE __restore_interrupts(interrupt_save);
|
#define TX_RESTORE __restore_interrupts(interrupt_save);
|
||||||
|
|
||||||
@@ -321,7 +324,7 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
@@ -354,7 +357,7 @@ VOID tx_thread_fp_disable(VOID);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A35/AC6 Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A35/AC6 Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -243,6 +243,9 @@ For generic code revision information, please refer to the readme_threadx_generi
|
|||||||
file, which is included in your distribution. The following details the revision
|
file, which is included in your distribution. The following details the revision
|
||||||
information associated with this specific port of ThreadX:
|
information associated with this specific port of ThreadX:
|
||||||
|
|
||||||
|
04-02-2021 Release 6.1.6 changes:
|
||||||
|
tx_port.h Updated macro definition
|
||||||
|
|
||||||
09-30-2020 Initial ThreadX 6.1 version for Cortex-A35 using AC6 tools.
|
09-30-2020 Initial ThreadX 6.1 version for Cortex-A35 using AC6 tools.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* PORT SPECIFIC C INFORMATION RELEASE */
|
/* PORT SPECIFIC C INFORMATION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_port.h Cortex-A35/GNU */
|
/* tx_port.h Cortex-A35/GNU */
|
||||||
/* 6.1 */
|
/* 6.1.6 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
|
/* 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 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -311,7 +314,7 @@ unsigned long long temp;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
#define TX_DISABLE interrupt_save = __disable_interrupts();
|
#define TX_DISABLE interrupt_save = __disable_interrupts();
|
||||||
#define TX_RESTORE __restore_interrupts(interrupt_save);
|
#define TX_RESTORE __restore_interrupts(interrupt_save);
|
||||||
|
|
||||||
@@ -321,7 +324,7 @@ unsigned int _tx_thread_interrupt_disable(void);
|
|||||||
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
unsigned int _tx_thread_interrupt_restore(UINT old_posture);
|
||||||
|
|
||||||
|
|
||||||
#define TX_INTERRUPT_SAVE_AREA unsigned int interrupt_save;
|
#define TX_INTERRUPT_SAVE_AREA UINT interrupt_save;
|
||||||
|
|
||||||
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
#define TX_DISABLE interrupt_save = _tx_thread_interrupt_disable();
|
||||||
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
#define TX_RESTORE _tx_thread_interrupt_restore(interrupt_save);
|
||||||
@@ -354,7 +357,7 @@ VOID tx_thread_fp_disable(VOID);
|
|||||||
|
|
||||||
#ifdef TX_THREAD_INIT
|
#ifdef TX_THREAD_INIT
|
||||||
CHAR _tx_version_id[] =
|
CHAR _tx_version_id[] =
|
||||||
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A35/GNU Version 6.1 *";
|
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Cortex-A35/GNU Version 6.1.6 *";
|
||||||
#else
|
#else
|
||||||
extern CHAR _tx_version_id[];
|
extern CHAR _tx_version_id[];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user