67 Commits

Author SHA1 Message Date
Xiuwen Cai
39f3c86c61 Add error handling in lock initialization in the Xtensa port (#340)
* Add error handling in lock initialization.

* Update release data and version.
2023-12-28 13:17:58 +08:00
Xiuwen Cai
9f3e35d3dc Add check for overflow in queue size calculation in RTOS compatibility layer. (#339)
* Add check for overflow in queue size calculation.

* Update release data and version.
2023-12-28 13:17:40 +08:00
TiejunZhou
d9ffb0f97d Update release date and version (#338)
* Update version number in API header

* Update release date and version
2023-12-28 10:51:29 +08:00
Yajun Xia
e73843f6d4 Added thumb mode support for threadX GNU ports on armv7a platforms. (#333)
* Added thumb mode support for threadX GNU ports on armv7a platforms.

https://msazure.visualstudio.com/One/_workitems/edit/26105175/

* move the swi interrupt to tx_initialize_low_level.S.

* update the test log.
2023-12-28 09:37:39 +08:00
Bo Chen
dbfad5d126 Merge pull request #336 from wenhui-xie/add_sudo
Add sudo to move coverage folder created by root user.
2023-12-22 10:28:34 +08:00
Wenhui Xie
23aa67c948 Add sudo to move coverage folder created by root user. 2023-12-22 01:36:38 +00:00
Ting Zhu
776ea213ce Correct condition syntax in "Prepare Coverage GitHub Pages" step.l (#329)
* Correct syntax.

* Update regression_template.yml

* Update regression_template.yml
2023-11-30 10:52:29 +08:00
Bo Chen
55673c2410 Merge pull request #328 from ting-ms/master
Add additional condition for "Prepare Coverage GitHub Pages" step.
2023-11-29 15:48:44 +08:00
Ting Zhu
ebe373b1f3 Add additional condition for "Prepare Coverage GitHub Pages" step. 2023-11-29 14:17:16 +08:00
CQ Xiao
a8e5d0946c Added input skip_coverage and coverage_name for customiziing. (#327)
* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

Coverage name of all -> default_build_coverage

* Update regression_template.yml

* Update regression_template.yml

Check inputs.skip_coverage to do steps.

* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

Enable coverage upload when manually triggered.

* Update regression_template.yml

* Update regression_template.yml

* Update regression_template.yml

* Update .github/workflows/regression_template.yml

Fix comments.

Co-authored-by: TiejunZhou <50469179+TiejunMS@users.noreply.github.com>

---------

Co-authored-by: TiejunZhou <50469179+TiejunMS@users.noreply.github.com>
2023-11-27 11:50:52 +08:00
TiejunZhou
cad6c42ecc Fix action to run on fork repo for cortex-m builds and unify them (#326) 2023-11-24 16:23:21 +08:00
TiejunZhou
e420e2fa02 Restrict deploy run condition (#325)
* Restrict deploy run condition

* Fail the job for testing purpose

* Revert "Fail the job for testing purpose"

This reverts commit 6ae18cafe2.
2023-11-24 15:41:34 +08:00
TiejunZhou
5f9c713c48 Split artifacts for multiple jobs (#324)
* Test multiple code coverage pages

* Add affix to artifacts

* Test uploading code coverage as artifact

* Deploy GitHub pages at last for multiple jobs

* Test using unified upload pages

* Disable test cases to accelerate experiment

* Fix escape character $

* Revert "Test using unified upload pages"

This reverts commit 3668d9f672.

* Set destination for downloaded artifact

* Use a different artifact name

* Fix escape value

* Revert "Disable test cases to accelerate experiment"

This reverts commit 8468f17d02.

* Override duplicated github-pages in artifact

* Revert "Override duplicated github-pages in artifact"

This reverts commit 17a83aa97d.

* Delete Duplicate Code Coverage Artifact
2023-11-24 13:59:26 +08:00
TiejunZhou
11a7db22b4 Convert ADO pipelines to GitHub actions (#321)
* Convert ADO pipelines to GitHub actions

* Remove version in uses as not valid for local workflows

* Fix cmake path and add deploy url affix

* Add SMP build job

* Fix code coverage URL

* Add affix to titles of steps

* Remove ADO pipelines

* Add affix to titles of code coverage

* separate PR results for multiple jobs

* Revert "separate PR results for multiple jobs"

This reverts commit 6da13540fd.

* separate PR results for multiple jobs
2023-11-23 13:17:52 +08:00
Bo Chen
d17d7bdcbd Merge pull request #314 from ting-ms/master
Update test script to generate JUnit format test report.
2023-11-16 13:31:34 +08:00
tinzhu
2362271d4b Upgrade CMake to the latest. 2023-11-10 15:50:36 +08:00
tinzhu
57c251cd39 Run ctest with additional option "--output-junit" to generate JUnit format test result. 2023-11-10 15:37:49 +08:00
Yajun Xia
cd87763dbd Removed redudant sample_threadX project from Cortex A7 ports_module IAR example_build. (#312)
https://msazure.visualstudio.com/One/_workitems/edit/25784627
2023-11-10 10:31:03 +08:00
TiejunZhou
13b700fd3e Update release version to 6.3.0 and date to 10-31-2023 (#308) 2023-10-23 15:31:03 +08:00
TiejunZhou
9ee2738aec Improved the logic to validate object from application in ThreadX Module (#307) 2023-10-23 14:33:24 +08:00
Yajun Xia
bc4bd804d5 Fixed the issue of the data/bss section cannot be read from ARM FVP debug tool in cortex-A5 GNU port (#306)
https://msazure.visualstudio.com/One/_workitems/edit/25153813/
2023-09-26 09:51:47 +08:00
Yajun Xia
d43cba10b2 Fixed the issue of the data/bss section cannot be read from ARM FVP debug tool in cortex-A9 GNU port. (#303)
https://msazure.visualstudio.com/One/_workitems/edit/25153785/
2023-09-18 16:36:36 +08:00
Yajun Xia
a0a0ef9385 Fixed the issue of the data/bss section cannot be read from ARM FVP debug tool in cortex-A8 GNU port. (#302)
https://msazure.visualstudio.com/One/_workitems/edit/25139203/
2023-09-18 10:32:07 +08:00
Yajun Xia
6aeefea8e6 Fixed the issue of the data/bss section cannot be read from ARM FVP d… (#301)
* Fixed the issue of the data/bss section cannot be read from ARM FVP debug tool in cortex-A7 GNU port.

https://msazure.visualstudio.com/One/_workitems/edit/24597276/

* remove untracked files.
2023-09-15 10:46:20 +08:00
Yajun Xia
cd9007712b Fixed the issue of ports_arch_check failed on the step of copy ports arch on ARMv8 ports. (#300)
https://msazure.visualstudio.com/One/_workitems/edit/25154735/
2023-09-14 09:43:51 +08:00
yajunxiaMS
bc8bed494d Added thumb mode support under IAR for module manager on Cortex-A7 pl… (#289)
* Added thumb mode support under IAR for module manager on Cortex-A7 platform.

* update code for comments.
2023-08-07 17:35:31 +08:00
yajunxiaMS
7fa087d061 Added thumb mode support under GNU for module manager on Cortex-A7 pl… (#287)
* Added thumb mode support under GNU for module manager on Cortex-A7 platform.

* update code for comment.
2023-07-21 09:26:22 +08:00
TiejunZhou
1ffd7c2cde Allow manual trigger for CodeQL action (#286) 2023-07-13 13:24:31 +08:00
TiejunZhou
fd2bf7c19a Enable CodeQL (#285)
* Enable CodeQL

* Build cortex-m0 in CodeQL

* Trigger the CodeQL by cron only
2023-07-13 13:09:47 +08:00
TiejunZhou
8ff9910ddc Added memory barrier before thread scheduling for ARMv8-A ThreadX SMP. (#280) 2023-06-26 09:21:06 +08:00
TiejunZhou
08380caa77 Unify ThreadX and SMP for ARMv8-A. (#275)
* Unify ThreadX and SMP for ARMv8-A.

* Fix path in pipeline to check ports arch.

* Add ignore folders for ARM DS

* Generate ThreadX and SMP ports for ARMv8-A.

* Ignore untracked files for ports_arch check.

* Use arch instead of CPU to simplify the project management.
2023-06-21 18:23:36 +08:00
Yanwu Cai
1b2995cea8 Fix compile warnings in Linux port. (#276) 2023-06-19 17:45:16 +08:00
TiejunZhou
25a8fa2362 Add a pull request template (#272) 2023-06-06 14:03:35 +08:00
TiejunZhou
71cc95eaed Include tx_user.h in cortex_m33/55/85 IAR port (#267) 2023-05-24 13:31:02 +08:00
Xiuwen Cai
361590dc40 Export _tx_handler_svc_unrecognized as weak symbol. (#264) 2023-05-19 11:06:50 +08:00
TiejunZhou
d66a519685 Fix MISRA issues for ThreadX SMP (#263)
* Fixed MISRA2012 rule 10.4_a

The operands `pool_ptr->tx_byte_pool_fragments' and `2' have essential type categories unsigned 32-bit int and signed 8-bit int, which do not match.

* Fixed MISRA2012 rule 10.4_a

The operands `next_priority' and `TX_MAX_PRIORITIES' have essential type categories unsigned 32-bit int and signed 8-bit int, which do not match.

* Fixed MISRA2012 rule 8.3

Declaration/definition of `_tx_thread_smp_preemptable_threads_get' is inconsistent with previous declaration/definition in types and/or type qualifiers
2023-05-18 15:57:53 +08:00
Xiuwen Cai
6b8ece0ff2 Add random number stack filling option. (#257)
Co-authored-by: TiejunZhou <50469179+TiejunMS@users.noreply.github.com>
2023-05-12 10:13:42 +08:00
Stefan Wick
6d9f25fac9 Update LICENSE.txt (#261) 2023-05-12 09:57:13 +08:00
TiejunZhou
e2a8334f96 Include tx_user.h in cortex_m3/4/7 IAR and AC5 port (#255)
* Include tx_user.h in ARMv7-M IAR port

* Include tx_user.h in ARMv7-M AC5 port

* Include tx_user.h in cortex_m3/4/7 IAR and AC5 port
2023-04-24 09:33:00 +08:00
TiejunZhou
7a3bb8311b Release scripts to validate ThreadX port (#254) 2023-04-23 10:58:21 +08:00
TiejunZhou
b11d1be6ac Update devcontainer to Ubuntu 22.04 (#253) 2023-04-21 09:41:18 +08:00
TiejunZhou
390c5ce1b7 Update CFS usage (#252) 2023-04-20 17:20:15 +08:00
TiejunZhou
672c5e953e Release ARMv7-A architecture ports and add tx_user.h to GNU port assembly files (#250)
* Release ARMv7-A architecture ports

* Add tx_user.h to GNU port assembly files

* Update GitHub action to perform check for Cortex-A ports
2023-04-19 17:56:09 +08:00
TiejunZhou
23680f5e5f Release ARMv7-M and ARMv8-M architecture ports (#249)
* Release ARMv7-M and ARMv8-M architecture ports

* Add a pipeline to check ports_arch
2023-04-18 18:11:20 +08:00
TiejunZhou
d64ef2ab06 Filter the path for PR trigger and add codeowners (#248)
* Filter the path for PR trigger

* Add codeowners

* Fix syntax in pipeline
2023-04-17 13:16:14 +08:00
TiejunZhou
4c4547d5d5 Fix path to test reports in pipeline (#247)
* Fix path to test reports in pipeline

* Fix test case when CPU starves, the thread 2 can run 14 ronuds.
2023-04-17 09:40:59 +08:00
TiejunZhou
0d308c7ae6 Fix random failure in test case threadx_event_flag_suspension_timeout_test.c (#246)
Depending on the starting time, thread 1 can run either 32 or 33 rounds.
2023-04-14 14:55:04 +08:00
TiejunZhou
487ca45752 Merge pull request #244 from azure-rtos/tizho/test
Release ThreadX regression system
2023-04-13 16:57:35 +08:00
Tiejun Zhou
5f430f22e2 Add Azure DevOps pipelines for ThreadX test 2023-04-12 09:40:17 +00:00
Tiejun Zhou
ebeb02b958 Release ThreadX regression system 2023-04-04 09:40:54 +00:00
Tiejun Zhou
ac3b6b326c Update on 31 Mar 2023. Expand to see details.
af5702cbf Include tx_user.h only when TX_INCLUDE_USER_DEFINE_FILE is defined for assembly files
2023-03-31 07:34:47 +00:00
TiejunZhou
dac41f6015 Merge pull request #236 from wickste/patch-1
Update LICENSED-HARDWARE.txt
2023-03-22 09:18:28 +08:00
Stefan Wick
f4d6b638de Update LICENSED-HARDWARE.txt
Adding per Renesas updated support for MPUs
2023-03-21 11:31:09 -07:00
Tiejun Zhou
2aa19f3de0 Release 6.2.1 on 08 Mar 2023. Expand to see details.
cee19603d Include tx_user.h conditionally.
e40e08007 Update owners
d69641273 Update release date and version
394aee52f Add tx_user.h to GNU port assembly files
5cca2ddd0 RISC-V 64 bit port for Microchip
e0f2c373c Link Winmm.lib that required by the high-resolution timer.
6af472a68 Update Win32 port with high resolution timer.
aea7b556a Add DMB ISH barrier inst in ARMv8-A SMP scheduler
19091a262 Add .section .preamble to m3 m4 m7 module ports
ced60e1b7 Add missing parenthesis in ports assembly file
309dc77ca Modules Cortex-A7 IAR new port
c752a4063 Modules Cortex-A7 GNU new port
dc224b90f Fix race condition in tx_thread_wait_abort and update regression test
6e261f5b7 create threadx cmsis-pack
2023-03-08 08:26:22 +00:00
Liya Du
745395d6a2 Update LICENSED-HARDWARE.txt 2023-02-10 13:47:51 -08:00
Liya Du
9bf9fbd86f Update LICENSED-HARDWARE.txt
Add new NXP and Renesas series.
2023-02-10 13:47:29 -08:00
Scott Larson
37f6d0b39c Update on 18 Jan 2023. Expand to see details.
9c3acb6ce armv8-m compile time FPU fix
37daa35e7 added tx_trace.h include to module stop.c
39824289f Remove internal deprecated files.
fe2f80f43 Add a notice for not released file.
7fdd3782a Upgrade to the latest Container Images.
2023-01-18 08:39:40 +00:00
Scott Larson
4e62226eea Update on 16 Dec 2022. Expand to see details.
b5d5df511 #include tx_user.h in assembly files for cortex-m ports
33e04e3d5 initial port of MIPS SMP for GHS and GNU
2eda2c17d capitalize extensions for M23 asm files
21c354ccb Fix armv7-m MPU settings for corner case, unify txm_module_port.h files
4a1ff93f9 remove uneeded include for ac6
c823e91ff update riscv iar example for latest iar tools
5559d185d check module stack for overlap (not kernel stack)
efa9ce7b7 apply patch from mobileye to fix time slice processing
75fdcb722 Updated copy_armv7_cm.yml
de04b9904 initialize unused MPU settings so that aliasing will work
79b317b60 add config directory to IAR RISC-V port in order to use simulator
2022-12-16 08:16:32 +00:00
Scott Larson
b42c5acd8b update IAR RISC-V example 2022-11-17 10:33:54 -08:00
Liya Du
35a301ad3b Update issue templates 2022-11-15 21:03:59 -08:00
Liya Du
e23b09fe0b Update issue templates 2022-11-15 20:48:09 -08:00
Liya Du
aea1a3d8f9 Update issue templates 2022-11-15 20:44:48 -08:00
Scott Larson
ee892502ec add 'config' directory to risc-v iar to support simulator 2022-11-02 08:32:02 -07:00
Tiejun Zhou
3e8e85cdc1 Release 6.2.0 2022-10-26 23:41:13 +00:00
Scott Larson
b871c33620 Merge pull request #206 from azure-rtos/JideshMSFT-fix-cortex_m4-example_build
Delete cortexm_crt0.s and tx_simulator_startup.s which were removed from the latest release
2022-07-29 13:00:47 -07:00
JideshMSFT
b6fb0b8e09 Delete tx_simulator_startup.s 2022-07-29 12:51:43 -07:00
JideshMSFT
35cfbfbd58 Delete cortexm_crt0.s 2022-07-29 12:48:58 -07:00
2918 changed files with 298499 additions and 16407 deletions

View File

@@ -0,0 +1,13 @@
{
"image": "ghcr.io/tiejunms/azure_rtos_docker",
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cmake-tools"
],
"remoteUser": "vscode",
"runArgs": [ "--cap-add=NET_ADMIN"]
}

1
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1 @@
@azure-rtos/admins

35
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve Azure RTOS.
title: ''
labels: bug, hardware
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
Please also mention any information which could help others to understand
the problem you're facing:
- What target device are you using?
- Which version of Azure RTOS?
- What toolchain and environment?
- What have you tried to diagnose or workaround this issue?
**To Reproduce**
Steps to reproduce the behavior:
1. Build my project in IAR Workbench.
1. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Impact**
What impact does this issue have on your progress (e.g., annoyance, showstopper)
**Logs and console output**
If applicable, add console logs or other types of debug information like Wireshark capture as `.zip` file.
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea or enhancement to existing feature for Azure RTOS.
title: ''
labels: feature
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -0,0 +1,19 @@
---
name: Hardware or architecture support
about: Suggest adding hardware or new architecture support.
title: ''
labels: ''
assignees: ''
---
**Is this request related to a particular hardware platform, SoC, board? Please describe.**
Describe in details the hardware support being requested and why this support benefits Azure RTOS.
**Describe why you are asking for this support?**
Describe why you are asking for this support.
If this is a new board or SoC, please state whether you are willing to maintain the Azure RTOS support together with you.
**Additional context**
Add any other context or graphics (drag-and-drop an image) about the hardware here.

5
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,5 @@
## PR checklist
<!--- Put an `x` in all the boxes that apply. -->
- [ ] Updated function header with a short description and version number
- [ ] Added test case for bug fix or new feature
- [ ] Validated on real hardware <!-- hardware - toolchain -->

View File

@@ -1,28 +0,0 @@
name: cache-update
on:
schedule:
- cron: '0 0 */3 * *' # every 30m for testing
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps: # Cache location for arm tools
- name: Cache arm-none-eabi-gcc tools
id: cache-arm-gcc
uses: actions/cache@v1
with:
path: $HOME/arm-none-eabi-gcc-9-2019-q4
key: ${{ runner.os }}-arm-gcc-9-2019-q4
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
with:
release: '9-2019-q4' # The arm-none-eabi-gcc release to use.
directory: $HOME/arm-none-eabi-gcc-9-2019-q4

View File

@@ -1,6 +1,6 @@
# This is a basic workflow to help you get started with Actions # This is a basic workflow to help you get started with Actions
name: cortex_m7 name: cortex_m
# Controls when the action will run. Triggers the workflow on push or pull request # Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch # events but only for the master branch
@@ -9,6 +9,14 @@ on:
branches: [ master ] branches: [ master ]
pull_request: pull_request:
branches: [ master ] branches: [ master ]
paths:
- ".github/workflows/ci_cortex_m.yml"
- 'common/**'
- 'utility/**'
- 'ports/cortex_m0/gnu/**'
- 'ports/cortex_m3/gnu/**'
- 'ports/cortex_m4/gnu/**'
- 'ports/cortex_m7/gnu/**'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel # A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs: jobs:
@@ -17,13 +25,18 @@ jobs:
# The type of runner that the job will run on # The type of runner that the job will run on
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
port: [0, 3, 4, 7]
name: Cortex M${{ matrix.port }} build
# Steps represent a sequence of tasks that will be executed as part of the job # Steps represent a sequence of tasks that will be executed as part of the job
steps: steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout sources recursively - name: Check out the repository
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
submodules: true submodules: true
# Store the arm compilers in the cache to speed up builds # Store the arm compilers in the cache to speed up builds
@@ -52,7 +65,7 @@ jobs:
# Prepare the build system # Prepare the build system
- name: Prepare build system - name: Prepare build system
run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m7.cmake -GNinja . run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m${{ matrix.port }}.cmake -GNinja .
env: env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH" PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"

View File

@@ -1,64 +0,0 @@
# This is a basic workflow to help you get started with Actions
name: cortex_m0
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout sources recursively
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
submodules: true
# Store the arm compilers in the cache to speed up builds
- name: Cache arm-none-eabi-gcc tools
id: cache-arm-gcc
uses: actions/cache@v1
with:
path: $HOME/arm-none-eabi-gcc-9-2019-q4
key: ${{ runner.os }}-arm-gcc-9-2019-q4
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
if: steps.cache-arm-gcc.outputs.cache-hit != 'true'
with:
release: '9-2019-q4' # The arm-none-eabi-gcc release to use.
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment
- name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment
- name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system
- name: Prepare build system
run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m0.cmake -GNinja .
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
- name: Compile and link
run: cmake --build ./build
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"

View File

@@ -1,64 +0,0 @@
# This is a basic workflow to help you get started with Actions
name: cortex_m3
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout sources recursively
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
submodules: true
# Store the arm compilers in the cache to speed up builds
- name: Cache arm-none-eabi-gcc tools
id: cache-arm-gcc
uses: actions/cache@v1
with:
path: $HOME/arm-none-eabi-gcc-9-2019-q4
key: ${{ runner.os }}-arm-gcc-9-2019-q4
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
if: steps.cache-arm-gcc.outputs.cache-hit != 'true'
with:
release: '9-2019-q4' # The arm-none-eabi-gcc release to use.
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment
- name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment
- name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system
- name: Prepare build system
run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m3.cmake -GNinja .
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
- name: Compile and link
run: cmake --build ./build
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"

View File

@@ -1,64 +0,0 @@
# This is a basic workflow to help you get started with Actions
name: cortex_m4
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout sources recursively
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
submodules: true
# Store the arm compilers in the cache to speed up builds
- name: Cache arm-none-eabi-gcc tools
id: cache-arm-gcc
uses: actions/cache@v1
with:
path: $HOME/arm-none-eabi-gcc-9-2019-q4
key: ${{ runner.os }}-arm-gcc-9-2019-q4
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
if: steps.cache-arm-gcc.outputs.cache-hit != 'true'
with:
release: '9-2019-q4' # The arm-none-eabi-gcc release to use.
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment
- name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment
- name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system
- name: Prepare build system
run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m4.cmake -GNinja .
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
- name: Compile and link
run: cmake --build ./build
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"

110
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,110 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
workflow_dispatch:
schedule:
- cron: '33 1 * * 6'
jobs:
analyze:
name: Analyze
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
#- name: Autobuild
# uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
#- run: |
# echo "Run, Build Application using script"
# ./scripts/install.sh
# ./test/tx/cmake/run.sh build
# Store the arm compilers in the cache to speed up builds
- name: Cache arm-none-eabi-gcc tools
id: cache-arm-gcc
uses: actions/cache@v1
with:
path: $HOME/arm-none-eabi-gcc-9-2019-q4
key: ${{ runner.os }}-arm-gcc-9-2019-q4
# Get the arm-non-eabi-gcc toolchain
- name: Install arm-none-eabi-gcc
uses: fiam/arm-none-eabi-gcc@v1
if: steps.cache-arm-gcc.outputs.cache-hit != 'true'
with:
release: '9-2019-q4' # The arm-none-eabi-gcc release to use.
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment
- name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment
- name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system
- name: Prepare build system
run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m0.cmake -GNinja .
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
- name: Compile and link
run: cmake --build ./build
env:
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"

73
.github/workflows/ports_arch_check.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
# This is a basic workflow to help you get started with Actions
name: ports_arch_check
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
pull_request:
branches: [ master ]
paths:
- ".github/workflows/ports_arch_check.yml"
- 'common/**'
- 'common_modules/**'
- 'common_smp/**'
- 'ports/**'
- 'ports_modules/**'
- 'ports_smp/**'
- 'ports_arch/**'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Check ports for cortex-m
cortex-m:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout sources recursively
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
submodules: true
# Copy ports arch
- name: Copy ports arch
run: |
scripts/copy_armv7_m.sh && scripts/copy_armv8_m.sh && scripts/copy_module_armv7_m.sh
if [[ -n $(git status --porcelain -uno) ]]; then
echo "Ports for ARM architecture is not updated"
git status
exit 1
fi
cortex-a:
# Check ports for cortex-a
runs-on: windows-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout sources recursively
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
submodules: true
# Copy ports arch
- name: Copy ports arch
run: |
cd ports_arch/ARMv7-A
pwsh -Command ./update.ps1 -PortSets tx -CopyCommonFiles -CopyPortFiles -CopyExample -PatchFiles
cd ../../ports_arch/ARMv8-A
pwsh -Command ./update.ps1 -PortSets tx,tx_smp -CopyCommonFiles -CopyPortFiles -CopyExample -PatchFiles
if ((git status --porcelain -uno) -ne $null) {
Write-Host "Ports for ARM architecture is not updated"
git status
Exit 1
}

View File

@@ -0,0 +1,197 @@
# This is a basic workflow that is manually triggered
name: regression_template
on:
workflow_call:
inputs:
install_script:
default: './scripts/install.sh'
required: false
type: string
build_script:
default: './scripts/build.sh'
required: false
type: string
test_script:
default: './scripts/test.sh'
required: false
type: string
cmake_path:
default: './test/cmake'
required: false
type: string
skip_test:
default: false
required: false
type: boolean
skip_coverage:
default: false
required: false
type: boolean
coverage_name:
default: 'default_build_coverage'
required: false
type: string
skip_deploy:
default: false
required: false
type: boolean
deploy_list:
default: ''
required: false
type: string
result_affix:
default: ''
required: false
type: string
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "linux_job"
run_tests:
if: ${{ !inputs.skip_test}}
permissions:
contents: read
issues: read
checks: write
pull-requests: write
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Check out the repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install softwares
run: ${{ inputs.install_script }}
- name: Build
run: ${{ inputs.build_script }}
- name: Test
run: ${{ inputs.test_script }}
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2.11.0
if: always()
with:
check_name: Test Results ${{ inputs.result_affix }}
files: |
${{ inputs.cmake_path }}/build/*/*.xml
- name: Upload Test Results
if: success() || failure()
uses: actions/upload-artifact@v3.1.3
with:
name: test_reports ${{ inputs.result_affix }}
path: |
${{ inputs.cmake_path }}/build/*.txt
${{ inputs.cmake_path }}/build/*/Testing/**/*.xml
${{ inputs.cmake_path }}/build/**/regression/output_files/*.bin
- name: Configure GitHub Pages
uses: actions/configure-pages@v3.0.6
- name: Generate Code Coverage Results Summary
if: (!inputs.skip_coverage)
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: ${{ inputs.cmake_path }}/coverage_report/${{ inputs.coverage_name }}.xml
format: markdown
badge: true
hide_complexity: true
output: file
- name: Write Code Coverage Summary
if: (!inputs.skip_coverage)
run: |
echo "## Coverage Report ${{ inputs.result_affix }}" >> $GITHUB_STEP_SUMMARY
cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY
- name: Create CheckRun for Code Coverage
if: ((github.event_name == 'push') || (github.event_name == 'workflow_dispatch') || (github.event.pull_request.head.repo.full_name == github.repository)) && (!inputs.skip_coverage)
uses: LouisBrunner/checks-action@v1.6.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Code Coverage ${{ inputs.result_affix }}
conclusion: ${{ job.status }}
output: |
{"summary":"Coverage Report"}
output_text_description_file: code-coverage-results.md
- name: Add Code Coverage PR Comment
if: ((github.event_name == 'push') || (github.event.pull_request.head.repo.full_name == github.repository)) && (!inputs.skip_coverage)
uses: marocchino/sticky-pull-request-comment@v2
with:
header: Code Coverage ${{ inputs.result_affix }}
path: code-coverage-results.md
# Add sudo to move coverage folder created by root user
- name: Prepare Coverage GitHub Pages
if: (!inputs.skip_coverage)
run: >-
if [ "${{ inputs.result_affix }}" != "" ] && ${{ inputs.skip_deploy }}; then
sudo mv ${{ inputs.cmake_path }}/coverage_report/${{ inputs.coverage_name }} \
${{ inputs.cmake_path }}/coverage_report/${{ inputs.result_affix }}
fi
- name: Upload Code Coverage Artifacts
uses: actions/upload-artifact@v3.1.3
if: (inputs.skip_deploy && !inputs.skip_coverage)
with:
name: coverage_report
path: ${{ inputs.cmake_path }}/coverage_report
retention-days: 1
- name: Upload Code Coverage Pages
uses: actions/upload-pages-artifact@v2.0.0
if: (!inputs.skip_deploy && !inputs.skip_coverage)
with:
path: ${{ inputs.cmake_path }}/coverage_report/${{ inputs.coverage_name }}
deploy_code_coverage:
runs-on: ubuntu-latest
if: ((github.event_name == 'push') || (github.event_name == 'workflow_dispatch')) && !inputs.skip_coverage && !inputs.skip_deploy && !failure() && !cancelled()
needs: run_tests
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
steps:
- uses: actions/download-artifact@v3
if: ${{ inputs.skip_test }}
with:
name: coverage_report
- name: Upload Code Coverage Pages
uses: actions/upload-pages-artifact@v2.0.0
if: ${{ inputs.skip_test }}
with:
path: .
- name: Delete Duplicate Code Coverage Artifact
uses: geekyeggo/delete-artifact@v2
with:
name: coverage_report
- name: Deploy GitHub Pages site
id: deployment
uses: actions/deploy-pages@v1.2.9
- name: Write Code Coverage Report URL
run: >-
if [ "${{ inputs.deploy_list }}" != "" ]; then
for i in ${{ inputs.deploy_list }}; do
echo 'Coverage report for ' $i ':${{ steps.deployment.outputs.page_url }}'$i >> $GITHUB_STEP_SUMMARY
done
else
echo 'Coverage report: ${{ steps.deployment.outputs.page_url }}' >> $GITHUB_STEP_SUMMARY
fi

35
.github/workflows/regression_test.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: regression_test
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
workflow_dispatch:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
tx:
uses: ./.github/workflows/regression_template.yml
with:
build_script: ./scripts/build_tx.sh
test_script: ./scripts/test_tx.sh
cmake_path: ./test/tx/cmake
result_affix: ThreadX
skip_deploy: true
smp:
uses: ./.github/workflows/regression_template.yml
with:
build_script: ./scripts/build_smp.sh
test_script: ./scripts/test_smp.sh
cmake_path: ./test/smp/cmake
result_affix: SMP
skip_deploy: true
deploy:
needs: [tx, smp]
uses: ./.github/workflows/regression_template.yml
with:
skip_test: true
deploy_list: "ThreadX SMP"

9
.gitignore vendored
View File

@@ -1,6 +1,9 @@
.vscode/ .vscode/
.settings/
.metadata/
_deps/ _deps/
build/ build/
Debug/
CMakeFiles/ CMakeFiles/
CMakeScripts/ CMakeScripts/
CMakeLists.txt.user CMakeLists.txt.user
@@ -11,4 +14,10 @@ cmake_install.cmake
install_manifest.txt install_manifest.txt
compile_commands.json compile_commands.json
CTestTestfile.cmake CTestTestfile.cmake
*.dep
*.o
*.axf
*.map
*.a
*.htm

View File

@@ -2,7 +2,6 @@ MICROSOFT SOFTWARE LICENSE TERMS
MICROSOFT AZURE RTOS MICROSOFT AZURE RTOS
Shape
These license terms are an agreement between you and Microsoft Corporation (or These license terms are an agreement between you and Microsoft Corporation (or
one of its affiliates). They apply to the software named above and any Microsoft one of its affiliates). They apply to the software named above and any Microsoft
@@ -14,10 +13,11 @@ HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.
1. INSTALLATION AND USE RIGHTS. 1. INSTALLATION AND USE RIGHTS.
a) General. You may install and use the software and the included Microsoft a) General. You may (I) install, use and modify the software and (ii) install and use the included Microsoft
applications solely for internal development, testing and evaluation purposes. Applications (if any), each solely for internal development, testing and evaluation purposes.
Any distribution or production use requires a separate license as set forth in Distribution or production use is governed by the license terms set forth in
Section 2. Section 2. You may also obtain distribution or production use rights through a separate agreement with
Microsoft.
b) Contributions. Microsoft welcomes contributions to this software. In the event b) Contributions. Microsoft welcomes contributions to this software. In the event
that you make a contribution to this software you will be required to agree to a that you make a contribution to this software you will be required to agree to a
@@ -25,7 +25,7 @@ Contributor License Agreement (CLA) declaring that you have the right to, and
actually do, grant Microsoft the rights to use your contribution. For details, actually do, grant Microsoft the rights to use your contribution. For details,
visit https://cla.microsoft.com. visit https://cla.microsoft.com.
c) Included Microsoft Applications. The software includes other Microsoft c) Included Microsoft Applications. The software may include other Microsoft
applications which are governed by the licenses embedded in or made available applications which are governed by the licenses embedded in or made available
with those applications. with those applications.
@@ -57,7 +57,6 @@ i. You may use the software in production (e.g. program the modified or unmodifi
software to devices you own or control) and distribute (i.e. make available to software to devices you own or control) and distribute (i.e. make available to
third parties) the modified or unmodified binary image produced from this code. third parties) the modified or unmodified binary image produced from this code.
ii. You may permit your device distributors or developers to copy and distribute the ii. You may permit your device distributors or developers to copy and distribute the
binary image as programmed or to be programmed to your devices. binary image as programmed or to be programmed to your devices.
@@ -70,17 +69,12 @@ b) Requirements. For any code you distribute, you must:
i. when distributed in binary form, except as embedded in a device, include with i. when distributed in binary form, except as embedded in a device, include with
such distribution the terms of this agreement; such distribution the terms of this agreement;
ii. when distributed in source code form to distributors or developers of your ii. when distributed in source code form to distributors or developers of your
devices, include with such distribution the terms of this agreement; and devices, include with such distribution the terms of this agreement; and
iii. indemnify, defend and hold harmless Microsoft from any claims, including claims arising from any High Risk Uses, and inclusive of attorneys fees, related to the distribution or use of your devices that include the software, except to the extent that any intellectual property claim is based solely on the unmodified software.
iii. indemnify, defend and hold harmless Microsoft from any claims, including
attorneys fees, related to the distribution or use of your devices, except to
the extent that any claim is based solely on the unmodified software.
c) Restrictions. You may not: c) Restrictions. You may not:
i. use or modify the software to create competing real time operating system
i. use or modify the software to create a competing real time operating system
software; software;
ii. remove any copyright notices or licenses contained in the software; ii. remove any copyright notices or licenses contained in the software;
@@ -179,12 +173,13 @@ breach of which would endanger the purpose of this agreement and the compliance
with which a party may constantly trust in (so-called "cardinal obligations"). with which a party may constantly trust in (so-called "cardinal obligations").
In other cases of slight negligence, Microsoft will not be liable for slight In other cases of slight negligence, Microsoft will not be liable for slight
negligence. negligence.
12. DISCLAIMER OF WARRANTY.
12. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF a) THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF
USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO
THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED
WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
NON-INFRINGEMENT. NON-INFRINGEMENT.
b) HIGH RISK USE DISCLAIMER. WARNING: THE SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE WHERE FAILURE OR FAULT OF ANY KIND OF THE SOFTWARE COULD RESULT IN DEATH OR SERIOUS BODILY INJURY, OR IN PHYSICAL OR ENVIRONMENTAL DAMAGE (“collectively High Risk Use”). Accordingly, You must design and implement your hardware and software such that, in the event of any interruption, defect, error, or other failure of the software, the safety of people, property, and the environment are not reduced below a level that is reasonable, appropriate, and legal, whether in general or for a specific industry. Your High Risk Use of the software is at Your own risk.
13. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING 13. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING
DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM
@@ -203,21 +198,29 @@ possibility of the damages. The above limitation or exclusion may not apply to
you because your state, province, or country may not allow the exclusion or you because your state, province, or country may not allow the exclusion or
limitation of incidental, consequential, or other damages. limitation of incidental, consequential, or other damages.
Please note: As this software is distributed in Canada, some of the clauses in
Please note: As this software is distributed in Canada, some of the clauses in
this agreement are provided below in French. this agreement are provided below in French.
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce
contrat sont fournies ci-dessous en français. contrat sont fournies ci-dessous en français.
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel EXONÉRATION DE GARANTIE.
a) Le logiciel visé par une licence est offert « tel quel
». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft
naccorde aucune autre garantie expresse. Vous pouvez bénéficier de droits naccorde aucune autre garantie expresse. Vous pouvez bénéficier de droits
additionnels en vertu du droit local sur la protection des consommateurs, que ce additionnels en vertu du droit local sur la protection des consommateurs, que ce
contrat ne peut modifier. La ou elles sont permises par le droit locale, les contrat ne peut modifier. La ou elles sont permises par le droit locale, les
garanties implicites de qualité marchande, dadéquation à un usage particulier garanties implicites de qualité marchande, dadéquation à un usage particulier
et dabsence de contrefaçon sont exclues. et dabsence de contrefaçon sont exclues.
b) CLAUSE DEXCLUSION DE RESPONSABILITÉ RELATIVE À LUTILISATION À HAUT RISQUE.
AVERTISSEMENT: LE LOGICIEL NEST PAS CONÇU OU DESTINÉ À ÊTRE UTILISÉ LORSQUUNE
DÉFAILLANCE OU UN DÉFAUT DE QUELQUE NATURE QUE CE SOIT POURRAIT ENTRAÎNER LA
MORT OU DES BLESSURES CORPORELLES GRAVES, OU DES DOMMAGES PHYSIQUES OU
ENVIRONNEMENTAUX (« Utilisation à haut risque »). Par conséquent, vous devez concevoir et mettre en
œuvre votre équipement et votre logiciel de manière à ce que, en cas dinterruption, de défaut, derreur
ou de toute autre défaillance du logiciel, la sécurité des personnes, des biens et de lenvironnement ne
soit pas réduite en dessous dun niveau raisonnable, approprié et légal, que ce soit en général ou pour
un secteur spécifique. Votre utilisation à haut risque du logiciel est à vos propres risques.
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
@@ -243,4 +246,4 @@ ci-dessus ne sappliquera pas à votre égard.
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
pourriez avoir dautres droits prévus par les lois de votre pays. Le présent pourriez avoir dautres droits prévus par les lois de votre pays. Le présent
contrat ne modifie pas les droits que vous confèrent les lois de votre pays si contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
celles-ci ne le permettent pas. celles-ci ne le permettent pas.

View File

@@ -1,6 +1,6 @@
LICENSED HARDWARE LIST LICENSED HARDWARE LIST
Last Updated: 2021-04-01 Last Updated: 2023-02-10
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
@@ -31,7 +31,7 @@ NXP:
i.MX RT10xx and RT116x/7x series crossover MCUs i.MX RT10xx and RT116x/7x series crossover MCUs
LPC5500 series LPC5500 series
MCX N series
Renesas: Renesas:

295
README.md
View File

@@ -1,117 +1,236 @@
![cortex_m0](https://github.com/azure-rtos/threadx/workflows/cortex_m0/badge.svg)
![cortex_m3](https://github.com/azure-rtos/threadx/workflows/cortex_m3/badge.svg)
![cortex_m4](https://github.com/azure-rtos/threadx/workflows/cortex_m4/badge.svg)
![cortex_m7](https://github.com/azure-rtos/threadx/workflows/cortex_m7/badge.svg)
# Azure RTOS ThreadX # Azure RTOS ThreadX
This advanced real-time operating system (RTOS) is designed specifically for deeply embedded applications. Among the multiple benefits it provides are advanced scheduling facilities, message passing, interrupt management, and messaging services. Azure RTOS ThreadX has many advanced features, including picokernel architecture, preemption threshold, event chaining, and a rich set of system services. This advanced real-time operating system (RTOS) is designed specifically for deeply embedded applications. Among the multiple benefits it provides are advanced scheduling facilities, message passing, interrupt management, and messaging services. Azure RTOS ThreadX has many advanced features, including picokernel architecture, preemption threshold, event chaining, and a rich set of system services.
## Documentation Here are the key features and modules of ThreadX:
Documentation for this library can be found here: http://docs.microsoft.com/azure/rtos/threadx ![ThreadX Key Features](./docs/threadx-features.png)
## Getting Started
Azure RTOS has been integrated to the semiconductor's SDKs and development environment. You can develop using the tools of choice from [STMicroelectronics](https://www.st.com/content/st_com/en/campaigns/x-cube-azrtos-azure-rtos-stm32.html), [NXP](https://www.nxp.com/design/software/embedded-software/azure-rtos-for-nxp-microcontrollers:AZURE-RTOS), [Renesas](https://github.com/renesas/azure-rtos) and [Microchip](https://mu.microchip.com/get-started-simplifying-your-iot-design-with-azure-rtos).
We also provide [getting started guide](https://github.com/azure-rtos/getting-started) and [samples](https://github.com/azure-rtos/samples) using hero development boards from semiconductors you can build and test with.
See [Overview of Azure RTOS ThreadX](https://learn.microsoft.com/en-us/azure/rtos/threadx/overview-threadx) for the high-level overview, and all documentation and APIs can be found in: [Azure RTOS ThreadX documentation](https://learn.microsoft.com/en-us/azure/rtos/threadx/).
Also there is dedicated [learning path of Azure RTOS ThreadX](https://learn.microsoft.com/training/paths/azure-rtos-threadx/) for learning systematically.
# Understanding inter-component dependencies ## Repository Structure and Usage
### Directory layout
The main components of Azure RTOS are each provided in their own repository, but there are dependencies between them--shown in the following graph--that are important to understand when setting up your builds. .
├── cmake # CMakelist files for building the project
├── common # Core ThreadX files
├── common_modules # Core ThreadX module files
├── common_smp # Core ThreadX SMP files
├── docs # Documentation supplements
├── ports # Architecture and compiler specific files. See below for directory breakdown
│ ├── cortex_m7
│ │ ├── iar # Example IAR compiler sample project
│ │ │ ├── example build # IAR workspace and sample project files
│ │ │ ├── inc # tx_port.h for this architecture
│ │ │ └── src # Source files for this architecture
│ │ ├── ac6 # Example ac6/Keil sample project
│ │ ├── gnu # Example gnu sample project
│ │ └── ...
│ └── ...
├── ports_modules # Architecture and compiler specific files for threadX modules
├── ports_smp # Architecture and compiler specific files for threadX SMP
├── samples # demo_threadx.c
└── utility # Test cases and utilities
![dependency graph](docs/deps.png)
# Building and using the library
## Prerequisites
Install the following tools:
* [CMake](https://cmake.org/download/) version 3.0 or later
* [GCC compilers for arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
* [Ninja](https://ninja-build.org/)
## Cloning the repo
```bash
$ git clone https://github.com/azure-rtos/threadx.git
```
## Building as a static library
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.
```bash
$ cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake -GNinja .
$ cmake --build ./build
```
NOTE: You will have to take the dependency graph above into account when building anything other than threadx itself.
# Repository Structure and Usage
## Branches & Releases ## Branches & Releases
The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library. The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library. Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.2-rel`.
## Releases
Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.0-rel`.
## Directory layout
> When you see xx-xx-xxxx, 6.x or x.x in function header, this means the file is not officially released yet. They will be updated in the next release. See example below.
``` ```
- cmake /**************************************************************************/
- common /* */
- inc /* FUNCTION RELEASE */
- src /* */
- ports /* _tx_initialize_low_level Cortex-M23/GNU */
- cortex_m0/gnu /* 6.x */
- inc /* AUTHOR */
- src /* */
- cortex_m3/gnu /* Scott Larson, Microsoft Corporation */
- inc /* */
- src /* DESCRIPTION */
- cortex_m4/gnu /* */
- inc /* This function is responsible for any low-level processor */
- src /* initialization, including setting up interrupt vectors, setting */
- cortex_m7/gnu /* up a periodic timer interrupt source, saving the system stack */
- inc /* pointer for use in ISR processing later, and finding the first */
- src /* available RAM memory address for tx_application_define. */
- samples /* */
/* INPUT */
/* */
/* None */
/* */
/* OUTPUT */
/* */
/* None */
/* */
/* CALLS */
/* */
/* None */
/* */
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 09-30-2020 Scott Larson Initial Version 6.1 */
/* xx-xx-xxxx Scott Larson Include tx_user.h, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
``` ```
# Security ## Supported Architecture Ports
Azure RTOS provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case. ### ThreadX
```
arc_em cortex_a12 cortex_m0 cortex_r4
arc_hs cortex_a15 cortex_m23 cortex_r5
arm11 cortex_a17 cortex_m3 cortex_r7
arm9 cortex_a34 cortex_m33
c667x cortex_a35 cortex_m4
linux cortex_a5 cortex_m55
risc-v32 cortex_a53 cortex_m7
rxv1 cortex_a55 cortex_m85
rxv2 cortex_a57
rxv3 cortex_a5x
win32 cortex_a65
xtensa cortex_a65ae
cortex_a7
cortex_a72
cortex_a73
cortex_a75
cortex_a76
cortex_a76ae
cortex_a77
cortex_a8
cortex_a9
```
# Adaptation layer for ThreadX ### ThreadX Modules
[Azure RTOS ThreadX Modules](https://learn.microsoft.com/azure/rtos/threadx-modules/chapter1) component provides an infrastructure for applications to dynamically load modules that are built separately from the resident portion of the application.
```
cortex_a35
cortex_a35_smp
cortex_a7
cortex_m0+
cortex_m23
cortex_m3
cortex_m33
cortex_m4
cortex_m7
cortex_r4
rxv2
```
### ThreadX SMP
[Azure RTOS ThreadX SMP](https://learn.microsoft.com/azure/rtos/threadx/threadx-smp/chapter1) is a high-performance real-time SMP kernel designed specifically for embedded applications.
```
arc_hs_smp
cortex_a34_smp
cortex_a35_smp
cortex_a53_smp
cortex_a55_smp
cortex_a57_smp
cortex_a5x_smp
cortex_a5_smp
cortex_a65ae_smp
cortex_a65_smp
cortex_a72_smp
cortex_a73_smp
cortex_a75_smp
cortex_a76ae_smp
cortex_a76_smp
cortex_a77_smp
cortex_a78_smp
cortex_a7_smp
cortex_a9_smp
linux
```
## Adaptation layer for ThreadX
Azure RTOS ThreadX is an advanced real-time operating system (RTOS) designed specifically for deeply embedded applications. To help ease application migration to Azure RTOS, ThreadX provides [adaption layers](https://github.com/azure-rtos/threadx/tree/master/utility/rtos_compatibility_layers) for various legacy RTOS APIs (FreeRTOS, POSIX, OSEK, etc.). Azure RTOS ThreadX is an advanced real-time operating system (RTOS) designed specifically for deeply embedded applications. To help ease application migration to Azure RTOS, ThreadX provides [adaption layers](https://github.com/azure-rtos/threadx/tree/master/utility/rtos_compatibility_layers) for various legacy RTOS APIs (FreeRTOS, POSIX, OSEK, etc.).
# Licensing ## Component dependencies
The main components of Azure RTOS are each provided in their own repository, but there are dependencies between them, as shown in the following graph. This is important to understand when setting up your builds.
![dependency graph](docs/deps.png)
> You will have to take the dependency graph above into account when building anything other than ThreadX itself.
### Building and using the library
Instruction for building the ThreadX as static library using Arm GNU Toolchain and CMake. If you are using toolchain and IDE from semiconductor, you might follow its own instructions to use Azure RTOS components as explained in the [Getting Started](#getting-started) section.
1. Install the following tools:
* [CMake](https://cmake.org/download/) version 3.0 or later
* [Arm GNU Toolchain for arm-none-eabi](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads)
* [Ninja](https://ninja-build.org/)
1. Cloning the repo
```bash
$ git clone https://github.com/azure-rtos/threadx.git
```
1. Define the features and addons you need in `tx_user.h` and build together with the component source code. You can refer to [`tx_user_sample.h`](https://github.com/azure-rtos/threadx/blob/master/common/inc/tx_user_sample.h) as an example.
1. Building as a static library
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 `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.
An example of building the library for Cortex-M4:
```bash
$ cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake .
$ cmake --build ./build
```
## Professional support
[Professional support plans](https://azure.microsoft.com/support/options/) are available from Microsoft. For community support and others, see the [Resources](#resources) section below.
## Licensing
License terms for using Azure RTOS are defined in the LICENSE.txt file of this repo. Please refer to this file for all definitive licensing information. No additional license fees are required for deploying Azure RTOS on hardware defined in the LICENSED-HARDWARE.txt file. If you are using hardware not defined in the LICENSED-HARDWARE.txt file or have licensing questions in general, please contact Microsoft directly at https://aka.ms/azrtos-license. License terms for using Azure RTOS are defined in the LICENSE.txt file of this repo. Please refer to this file for all definitive licensing information. No additional license fees are required for deploying Azure RTOS on hardware defined in the LICENSED-HARDWARE.txt file. If you are using hardware not defined in the LICENSED-HARDWARE.txt file or have licensing questions in general, please contact Microsoft directly at https://aka.ms/azrtos-license.
# Contribution, feedback, issues, and professional support ## Resources
If you encounter any bugs, have suggestions for new features, or if you would like to become an active contributor to this project, please follow the instructions provided in the contribution guideline for the corresponding repo. The following are references to additional Azure RTOS resources:
For basic support, click Issues in the command bar or post a question to [Stack Overflow](http://stackoverflow.com/questions/tagged/azure-rtos+threadx) using the `threadx` and `azure-rtos` tags. - **Product introduction and white papers**: https://azure.com/rtos
- **General technical questions**: https://aka.ms/QnA/azure-rtos
- **Product issues and bugs, or feature requests**: https://github.com/azure-rtos/threadx/issues
- **Licensing and sales questions**: https://aka.ms/azrtos-license
- **Product roadmap and support policy**: https://aka.ms/azrtos/lts
- **Blogs and videos**: http://msiotblog.com and https://aka.ms/iotshow
- **Azure RTOS TraceX Installer**: https://aka.ms/azrtos-tracex-installer
Professional support plans (https://azure.microsoft.com/en-us/support/options/) are available from Microsoft. You can also check [previous questions](https://stackoverflow.com/questions/tagged/azure-rtos+threadx) or ask new ones on StackOverflow using the `azure-rtos` and `threadx` tags.
# Additional Resources ## Security
The following are references to additional Azure RTOS and Azure IoT in general: Azure RTOS provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case.
| Content | Link |
|---|---| ## Contribution
| TraceX Installer | https://aka.ms/azrtos-tracex-installer |
| Azure RTOS Documentation and Guides: | https://docs.microsoft.com/azure/rtos | Please follow the instructions provided in the [CONTRIBUTING.md](./CONTRIBUTING.md) for the corresponding repository.
| Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
| Azure RTOS Sales Questions: | https://aka.ms/azrtos-license |
| Azure RTOS Product Support Policy | https://aka.ms/azrtos/lts |
| Azure RTOS Functional Safety Artifacts | https://aka.ms/azrtos/tuv |
| For technical questions check out Microsoft Q/A for Azure IoT | https://aka.ms/QnA/azure-rtos |
| Internet of Things Show for latest announcements and online training | https://aka.ms/iotshow |
| IoT Tech Community | https://aka.ms/community/azure-rtos |

View File

@@ -26,7 +26,7 @@
/* APPLICATION INTERFACE DEFINITION RELEASE */ /* APPLICATION INTERFACE DEFINITION RELEASE */
/* */ /* */
/* tx_api.h PORTABLE C */ /* tx_api.h PORTABLE C */
/* 6.1.12 */ /* 6.4.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -89,6 +89,21 @@
/* 07-29-2022 Scott Larson Modified comment(s), */ /* 07-29-2022 Scott Larson Modified comment(s), */
/* update patch number, */ /* update patch number, */
/* resulting in version 6.1.12 */ /* resulting in version 6.1.12 */
/* 10-31-2022 Scott Larson Modified comment(s), */
/* add extension macros, */
/* update EPK typedef, */
/* update version numbers, */
/* resulting in version 6.2.0 */
/* 03-08-2023 Tiejun Zhou Modified comment(s), */
/* update patch number, */
/* resulting in version 6.2.1 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* resulting in version 6.3.0 */
/* 12-31-2023 Tiejun Zhou Modified comment(s), */
/* update version number, */
/* resulting in version 6.4.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -115,6 +130,9 @@ extern "C" {
#include "tx_port.h" #include "tx_port.h"
#if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY))
#include "tx_execution_profile.h"
#endif
/* Define basic constants for the ThreadX kernel. */ /* Define basic constants for the ThreadX kernel. */
@@ -124,8 +142,8 @@ 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 4
#define THREADX_PATCH_VERSION 12 #define THREADX_PATCH_VERSION 0
/* Define the following symbol for backward compatibility */ /* Define the following symbol for backward compatibility */
#define EL_PRODUCT_THREADX #define EL_PRODUCT_THREADX
@@ -160,7 +178,11 @@ extern "C" {
#define TX_NO_MESSAGES ((UINT) 0) #define TX_NO_MESSAGES ((UINT) 0)
#define TX_EMPTY ((ULONG) 0) #define TX_EMPTY ((ULONG) 0)
#define TX_CLEAR_ID ((ULONG) 0) #define TX_CLEAR_ID ((ULONG) 0)
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
#define TX_STACK_FILL (thread_ptr -> tx_thread_stack_fill_value)
#else
#define TX_STACK_FILL ((ULONG) 0xEFEFEFEFUL) #define TX_STACK_FILL ((ULONG) 0xEFEFEFEFUL)
#endif
/* Thread execution state values. */ /* Thread execution state values. */
@@ -223,6 +245,76 @@ extern "C" {
#define TX_FEATURE_NOT_ENABLED ((UINT) 0xFF) #define TX_FEATURE_NOT_ENABLED ((UINT) 0xFF)
#ifdef TX_64_BIT
#ifndef TX_THREAD_EXTENSION_PTR_SET
#define TX_THREAD_EXTENSION_PTR_SET(a, b) { \
TX_THREAD *thread_ptr; \
thread_ptr = (TX_THREAD *) (a); \
(thread_ptr -> tx_thread_extension_ptr) = (VOID *)(b); \
}
#endif /* TX_THREAD_EXTENSION_PTR_SET */
#ifndef TX_THREAD_EXTENSION_PTR_GET
#define TX_THREAD_EXTENSION_PTR_GET(a, b, c) { \
TX_PARAMETER_NOT_USED(c); \
TX_THREAD *thread_ptr; \
thread_ptr = tx_thread_identify(); \
while(1)\
{ \
if (thread_ptr -> tx_thread_extension_ptr) \
{ \
(a) = (b *)(thread_ptr -> tx_thread_extension_ptr); \
break; \
} \
tx_thread_sleep(1); \
} \
}
#endif /* TX_THREAD_EXTENSION_PTR_GET */
#ifndef TX_TIMER_EXTENSION_PTR_SET
#define TX_TIMER_EXTENSION_PTR_SET(a, b) { \
TX_TIMER *timer_ptr; \
timer_ptr = (TX_TIMER *) (a); \
(timer_ptr -> tx_timer_internal.tx_timer_internal_extension_ptr) = (VOID *)(b); \
}
#endif /* TX_TIMER_EXTENSION_PTR_SET */
#ifndef TX_TIMER_EXTENSION_PTR_GET
#define TX_TIMER_EXTENSION_PTR_GET(a, b, c) { \
TX_PARAMETER_NOT_USED(c); \
if (!_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr) \
return; \
(a) = (b *)(_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr); \
}
#endif /* TX_TIMER_EXTENSION_PTR_GET */
#else /* not 64 bit */
#ifndef TX_THREAD_EXTENSION_PTR_SET
#define TX_THREAD_EXTENSION_PTR_SET(a, b)
#endif /* TX_THREAD_EXTENSION_PTR_SET */
#ifndef TX_THREAD_EXTENSION_PTR_GET
#define TX_THREAD_EXTENSION_PTR_GET(a, b, c) { \
(a) = (b *)(c); \
}
#endif /* TX_THREAD_EXTENSION_PTR_GET */
#ifndef TX_TIMER_EXTENSION_PTR_SET
#define TX_TIMER_EXTENSION_PTR_SET(a, b)
#endif /* TX_TIMER_EXTENSION_PTR_SET */
#ifndef TX_TIMER_EXTENSION_PTR_GET
#define TX_TIMER_EXTENSION_PTR_GET(a, b, c) { \
(a) = (b *)(c); \
}
#endif /* TX_TIMER_EXTENSION_PTR_GET */
#endif /* TX_64_BIT */
/* Define the common timer tick reference for use by other middleware components. The default /* Define the common timer tick reference for use by other middleware components. The default
value is 10ms, but may be replaced by a port specific version in tx_port.h or by the user value is 10ms, but may be replaced by a port specific version in tx_port.h or by the user
as a compilation option. */ as a compilation option. */
@@ -529,14 +621,20 @@ typedef struct TX_THREAD_STRUCT
For Azure RTOS 6, user shall use TX_EXECUTION_PROFILE_ENABLE instead of TX_ENABLE_EXECUTION_CHANGE_NOTIFY, For Azure RTOS 6, user shall use TX_EXECUTION_PROFILE_ENABLE instead of TX_ENABLE_EXECUTION_CHANGE_NOTIFY,
and SHALL NOT add variables to TX_THREAD_EXTENSION_3. */ and SHALL NOT add variables to TX_THREAD_EXTENSION_3. */
#if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY)) #if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY))
unsigned long long tx_thread_execution_time_total; EXECUTION_TIME tx_thread_execution_time_total;
unsigned long long tx_thread_execution_time_last_start; EXECUTION_TIME_SOURCE_TYPE tx_thread_execution_time_last_start;
#endif #endif
/* Define suspension sequence number. This is used to ensure suspension is still valid when /* Define suspension sequence number. This is used to ensure suspension is still valid when
cleanup routine executes. */ cleanup routine executes. */
ULONG tx_thread_suspension_sequence; ULONG tx_thread_suspension_sequence;
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
/* Define the random stack fill number. This can be used to detect stack overflow. */
ULONG tx_thread_stack_fill_value;
#endif
/* Define the user extension field. This typically is defined /* Define the user extension field. This typically is defined
to white space, but some ports of ThreadX may need to have to white space, but some ports of ThreadX may need to have
additional fields in the thread control block. This is additional fields in the thread control block. This is
@@ -1811,6 +1909,21 @@ UINT _tx_trace_interrupt_control(UINT new_posture);
#endif #endif
/* Add a default macro that can be re-defined in tx_port.h to add processing to the initialize random number generator.
By default, this is simply defined as whitespace. */
#ifndef TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
#define TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
#endif
/* Define the TX_RAND macro to the standard library function, if not already defined. */
#ifndef TX_RAND
#define TX_RAND() rand()
#endif
/* Check for MISRA compliance requirements. */ /* Check for MISRA compliance requirements. */
#ifdef TX_MISRA_ENABLE #ifdef TX_MISRA_ENABLE

View File

@@ -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.11 */ /* 6.3.0 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -62,6 +62,10 @@
/* optimized the definition of */ /* optimized the definition of */
/* TX_TIMER_TICKS_PER_SECOND, */ /* TX_TIMER_TICKS_PER_SECOND, */
/* resulting in version 6.1.11 */ /* resulting in version 6.1.11 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -170,6 +174,14 @@
#define TX_ENABLE_STACK_CHECKING #define TX_ENABLE_STACK_CHECKING
*/ */
/* Determine if random number is used for stack filling. By default, ThreadX uses a fixed
pattern for stack filling. When the following is defined, ThreadX uses a random number
for stack filling. This is effective only when TX_ENABLE_STACK_CHECKING is defined. */
/*
#define TX_ENABLE_RANDOM_NUMBER_STACK_FILLING
*/
/* Determine if preemption-threshold should be disabled. By default, preemption-threshold is /* Determine if preemption-threshold should be disabled. By default, preemption-threshold is
enabled. If the application does not use preemption-threshold, it may be disabled to reduce enabled. If the application does not use preemption-threshold, it may be disabled to reduce
code size and improve performance. */ code size and improve performance. */

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_get PORTABLE C */ /* _tx_event_flags_get PORTABLE C */
/* 6.1.11 */ /* 6.2.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -79,6 +79,9 @@
/* 04-25-2022 Scott Larson Modified comment(s), */ /* 04-25-2022 Scott Larson Modified comment(s), */
/* handle 0 flags case, */ /* handle 0 flags case, */
/* resulting in version 6.1.11 */ /* resulting in version 6.1.11 */
/* 10-31-2022 Scott Larson Modified comment(s), always */
/* return actual flags, */
/* resulting in version 6.2.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT _tx_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags,
@@ -125,6 +128,9 @@ UINT interrupted_set_request;
/* Pickup current flags. */ /* Pickup current flags. */
current_flags = group_ptr -> tx_event_flags_group_current; current_flags = group_ptr -> tx_event_flags_group_current;
/* Return the actual event flags and apply delayed clearing. */
*actual_flags_ptr = current_flags & ~group_ptr -> tx_event_flags_group_delayed_clear;
/* Apply the event flag option mask. */ /* Apply the event flag option mask. */
and_request = (get_option & TX_AND); and_request = (get_option & TX_AND);
@@ -158,9 +164,6 @@ UINT interrupted_set_request;
if (flags_satisfied != ((ULONG) 0)) if (flags_satisfied != ((ULONG) 0))
{ {
/* Return the actual event flags that satisfied the request. */
*actual_flags_ptr = current_flags;
/* Pickup the clear bit. */ /* Pickup the clear bit. */
clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK); clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK);
@@ -221,9 +224,6 @@ UINT interrupted_set_request;
/* Yes, this request can be handled immediately. */ /* Yes, this request can be handled immediately. */
/* Return the actual event flags that satisfied the request. */
*actual_flags_ptr = current_flags;
/* Pickup the clear bit. */ /* Pickup the clear bit. */
clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK); clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK);
@@ -274,7 +274,7 @@ UINT interrupted_set_request;
#endif #endif
else else
{ {
/* flags_satisfied is 0. */
/* Determine if the request specifies suspension. */ /* Determine if the request specifies suspension. */
if (wait_option != TX_NO_WAIT) if (wait_option != TX_NO_WAIT)
{ {

View File

@@ -49,7 +49,7 @@ TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_initialize_kernel_enter PORTABLE C */ /* _tx_initialize_kernel_enter PORTABLE C */
/* 6.1.11 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -93,6 +93,10 @@ TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
/* 04-25-2022 Scott Larson Modified comment(s), */ /* 04-25-2022 Scott Larson Modified comment(s), */
/* added EPK initialization, */ /* added EPK initialization, */
/* resulting in version 6.1.11 */ /* resulting in version 6.1.11 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added random generator */
/* initialization, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_initialize_kernel_enter(VOID) VOID _tx_initialize_kernel_enter(VOID)
@@ -133,6 +137,9 @@ VOID _tx_initialize_kernel_enter(VOID)
later used to represent interrupt nesting. */ later used to represent interrupt nesting. */
_tx_thread_system_state = TX_INITIALIZE_IN_PROGRESS; _tx_thread_system_state = TX_INITIALIZE_IN_PROGRESS;
/* Optional random number generator initialization. */
TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
/* Call the application provided initialization function. Pass the /* Call the application provided initialization function. Pass the
first available memory address to it. */ first available memory address to it. */
tx_application_define(_tx_initialize_unused_memory); tx_application_define(_tx_initialize_unused_memory);

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_create PORTABLE C */ /* _tx_thread_create PORTABLE C */
/* 6.1.8 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -88,6 +88,10 @@
/* supported TX_MISRA_ENABLE, */ /* supported TX_MISRA_ENABLE, */
/* 08-02-2021 Scott Larson Removed unneeded cast, */ /* 08-02-2021 Scott Larson Removed unneeded cast, */
/* resulting in version 6.1.8 */ /* resulting in version 6.1.8 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
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,
@@ -109,6 +113,17 @@ ALIGN_TYPE updated_stack_start;
#endif #endif
#ifndef TX_DISABLE_STACK_FILLING #ifndef TX_DISABLE_STACK_FILLING
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
/* Initialize the stack fill value to a 8-bit random value. */
thread_ptr -> tx_thread_stack_fill_value = ((ULONG) TX_RAND()) & 0xFFUL;
/* Duplicate the random value in each of the 4 bytes of the stack fill value. */
thread_ptr -> tx_thread_stack_fill_value = thread_ptr -> tx_thread_stack_fill_value |
(thread_ptr -> tx_thread_stack_fill_value << 8) |
(thread_ptr -> tx_thread_stack_fill_value << 16) |
(thread_ptr -> tx_thread_stack_fill_value << 24);
#endif
/* Set the thread stack to a pattern prior to creating the initial /* Set the thread stack to a pattern prior to creating the initial
stack frame. This pattern is used by the stack checking routines stack frame. This pattern is used by the stack checking routines

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_wait_abort PORTABLE C */ /* _tx_thread_wait_abort PORTABLE C */
/* 6.1 */ /* 6.2.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,9 +68,12 @@
/* */ /* */
/* 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-08-2023 Scott Larson Check if thread is coming out */
/* of suspension elsewhere, */
/* resulting in version 6.2.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_wait_abort(TX_THREAD *thread_ptr) UINT _tx_thread_wait_abort(TX_THREAD *thread_ptr)
@@ -131,6 +134,18 @@ ULONG suspension_sequence;
/* Restore interrupts. */ /* Restore interrupts. */
TX_RESTORE TX_RESTORE
#endif #endif
}
else if(thread_ptr -> tx_thread_suspend_cleanup == TX_NULL)
{
/* Thread is coming out of suspension elsewhere. */
#ifndef TX_NOT_INTERRUPTABLE
/* Increment the disable preemption flag. */
_tx_thread_preempt_disable++;
/* Restore interrupts. */
TX_RESTORE
#endif
} }
else else
{ {
@@ -167,13 +182,8 @@ ULONG suspension_sequence;
TX_RESTORE TX_RESTORE
#endif #endif
/* Call any cleanup routines. */ /* Call cleanup routine. */
if (suspend_cleanup != TX_NULL) (suspend_cleanup)(thread_ptr, suspension_sequence);
{
/* Yes, there is a function to call. */
(suspend_cleanup)(thread_ptr, suspension_sequence);
}
} }
/* If the abort of the thread wait was successful, if so resume the thread. */ /* If the abort of the thread wait was successful, if so resume the thread. */

View File

@@ -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 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* Scott Larson, Microsoft Corporation */ /* Scott Larson, Microsoft Corporation */
@@ -44,6 +44,9 @@
/* 04-02-2021 Scott Larson Modified comment(s) and */ /* 04-02-2021 Scott Larson Modified comment(s) and */
/* optimized object checks, */ /* optimized object checks, */
/* resulting in version 6.1.6 */ /* resulting in version 6.1.6 */
/* 10-31-2023 Tiejun Zhou Modified comment(s) and */
/* improved object check, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -100,13 +103,15 @@
/* 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) \
((TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size)) || \ (TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size) || \
(_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \
((void *) (obj_ptr) == TX_NULL)) ((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) \
((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)) || \
(_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \
((void *) (obj_ptr) == TX_NULL)) ((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. */

View File

@@ -35,6 +35,10 @@
#include "txm_module.h" #include "txm_module.h"
#include "txm_module_manager_util.h" #include "txm_module_manager_util.h"
#ifdef TX_ENABLE_EVENT_TRACE
#include "tx_trace.h"
#endif
#ifdef TXM_MODULE_ENABLE_FILEX #ifdef TXM_MODULE_ENABLE_FILEX
extern UINT _txm_module_manager_filex_stop(TXM_MODULE_INSTANCE *module_instance); extern UINT _txm_module_manager_filex_stop(TXM_MODULE_INSTANCE *module_instance);
#endif #endif
@@ -60,7 +64,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.5 */ /* 6.2.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* Scott Larson, Microsoft Corporation */ /* Scott Larson, Microsoft Corporation */
@@ -112,6 +116,8 @@ extern UINT _txm_module_manager_usbx_stop(TXM_MODULE_INSTANCE *module_instance)
/* 03-02-2021 Scott Larson Modified comments, fix */ /* 03-02-2021 Scott Larson Modified comments, fix */
/* object delete underflow, */ /* object delete underflow, */
/* resulting in version 6.1.5 */ /* resulting in version 6.1.5 */
/* 03-08-2023 Scott Larson Added tx_trace.h include, */
/* resulting in version 6.2.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _txm_module_manager_stop(TXM_MODULE_INSTANCE *module_instance) UINT _txm_module_manager_stop(TXM_MODULE_INSTANCE *module_instance)

View File

@@ -39,7 +39,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _txm_module_manager_thread_create PORTABLE C */ /* _txm_module_manager_thread_create PORTABLE C */
/* 6.1.3 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* Scott Larson, Microsoft Corporation */ /* Scott Larson, Microsoft Corporation */
@@ -91,6 +91,15 @@
/* added 64-bit support, */ /* added 64-bit support, */
/* added SMP support, */ /* added SMP support, */
/* resulting in version 6.1.3 */ /* resulting in version 6.1.3 */
/* 03-08-2023 Scott Larson Check module stack for */
/* overlap, */
/* resulting in version 6.2.1 */
/* 10-31-2023 Xiuwen Cai, Yajun xia Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* fixed the kernel stack */
/* allocation issue, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _txm_module_manager_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, UINT _txm_module_manager_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr,
@@ -158,8 +167,8 @@ ULONG i;
} }
/* 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))) && if ((((UCHAR *) ((VOID *) stack_start)) <= ((UCHAR *) ((VOID *) next_thread -> tx_thread_module_stack_end))) &&
(((UCHAR *) ((VOID *) stack_end)) >= ((UCHAR *) ((VOID *) next_thread -> tx_thread_stack_start)))) (((UCHAR *) ((VOID *) stack_end)) >= ((UCHAR *) ((VOID *) next_thread -> tx_thread_module_stack_start))))
{ {
/* Stacks overlap, clear the stack pointer to force a stack error below. */ /* Stacks overlap, clear the stack pointer to force a stack error below. */
stack_start = TX_NULL; stack_start = TX_NULL;
@@ -269,6 +278,17 @@ ULONG i;
} }
#ifndef TX_DISABLE_STACK_FILLING #ifndef TX_DISABLE_STACK_FILLING
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
/* Initialize the stack fill value to a 8-bit random value. */
thread_ptr -> tx_thread_stack_fill_value = ((ULONG) TX_RAND()) & 0xFFUL;
/* Duplicate the random value in each of the 4 bytes of the stack fill value. */
thread_ptr -> tx_thread_stack_fill_value = thread_ptr -> tx_thread_stack_fill_value |
(thread_ptr -> tx_thread_stack_fill_value << 8) |
(thread_ptr -> tx_thread_stack_fill_value << 16) |
(thread_ptr -> tx_thread_stack_fill_value << 24);
#endif
/* Set the thread stack to a pattern prior to creating the initial /* Set the thread stack to a pattern prior to creating the initial
stack frame. This pattern is used by the stack checking routines stack frame. This pattern is used by the stack checking routines
@@ -309,9 +329,8 @@ ULONG i;
/* 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));
#if TXM_MODULE_MEMORY_PROTECTION /* If the thread runs on user mode, allocate the kernel stack for syscall. */
/* If this is a memory protected module, allocate a kernel stack. */ if((module_instance -> txm_module_instance_property_flags) & TXM_MODULE_USER_MODE)
if((module_instance -> txm_module_instance_property_flags) & TXM_MODULE_MEMORY_PROTECTION)
{ {
ULONG status; ULONG status;
@@ -336,6 +355,7 @@ ULONG i;
thread_ptr -> tx_thread_module_kernel_stack_size = TXM_MODULE_KERNEL_STACK_SIZE; thread_ptr -> tx_thread_module_kernel_stack_size = TXM_MODULE_KERNEL_STACK_SIZE;
} }
#if TXM_MODULE_MEMORY_PROTECTION
/* 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;

View File

@@ -26,7 +26,7 @@
/* APPLICATION INTERFACE DEFINITION RELEASE */ /* APPLICATION INTERFACE DEFINITION RELEASE */
/* */ /* */
/* tx_api.h PORTABLE SMP */ /* tx_api.h PORTABLE SMP */
/* 6.1.12 */ /* 6.4.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,20 @@
/* 07-29-2022 Scott Larson Modified comment(s), */ /* 07-29-2022 Scott Larson Modified comment(s), */
/* update patch number, */ /* update patch number, */
/* resulting in version 6.1.12 */ /* resulting in version 6.1.12 */
/* 10-31-2022 Scott Larson Modified comment(s), */
/* add extension macros, */
/* update version numbers, */
/* resulting in version 6.2.0 */
/* 03-08-2023 Tiejun Zhou Modified comment(s), */
/* update patch number, */
/* resulting in version 6.2.1 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* resulting in version 6.3.0 */
/* 12-31-2023 Tiejun Zhou Modified comment(s), */
/* update version number, */
/* resulting in version 6.4.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -129,8 +143,8 @@ 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 4
#define THREADX_PATCH_VERSION 12 #define THREADX_PATCH_VERSION 0
/* Define the following symbol for backward compatibility */ /* Define the following symbol for backward compatibility */
#define EL_PRODUCT_THREADX #define EL_PRODUCT_THREADX
@@ -165,7 +179,11 @@ extern "C" {
#define TX_NO_MESSAGES ((UINT) 0) #define TX_NO_MESSAGES ((UINT) 0)
#define TX_EMPTY ((ULONG) 0) #define TX_EMPTY ((ULONG) 0)
#define TX_CLEAR_ID ((ULONG) 0) #define TX_CLEAR_ID ((ULONG) 0)
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
#define TX_STACK_FILL (thread_ptr -> tx_thread_stack_fill_value)
#else
#define TX_STACK_FILL ((ULONG) 0xEFEFEFEFUL) #define TX_STACK_FILL ((ULONG) 0xEFEFEFEFUL)
#endif
/* Thread execution state values. */ /* Thread execution state values. */
@@ -228,6 +246,76 @@ extern "C" {
#define TX_FEATURE_NOT_ENABLED ((UINT) 0xFF) #define TX_FEATURE_NOT_ENABLED ((UINT) 0xFF)
#ifdef TX_64_BIT
#ifndef TX_THREAD_EXTENSION_PTR_SET
#define TX_THREAD_EXTENSION_PTR_SET(a, b) { \
TX_THREAD *thread_ptr; \
thread_ptr = (TX_THREAD *) (a); \
(thread_ptr -> tx_thread_extension_ptr) = (VOID *)(b); \
}
#endif /* TX_THREAD_EXTENSION_PTR_SET */
#ifndef TX_THREAD_EXTENSION_PTR_GET
#define TX_THREAD_EXTENSION_PTR_GET(a, b, c) { \
TX_PARAMETER_NOT_USED(c); \
TX_THREAD *thread_ptr; \
thread_ptr = tx_thread_identify(); \
while(1)\
{ \
if (thread_ptr -> tx_thread_extension_ptr) \
{ \
(a) = (b *)(thread_ptr -> tx_thread_extension_ptr); \
break; \
} \
tx_thread_sleep(1); \
} \
}
#endif /* TX_THREAD_EXTENSION_PTR_GET */
#ifndef TX_TIMER_EXTENSION_PTR_SET
#define TX_TIMER_EXTENSION_PTR_SET(a, b) { \
TX_TIMER *timer_ptr; \
timer_ptr = (TX_TIMER *) (a); \
(timer_ptr -> tx_timer_internal.tx_timer_internal_extension_ptr) = (VOID *)(b); \
}
#endif /* TX_TIMER_EXTENSION_PTR_SET */
#ifndef TX_TIMER_EXTENSION_PTR_GET
#define TX_TIMER_EXTENSION_PTR_GET(a, b, c) { \
TX_PARAMETER_NOT_USED(c); \
if (!_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr) \
return; \
(a) = (b *)(_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr); \
}
#endif /* TX_TIMER_EXTENSION_PTR_GET */
#else /* not 64 bit */
#ifndef TX_THREAD_EXTENSION_PTR_SET
#define TX_THREAD_EXTENSION_PTR_SET(a, b)
#endif /* TX_THREAD_EXTENSION_PTR_SET */
#ifndef TX_THREAD_EXTENSION_PTR_GET
#define TX_THREAD_EXTENSION_PTR_GET(a, b, c) { \
(a) = (b *)(c); \
}
#endif /* TX_THREAD_EXTENSION_PTR_GET */
#ifndef TX_TIMER_EXTENSION_PTR_SET
#define TX_TIMER_EXTENSION_PTR_SET(a, b)
#endif /* TX_TIMER_EXTENSION_PTR_SET */
#ifndef TX_TIMER_EXTENSION_PTR_GET
#define TX_TIMER_EXTENSION_PTR_GET(a, b, c) { \
(a) = (b *)(c); \
}
#endif /* TX_TIMER_EXTENSION_PTR_GET */
#endif /* TX_64_BIT */
/* Define the common timer tick reference for use by other middleware components. The default /* Define the common timer tick reference for use by other middleware components. The default
value is 10ms, but may be replaced by a port specific version in tx_port.h or by the user value is 10ms, but may be replaced by a port specific version in tx_port.h or by the user
as a compilation option. */ as a compilation option. */
@@ -562,6 +650,12 @@ typedef struct TX_THREAD_STRUCT
cleanup routine executes. */ cleanup routine executes. */
ULONG tx_thread_suspension_sequence; ULONG tx_thread_suspension_sequence;
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
/* Define the random stack fill number. This can be used to detect stack overflow. */
ULONG tx_thread_stack_fill_value;
#endif
/* Define the user extension field. This typically is defined /* Define the user extension field. This typically is defined
to white space, but some ports of ThreadX may need to have to white space, but some ports of ThreadX may need to have
additional fields in the thread control block. This is additional fields in the thread control block. This is
@@ -1809,6 +1903,21 @@ UINT _tx_trace_interrupt_control(UINT new_posture);
#endif #endif
/* Add a default macro that can be re-defined in tx_port.h to add processing to the initialize random number generator.
By default, this is simply defined as whitespace. */
#ifndef TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
#define TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
#endif
/* Define the TX_RAND macro to the standard library function, if not already defined. */
#ifndef TX_RAND
#define TX_RAND() rand()
#endif
/* Check for MISRA compliance requirements. */ /* Check for MISRA compliance requirements. */
#ifdef TX_MISRA_ENABLE #ifdef TX_MISRA_ENABLE

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_thread.h PORTABLE SMP */ /* tx_thread.h PORTABLE SMP */
/* 6.1 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,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 */
/* 10-31-2023 Tiejun Zhou Fixed MISRA2012 rule 8.3, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -1349,7 +1351,7 @@ TX_THREAD *thread_remap_list[TX_THREAD_SMP_MAX_CORES];
} }
static INLINE_DECLARE ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[]) static INLINE_DECLARE ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[TX_THREAD_SMP_MAX_CORES])
{ {
UINT i, j, k; UINT i, j, k;
@@ -1668,7 +1670,7 @@ ULONG _tx_thread_smp_available_cores_get(void);
ULONG _tx_thread_smp_possible_cores_get(void); ULONG _tx_thread_smp_possible_cores_get(void);
UINT _tx_thread_smp_lowest_priority_get(void); UINT _tx_thread_smp_lowest_priority_get(void);
UINT _tx_thread_smp_remap_solution_find(TX_THREAD *schedule_thread, ULONG available_cores, ULONG thread_possible_cores, ULONG test_possible_cores); UINT _tx_thread_smp_remap_solution_find(TX_THREAD *schedule_thread, ULONG available_cores, ULONG thread_possible_cores, ULONG test_possible_cores);
ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[]); ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[TX_THREAD_SMP_MAX_CORES]);
VOID _tx_thread_smp_simple_priority_change(TX_THREAD *thread_ptr, UINT new_priority); VOID _tx_thread_smp_simple_priority_change(TX_THREAD *thread_ptr, UINT new_priority);
#endif #endif

View File

@@ -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.11 */ /* 6.3.0 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -62,6 +62,10 @@
/* optimized the definition of */ /* optimized the definition of */
/* TX_TIMER_TICKS_PER_SECOND, */ /* TX_TIMER_TICKS_PER_SECOND, */
/* resulting in version 6.1.11 */ /* resulting in version 6.1.11 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -170,6 +174,14 @@
#define TX_ENABLE_STACK_CHECKING #define TX_ENABLE_STACK_CHECKING
*/ */
/* Determine if random number is used for stack filling. By default, ThreadX uses a fixed
pattern for stack filling. When the following is defined, ThreadX uses a random number
for stack filling. This is effective only when TX_ENABLE_STACK_CHECKING is defined. */
/*
#define TX_ENABLE_RANDOM_NUMBER_STACK_FILLING
*/
/* Determine if preemption-threshold should be disabled. By default, preemption-threshold is /* Determine if preemption-threshold should be disabled. By default, preemption-threshold is
enabled. If the application does not use preemption-threshold, it may be disabled to reduce enabled. If the application does not use preemption-threshold, it may be disabled to reduce
code size and improve performance. */ code size and improve performance. */

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_search PORTABLE SMP */ /* _tx_byte_pool_search PORTABLE SMP */
/* 6.1.7 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -81,6 +81,8 @@
/* calculation, and reduced */ /* calculation, and reduced */
/* number of search resets, */ /* number of search resets, */
/* resulting in version 6.1.7 */ /* resulting in version 6.1.7 */
/* 10-31-2023 Tiejun Zhou Fixed MISRA2012 rule 10.4_a, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UCHAR *_tx_byte_pool_search(TX_BYTE_POOL *pool_ptr, ULONG memory_size) UCHAR *_tx_byte_pool_search(TX_BYTE_POOL *pool_ptr, ULONG memory_size)
@@ -110,7 +112,7 @@ UINT blocks_searched = ((UINT) 0);
/* First, determine if there are enough bytes in the pool. */ /* First, determine if there are enough bytes in the pool. */
/* Theoretical bytes available = free bytes + ((fragments-2) * overhead of each block) */ /* Theoretical bytes available = free bytes + ((fragments-2) * overhead of each block) */
total_theoretical_available = pool_ptr -> tx_byte_pool_available + ((pool_ptr -> tx_byte_pool_fragments - 2) * ((sizeof(UCHAR *)) + (sizeof(ALIGN_TYPE)))); total_theoretical_available = pool_ptr -> tx_byte_pool_available + ((pool_ptr -> tx_byte_pool_fragments - 2U) * ((sizeof(UCHAR *)) + (sizeof(ALIGN_TYPE))));
if (memory_size >= total_theoretical_available) if (memory_size >= total_theoretical_available)
{ {

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_get PORTABLE C */ /* _tx_event_flags_get PORTABLE C */
/* 6.1.11 */ /* 6.2.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -79,6 +79,9 @@
/* 04-25-2022 Scott Larson Modified comment(s), */ /* 04-25-2022 Scott Larson Modified comment(s), */
/* handle 0 flags case, */ /* handle 0 flags case, */
/* resulting in version 6.1.11 */ /* resulting in version 6.1.11 */
/* 10-31-2022 Scott Larson Modified comment(s), always */
/* return actual flags, */
/* resulting in version 6.2.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT _tx_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags,
@@ -125,6 +128,9 @@ UINT interrupted_set_request;
/* Pickup current flags. */ /* Pickup current flags. */
current_flags = group_ptr -> tx_event_flags_group_current; current_flags = group_ptr -> tx_event_flags_group_current;
/* Return the actual event flags and apply delayed clearing. */
*actual_flags_ptr = current_flags & ~group_ptr -> tx_event_flags_group_delayed_clear;
/* Apply the event flag option mask. */ /* Apply the event flag option mask. */
and_request = (get_option & TX_AND); and_request = (get_option & TX_AND);
@@ -158,9 +164,6 @@ UINT interrupted_set_request;
if (flags_satisfied != ((ULONG) 0)) if (flags_satisfied != ((ULONG) 0))
{ {
/* Return the actual event flags that satisfied the request. */
*actual_flags_ptr = current_flags;
/* Pickup the clear bit. */ /* Pickup the clear bit. */
clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK); clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK);
@@ -221,9 +224,6 @@ UINT interrupted_set_request;
/* Yes, this request can be handled immediately. */ /* Yes, this request can be handled immediately. */
/* Return the actual event flags that satisfied the request. */
*actual_flags_ptr = current_flags;
/* Pickup the clear bit. */ /* Pickup the clear bit. */
clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK); clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK);
@@ -274,7 +274,7 @@ UINT interrupted_set_request;
#endif #endif
else else
{ {
/* flags_satisfied is 0. */
/* Determine if the request specifies suspension. */ /* Determine if the request specifies suspension. */
if (wait_option != TX_NO_WAIT) if (wait_option != TX_NO_WAIT)
{ {

View File

@@ -47,7 +47,7 @@ TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_initialize_kernel_enter PORTABLE SMP */ /* _tx_initialize_kernel_enter PORTABLE SMP */
/* 6.1 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -87,7 +87,11 @@ TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
/* */ /* */
/* 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-31-2023 Xiuwen Cai Modified comment(s), */
/* added random generator */
/* initialization, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_initialize_kernel_enter(VOID) VOID _tx_initialize_kernel_enter(VOID)
@@ -134,6 +138,9 @@ ULONG other_core_status, i;
later used to represent interrupt nesting. */ later used to represent interrupt nesting. */
_tx_thread_system_state[0] = TX_INITIALIZE_IN_PROGRESS; _tx_thread_system_state[0] = TX_INITIALIZE_IN_PROGRESS;
/* Optional random number generator initialization. */
TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
/* Call the application provided initialization function. Pass the /* Call the application provided initialization function. Pass the
first available memory address to it. */ first available memory address to it. */
tx_application_define(_tx_initialize_unused_memory); tx_application_define(_tx_initialize_unused_memory);

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_create PORTABLE SMP */ /* _tx_thread_create PORTABLE SMP */
/* 6.1.8 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -85,6 +85,14 @@
/* resulting in version 6.1.3 */ /* resulting in version 6.1.3 */
/* 08-02-2021 Scott Larson Removed unneeded cast, */ /* 08-02-2021 Scott Larson Removed unneeded cast, */
/* resulting in version 6.1.8 */ /* resulting in version 6.1.8 */
/* 10-31-2022 Scott Larson Removed ifdef block to always */
/* restore interrupts at end */
/* of if block, */
/* resulting in version 6.2.0 */
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
/* added option for random */
/* number stack filling, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, UINT _tx_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr,
@@ -106,6 +114,17 @@ ALIGN_TYPE updated_stack_start;
#ifndef TX_DISABLE_STACK_FILLING #ifndef TX_DISABLE_STACK_FILLING
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
/* Initialize the stack fill value to a 8-bit random value. */
thread_ptr -> tx_thread_stack_fill_value = ((ULONG) TX_RAND()) & 0xFFUL;
/* Duplicate the random value in each of the 4 bytes of the stack fill value. */
thread_ptr -> tx_thread_stack_fill_value = thread_ptr -> tx_thread_stack_fill_value |
(thread_ptr -> tx_thread_stack_fill_value << 8) |
(thread_ptr -> tx_thread_stack_fill_value << 16) |
(thread_ptr -> tx_thread_stack_fill_value << 24);
#endif
/* Set the thread stack to a pattern prior to creating the initial /* Set the thread stack to a pattern prior to creating the initial
stack frame. This pattern is used by the stack checking routines stack frame. This pattern is used by the stack checking routines
@@ -344,11 +363,8 @@ ALIGN_TYPE updated_stack_start;
#endif #endif
} }
#ifndef TX_NOT_INTERRUPTABLE
/* Restore interrupts. */ /* Restore interrupts. */
TX_RESTORE TX_RESTORE
#endif
} }
else else
{ {

View File

@@ -826,7 +826,7 @@ TX_THREAD *thread_remap_list[TX_THREAD_SMP_MAX_CORES];
} }
ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[]) ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[TX_THREAD_SMP_MAX_CORES])
{ {
UINT i, j, k; UINT i, j, k;

View File

@@ -38,7 +38,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_system_suspend PORTABLE SMP */ /* _tx_thread_system_suspend PORTABLE SMP */
/* 6.1.11 */ /* 6.3.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -91,6 +91,8 @@
/* 04-25-2022 Scott Larson Modified comments and fixed */ /* 04-25-2022 Scott Larson Modified comments and fixed */
/* loop to find next thread, */ /* loop to find next thread, */
/* resulting in version 6.1.11 */ /* resulting in version 6.1.11 */
/* 10-31-2023 Tiejun Zhou Fixed MISRA2012 rule 10.4_a, */
/* resulting in version 6.3.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_thread_system_suspend(TX_THREAD *thread_ptr) VOID _tx_thread_system_suspend(TX_THREAD *thread_ptr)
@@ -671,7 +673,7 @@ UINT processing_complete;
complex_path_possible = possible_cores & available_cores; complex_path_possible = possible_cores & available_cores;
/* Check if we need to loop to find the next highest priority thread. */ /* Check if we need to loop to find the next highest priority thread. */
if (next_priority == TX_MAX_PRIORITIES) if (next_priority == (ULONG)TX_MAX_PRIORITIES)
{ {
loop_finished = TX_TRUE; loop_finished = TX_TRUE;
} }

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_wait_abort PORTABLE C */ /* _tx_thread_wait_abort PORTABLE C */
/* 6.1 */ /* 6.2.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,9 +68,12 @@
/* */ /* */
/* 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-08-2023 Scott Larson Check if thread is coming out */
/* of suspension elsewhere, */
/* resulting in version 6.2.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_wait_abort(TX_THREAD *thread_ptr) UINT _tx_thread_wait_abort(TX_THREAD *thread_ptr)
@@ -131,6 +134,18 @@ ULONG suspension_sequence;
/* Restore interrupts. */ /* Restore interrupts. */
TX_RESTORE TX_RESTORE
#endif #endif
}
else if(thread_ptr -> tx_thread_suspend_cleanup == TX_NULL)
{
/* Thread is coming out of suspension elsewhere. */
#ifndef TX_NOT_INTERRUPTABLE
/* Increment the disable preemption flag. */
_tx_thread_preempt_disable++;
/* Restore interrupts. */
TX_RESTORE
#endif
} }
else else
{ {
@@ -167,13 +182,8 @@ ULONG suspension_sequence;
TX_RESTORE TX_RESTORE
#endif #endif
/* Call any cleanup routines. */ /* Call cleanup routine. */
if (suspend_cleanup != TX_NULL) (suspend_cleanup)(thread_ptr, suspension_sequence);
{
/* Yes, there is a function to call. */
(suspend_cleanup)(thread_ptr, suspension_sequence);
}
} }
/* If the abort of the thread wait was successful, if so resume the thread. */ /* If the abort of the thread wait was successful, if so resume the thread. */

BIN
docs/threadx-features.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

View File

@@ -322,7 +322,7 @@ void _tx_initialize_start_interrupts(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.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARCv2_EM/MetaWare Version 6.4.0 *";
#else #else
#ifdef TX_MISRA_ENABLE #ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100]; extern CHAR _tx_version_id[100];

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ BTA, 0x412 .equ BTA, 0x412
.equ KSTACK_TOP, 0x264 .equ KSTACK_TOP, 0x264
@@ -29,7 +32,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore ARCv2_EM/MetaWare */ ;/* _tx_thread_context_restore ARCv2_EM/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +72,9 @@
;/* support for disabling the */ ;/* support for disabling the */
;/* loop control feature, */ ;/* loop control feature, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ BTA, 0x412 .equ BTA, 0x412
.equ KSTACK_TOP, 0x264 .equ KSTACK_TOP, 0x264
@@ -29,7 +32,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save ARCv2_EM/MetaWare */ ;/* _tx_thread_context_save ARCv2_EM/MetaWare */
;/* 6.1.6 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -64,6 +67,9 @@
;/* 04-02-2021 Andres Mlinar Modified comment(s), and */ ;/* 04-02-2021 Andres Mlinar Modified comment(s), and */
;/* r25/r30 are caller saved, */ ;/* r25/r30 are caller saved, */
;/* resulting in version 6.1.6 */ ;/* resulting in version 6.1.6 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -18,13 +18,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control ARCv2_EM/MetaWare */ ;/* _tx_thread_interrupt_control ARCv2_EM/MetaWare */
;/* 6.1.6 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -57,6 +60,9 @@
;/* 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, */ ;/* 04-02-2021 Andres Mlinar Modified comments, */
;/* resulting in version 6.1.6 */ ;/* resulting in version 6.1.6 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ BTA, 0x412 .equ BTA, 0x412
.equ KSTACK_TOP, 0x264 .equ KSTACK_TOP, 0x264
@@ -29,7 +32,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule ARCv2_EM/MetaWare */ ;/* _tx_thread_schedule ARCv2_EM/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ LONG_ALIGN_MASK, 0xFFFFFFFC .equ LONG_ALIGN_MASK, 0xFFFFFFFC
.equ INT_ENABLE_BITS, 0x8000001E .equ INT_ENABLE_BITS, 0x8000001E
@@ -27,7 +30,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build ARCv2_EM/MetaWare */ ;/* _tx_thread_stack_build ARCv2_EM/MetaWare */
;/* 6.1.6 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -62,6 +65,9 @@
;/* 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, */ ;/* 04-02-2021 Andres Mlinar Modified comments, */
;/* resulting in version 6.1.6 */ ;/* resulting in version 6.1.6 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ KSTACK_TOP, 0x264 .equ KSTACK_TOP, 0x264
.equ KSTACK_BASE, 0x265 .equ KSTACK_BASE, 0x265
@@ -28,7 +31,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return ARCv2_EM/MetaWare */ ;/* _tx_thread_system_return ARCv2_EM/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -66,6 +69,9 @@
;/* 10-15-2021 Andres Mlinar Modified comments, */ ;/* 10-15-2021 Andres Mlinar Modified comments, */
;/* use schedule reenter, */ ;/* use schedule reenter, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -18,13 +18,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt ARCv2_EM/MetaWare */ ;/* _tx_timer_interrupt ARCv2_EM/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +72,9 @@
;/* fixed possible race */ ;/* fixed possible race */
;/* condition on preemption */ ;/* condition on preemption */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

View File

@@ -336,7 +336,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.10 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARC_HS/MetaWare Version 6.4.0 *";
#else #else
#ifdef TX_MISRA_ENABLE #ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100]; extern CHAR _tx_version_id[100];

View File

@@ -19,23 +19,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
; #ifdef TX_INCLUDE_USER_DEFINE_FILE
; #include "tx_user.h"
;#define TX_SOURCE_CODE #endif
;
;
;/* Include necessary system files. */
;
;#include "tx_api.h"
;#include "tx_initialize.h"
;
;
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_initialize_fast_interrupt_setup ARC_HS/MetaWare */ ;/* _tx_initialize_fast_interrupt_setup ARC_HS/MetaWare */
;/* 6.1 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -67,6 +60,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 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_initialize_fast_interrupt_setup(VOID *stack_ptr) ;VOID _tx_initialize_fast_interrupt_setup(VOID *stack_ptr)

View File

@@ -19,25 +19,18 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
; #ifdef TX_INCLUDE_USER_DEFINE_FILE
; #include "tx_user.h"
;#define TX_SOURCE_CODE #endif
;
.equ BTA, 0x412 .equ BTA, 0x412
;
;/* Include necessary system files. */
;
;#include "tx_api.h"
;#include "tx_thread.h"
;#include "tx_timer.h"
;
;
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_fast_restore ARC_HS/MetaWare */ ;/* _tx_thread_context_fast_restore ARC_HS/MetaWare */
;/* 6.1 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -70,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 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_fast_restore(VOID) ;VOID _tx_thread_context_fast_restore(VOID)
@@ -115,7 +111,7 @@ __tx_thread_nested_restore:
__tx_thread_not_nested_restore: __tx_thread_not_nested_restore:
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -19,24 +19,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
; #ifdef TX_INCLUDE_USER_DEFINE_FILE
; #include "tx_user.h"
;#define TX_SOURCE_CODE #endif
;
;
;/* Include necessary system files. */
;
;#include "tx_api.h"
;#include "tx_thread.h"
;#include "tx_timer.h"
;
;
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_fast_save ARC_HS/MetaWare */ ;/* _tx_thread_context_fast_save ARC_HS/MetaWare */
;/* 6.1 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -73,6 +65,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 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_fast_save(VOID) ;VOID _tx_thread_context_fast_save(VOID)

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ BTA, 0x412 .equ BTA, 0x412
@@ -26,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_restore ARC_HS/MetaWare */ ;/* _tx_thread_context_restore ARC_HS/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -63,6 +66,9 @@
;/* r25/r30 are caller saved, */ ;/* r25/r30 are caller saved, */
;/* use schedule_reenter, */ ;/* use schedule_reenter, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_restore(VOID) ;VOID _tx_thread_context_restore(VOID)

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ BTA, 0x412 .equ BTA, 0x412
@@ -26,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_context_save ARC_HS/MetaWare */ ;/* _tx_thread_context_save ARC_HS/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -61,6 +64,9 @@
;/* 10-15-2021 Andres Mlinar Modified comment(s), and */ ;/* 10-15-2021 Andres Mlinar Modified comment(s), and */
;/* r25/r30 are caller saved, */ ;/* r25/r30 are caller saved, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_context_save(VOID) ;VOID _tx_thread_context_save(VOID)

View File

@@ -18,13 +18,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_interrupt_control ARC_HS/MetaWare */ ;/* _tx_thread_interrupt_control ARC_HS/MetaWare */
;/* 6.1.6 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -57,6 +60,9 @@
;/* 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, */ ;/* 04-02-2021 Andres Mlinar Modified comments, */
;/* resulting in version 6.1.6 */ ;/* resulting in version 6.1.6 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;UINT _tx_thread_interrupt_control(UINT new_posture) ;UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -19,23 +19,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
; #ifdef TX_INCLUDE_USER_DEFINE_FILE
; #include "tx_user.h"
;#define TX_SOURCE_CODE #endif
;
;
;/* Include necessary system files. */
;
;#include "tx_api.h"
;#include "tx_thread.h"
;
;
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_register_bank_assign ARC_HS/MetaWare */ ;/* _tx_thread_register_bank_assign ARC_HS/MetaWare */
;/* 6.1 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +62,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 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_register_bank_assign(VOID *thread_ptr, UINT register_bank) ;VOID _tx_thread_register_bank_assign(VOID *thread_ptr, UINT register_bank)

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ BTA, 0x412 .equ BTA, 0x412
@@ -26,7 +29,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_schedule ARC_HS/MetaWare */ ;/* _tx_thread_schedule ARC_HS/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -63,6 +66,9 @@
;/* 10-15-2021 Andres Mlinar Modified comment(s), */ ;/* 10-15-2021 Andres Mlinar Modified comment(s), */
;/* use schedule reenter, */ ;/* use schedule reenter, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_schedule(VOID) ;VOID _tx_thread_schedule(VOID)

View File

@@ -18,6 +18,9 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
.equ LONG_ALIGN_MASK, 0xFFFFFFFC .equ LONG_ALIGN_MASK, 0xFFFFFFFC
.equ INT_ENABLE_BITS, 0x8000001E .equ INT_ENABLE_BITS, 0x8000001E
@@ -27,7 +30,7 @@
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_stack_build ARC_HS/MetaWare */ ;/* _tx_thread_stack_build ARC_HS/MetaWare */
;/* 6.1.6 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -62,6 +65,9 @@
;/* 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, */ ;/* 04-02-2021 Andres Mlinar Modified comments, */
;/* resulting in version 6.1.6 */ ;/* resulting in version 6.1.6 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) ;VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -18,13 +18,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_thread_system_return ARC_HS/MetaWare */ ;/* _tx_thread_system_return ARC_HS/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -60,6 +63,9 @@
;/* 10-15-2021 Andres Mlinar Modified comments, */ ;/* 10-15-2021 Andres Mlinar Modified comments, */
;/* use schedule reenter, */ ;/* use schedule reenter, */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_thread_system_return(VOID) ;VOID _tx_thread_system_return(VOID)

View File

@@ -18,13 +18,16 @@
;/** */ ;/** */
;/**************************************************************************/ ;/**************************************************************************/
;/**************************************************************************/ ;/**************************************************************************/
#ifdef TX_INCLUDE_USER_DEFINE_FILE
#include "tx_user.h"
#endif
;/**************************************************************************/ ;/**************************************************************************/
;/* */ ;/* */
;/* FUNCTION RELEASE */ ;/* FUNCTION RELEASE */
;/* */ ;/* */
;/* _tx_timer_interrupt ARC_HS/MetaWare */ ;/* _tx_timer_interrupt ARC_HS/MetaWare */
;/* 6.1.9 */ ;/* 6.2.1 */
;/* AUTHOR */ ;/* AUTHOR */
;/* */ ;/* */
;/* William E. Lamie, Microsoft Corporation */ ;/* William E. Lamie, Microsoft Corporation */
@@ -69,6 +72,9 @@
;/* fixed possible race */ ;/* fixed possible race */
;/* condition on preemption */ ;/* condition on preemption */
;/* resulting in version 6.1.9 */ ;/* resulting in version 6.1.9 */
;/* 03-08-2023 Cindy Deng Modified comment(s), added */
;/* #include tx_user.h, */
;/* resulting in version 6.2.1 */
;/* */ ;/* */
;/**************************************************************************/ ;/**************************************************************************/
;VOID _tx_timer_interrupt(VOID) ;VOID _tx_timer_interrupt(VOID)

View File

@@ -320,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.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/AC5 Version 6.4.0 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -139,7 +139,7 @@ _tx_thread_context_restore
__tx_thread_not_nested_restore __tx_thread_not_nested_restore
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -141,7 +141,7 @@ _tx_thread_fiq_context_restore
__tx_thread_fiq_not_nested_restore __tx_thread_fiq_not_nested_restore
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -309,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.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/GNU Version 6.4.0 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
.arm .arm
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
@@ -60,7 +53,7 @@ IRQ_MODE = 0x92 @ Disable IRQ, IRQ mode
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_context_restore ARM11/GNU */ @/* _tx_thread_context_restore ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -93,6 +86,9 @@ IRQ_MODE = 0x92 @ Disable IRQ, IRQ mode
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_context_restore(VOID) @VOID _tx_thread_context_restore(VOID)
@@ -138,7 +134,7 @@ _tx_thread_context_restore:
__tx_thread_not_nested_restore: __tx_thread_not_nested_restore:
@ @
@ /* Determine if a thread was interrupted and no preemption is required. */ @ /* Determine if a thread was interrupted and no preemption is required. */
@ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) @ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
@ || (_tx_thread_preempt_disable)) @ || (_tx_thread_preempt_disable))
@ { @ {
@ @

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled
#else #else
@@ -53,7 +46,7 @@ DISABLE_INTS = 0x80 @ IRQ interrupts disabled
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_context_save ARM11/GNU */ @/* _tx_thread_context_save ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +78,9 @@ DISABLE_INTS = 0x80 @ IRQ interrupts disabled
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_context_save(VOID) @VOID _tx_thread_context_save(VOID)

View File

@@ -19,18 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
@
SVC_MODE = 0xD3 @ SVC mode SVC_MODE = 0xD3 @ SVC mode
FIQ_MODE = 0xD1 @ FIQ mode FIQ_MODE = 0xD1 @ FIQ mode
DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts
@@ -61,7 +53,7 @@ SVC_MODE_BITS = 0x13 @ SVC mode value
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_context_restore ARM11/GNU */ @/* _tx_thread_fiq_context_restore ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -94,6 +86,9 @@ SVC_MODE_BITS = 0x13 @ SVC mode value
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_fiq_context_restore(VOID) @VOID _tx_thread_fiq_context_restore(VOID)
@@ -140,7 +135,7 @@ _tx_thread_fiq_context_restore:
__tx_thread_fiq_not_nested_restore: __tx_thread_fiq_not_nested_restore:
@ @
@ /* Determine if a thread was interrupted and no preemption is required. */ @ /* Determine if a thread was interrupted and no preemption is required. */
@ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) @ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
@ || (_tx_thread_preempt_disable)) @ || (_tx_thread_preempt_disable))
@ { @ {
@ @

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
.global _tx_thread_system_state .global _tx_thread_system_state
.global _tx_thread_current_ptr .global _tx_thread_current_ptr
.global __tx_fiq_processing_return .global __tx_fiq_processing_return
@@ -47,7 +40,7 @@
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_context_save ARM11/GNU */ @/* _tx_thread_fiq_context_save ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -79,6 +72,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 */
@/* 03-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@ VOID _tx_thread_fiq_context_save(VOID) @ VOID _tx_thread_fiq_context_save(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts
#else #else
@@ -50,7 +43,7 @@ FIQ_MODE_BITS = 0x11 @ FIQ mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_nesting_end ARM11/GNU */ @/* _tx_thread_fiq_nesting_end ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -90,6 +83,9 @@ FIQ_MODE_BITS = 0x11 @ FIQ mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_fiq_nesting_end(VOID) @VOID _tx_thread_fiq_nesting_end(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
FIQ_DISABLE = 0x40 @ FIQ disable bit FIQ_DISABLE = 0x40 @ FIQ disable bit
MODE_MASK = 0x1F @ Mode mask MODE_MASK = 0x1F @ Mode mask
SYS_MODE_BITS = 0x1F @ System mode bits SYS_MODE_BITS = 0x1F @ System mode bits
@@ -46,7 +39,7 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_nesting_start ARM11/GNU */ @/* _tx_thread_fiq_nesting_start ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +76,9 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_fiq_nesting_start(VOID) @VOID _tx_thread_fiq_nesting_start(VOID)

View File

@@ -19,15 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h" */
@
INT_MASK = 0x03F INT_MASK = 0x03F
@@ -56,7 +51,7 @@ $_tx_thread_interrupt_control:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_interrupt_control ARM11/GNU */ @/* _tx_thread_interrupt_control ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -87,6 +82,9 @@ $_tx_thread_interrupt_control:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@UINT _tx_thread_interrupt_control(UINT new_posture) @UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled
#else #else
@@ -60,7 +54,7 @@ $_tx_thread_interrupt_disable:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_interrupt_disable ARM11/GNU */ @/* _tx_thread_interrupt_disable ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -90,6 +84,9 @@ $_tx_thread_interrupt_disable:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@UINT _tx_thread_interrupt_disable(void) @UINT _tx_thread_interrupt_disable(void)

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
@/* Define the 16-bit Thumb mode veneer for _tx_thread_interrupt_restore for @/* Define the 16-bit Thumb mode veneer for _tx_thread_interrupt_restore for
@ applications calling this function from to 16-bit Thumb mode. */ @ applications calling this function from to 16-bit Thumb mode. */
@ @
@@ -53,7 +47,7 @@ $_tx_thread_interrupt_restore:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_interrupt_restore ARM11/GNU */ @/* _tx_thread_interrupt_restore ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -84,6 +78,9 @@ $_tx_thread_interrupt_restore:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@UINT _tx_thread_interrupt_restore(UINT old_posture) @UINT _tx_thread_interrupt_restore(UINT old_posture)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts
#else #else
@@ -50,7 +43,7 @@ IRQ_MODE_BITS = 0x12 @ IRQ mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_irq_nesting_end ARM11/GNU */ @/* _tx_thread_irq_nesting_end ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -90,6 +83,9 @@ IRQ_MODE_BITS = 0x12 @ IRQ mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_irq_nesting_end(VOID) @VOID _tx_thread_irq_nesting_end(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
IRQ_DISABLE = 0x80 @ IRQ disable bit IRQ_DISABLE = 0x80 @ IRQ disable bit
MODE_MASK = 0x1F @ Mode mask MODE_MASK = 0x1F @ Mode mask
SYS_MODE_BITS = 0x1F @ System mode bits SYS_MODE_BITS = 0x1F @ System mode bits
@@ -46,7 +39,7 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_irq_nesting_start ARM11/GNU */ @/* _tx_thread_irq_nesting_start ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +76,9 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_irq_nesting_start(VOID) @VOID _tx_thread_irq_nesting_start(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
ENABLE_INTS = 0xC0 @ IRQ & FIQ Interrupts enabled mask ENABLE_INTS = 0xC0 @ IRQ & FIQ Interrupts enabled mask
#else #else
@@ -68,7 +61,7 @@ $_tx_thread_schedule:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_schedule ARM11/GNU */ @/* _tx_thread_schedule ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -102,6 +95,9 @@ $_tx_thread_schedule:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_schedule(VOID) @VOID _tx_thread_schedule(VOID)

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
.arm .arm
SVC_MODE = 0x13 @ SVC mode SVC_MODE = 0x13 @ SVC mode
@@ -64,7 +58,7 @@ $_tx_thread_stack_build:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_stack_build ARM11/GNU */ @/* _tx_thread_stack_build ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -97,6 +91,9 @@ $_tx_thread_stack_build:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) @VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
.arm .arm
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
@@ -70,7 +64,7 @@ $_tx_thread_system_return:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_system_return ARM11/GNU */ @/* _tx_thread_system_return ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -103,6 +97,9 @@ $_tx_thread_system_return:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_system_return(VOID) @VOID _tx_thread_system_return(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled
#else #else
@@ -54,7 +47,7 @@ DISABLE_INTS = 0x80 @ IRQ interrupts disabled
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_vectored_context_save ARM11/GNU */ @/* _tx_thread_vectored_context_save ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -86,6 +79,9 @@ DISABLE_INTS = 0x80 @ IRQ interrupts disabled
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_vectored_context_save(VOID) @VOID _tx_thread_vectored_context_save(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_timer.h"
@#include "tx_thread.h"
@
@
.arm .arm
@ @
@@ -71,7 +64,7 @@ $_tx_timer_interrupt:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_timer_interrupt ARM11/GNU */ @/* _tx_timer_interrupt ARM11/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -106,6 +99,9 @@ $_tx_timer_interrupt:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_timer_interrupt(VOID) @VOID _tx_timer_interrupt(VOID)

View File

@@ -375,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.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM11/IAR Version 6.4.0 *";
#else #else
#ifdef TX_MISRA_ENABLE #ifdef TX_MISRA_ENABLE
extern CHAR _tx_version_id[100]; extern CHAR _tx_version_id[100];

View File

@@ -138,7 +138,7 @@ _tx_thread_context_restore
__tx_thread_not_nested_restore __tx_thread_not_nested_restore
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -139,7 +139,7 @@ _tx_thread_fiq_context_restore
__tx_thread_fiq_not_nested_restore __tx_thread_fiq_not_nested_restore
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -322,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.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/AC5 Version 6.4.0 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -139,7 +139,7 @@ _tx_thread_context_restore
__tx_thread_not_nested_restore __tx_thread_not_nested_restore
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -141,7 +141,7 @@ _tx_thread_fiq_context_restore
__tx_thread_fiq_not_nested_restore __tx_thread_fiq_not_nested_restore
; ;
; /* Determine if a thread was interrupted and no preemption is required. */ ; /* Determine if a thread was interrupted and no preemption is required. */
; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) ; else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
; || (_tx_thread_preempt_disable)) ; || (_tx_thread_preempt_disable))
; { ; {
; ;

View File

@@ -309,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.9 *"; "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX ARM9/GNU Version 6.4.0 *";
#else #else
extern CHAR _tx_version_id[]; extern CHAR _tx_version_id[];
#endif #endif

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
.arm .arm
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
@@ -60,7 +53,7 @@ IRQ_MODE = 0x92 @ Disable IRQ, IRQ mode
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_context_restore ARM9/GNU */ @/* _tx_thread_context_restore ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -93,6 +86,9 @@ IRQ_MODE = 0x92 @ Disable IRQ, IRQ mode
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_context_restore(VOID) @VOID _tx_thread_context_restore(VOID)
@@ -138,7 +134,7 @@ _tx_thread_context_restore:
__tx_thread_not_nested_restore: __tx_thread_not_nested_restore:
@ @
@ /* Determine if a thread was interrupted and no preemption is required. */ @ /* Determine if a thread was interrupted and no preemption is required. */
@ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) @ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
@ || (_tx_thread_preempt_disable)) @ || (_tx_thread_preempt_disable))
@ { @ {
@ @

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled
#else #else
@@ -53,7 +46,7 @@ DISABLE_INTS = 0x80 @ IRQ interrupts disabled
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_context_save ARM9/GNU */ @/* _tx_thread_context_save ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -85,6 +78,9 @@ DISABLE_INTS = 0x80 @ IRQ interrupts disabled
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_context_save(VOID) @VOID _tx_thread_context_save(VOID)

View File

@@ -19,18 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
@
SVC_MODE = 0xD3 @ SVC mode SVC_MODE = 0xD3 @ SVC mode
FIQ_MODE = 0xD1 @ FIQ mode FIQ_MODE = 0xD1 @ FIQ mode
DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts
@@ -61,7 +53,7 @@ SVC_MODE_BITS = 0x13 @ SVC mode value
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_context_restore ARM9/GNU */ @/* _tx_thread_fiq_context_restore ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -94,6 +86,9 @@ SVC_MODE_BITS = 0x13 @ SVC mode value
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_fiq_context_restore(VOID) @VOID _tx_thread_fiq_context_restore(VOID)
@@ -140,7 +135,7 @@ _tx_thread_fiq_context_restore:
__tx_thread_fiq_not_nested_restore: __tx_thread_fiq_not_nested_restore:
@ @
@ /* Determine if a thread was interrupted and no preemption is required. */ @ /* Determine if a thread was interrupted and no preemption is required. */
@ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr) @ else if (((_tx_thread_current_ptr) && (_tx_thread_current_ptr == _tx_thread_execute_ptr))
@ || (_tx_thread_preempt_disable)) @ || (_tx_thread_preempt_disable))
@ { @ {
@ @

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
.global _tx_thread_system_state .global _tx_thread_system_state
.global _tx_thread_current_ptr .global _tx_thread_current_ptr
.global __tx_fiq_processing_return .global __tx_fiq_processing_return
@@ -47,7 +40,7 @@
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_context_save ARM9/GNU */ @/* _tx_thread_fiq_context_save ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -79,6 +72,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 */
@/* 03-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@ VOID _tx_thread_fiq_context_save(VOID) @ VOID _tx_thread_fiq_context_save(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts
#else #else
@@ -50,7 +43,7 @@ FIQ_MODE_BITS = 0x11 @ FIQ mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_nesting_end ARM9/GNU */ @/* _tx_thread_fiq_nesting_end ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -90,6 +83,9 @@ FIQ_MODE_BITS = 0x11 @ FIQ mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_fiq_nesting_end(VOID) @VOID _tx_thread_fiq_nesting_end(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
FIQ_DISABLE = 0x40 @ FIQ disable bit FIQ_DISABLE = 0x40 @ FIQ disable bit
MODE_MASK = 0x1F @ Mode mask MODE_MASK = 0x1F @ Mode mask
SYS_MODE_BITS = 0x1F @ System mode bits SYS_MODE_BITS = 0x1F @ System mode bits
@@ -46,7 +39,7 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_fiq_nesting_start ARM9/GNU */ @/* _tx_thread_fiq_nesting_start ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +76,9 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_fiq_nesting_start(VOID) @VOID _tx_thread_fiq_nesting_start(VOID)

View File

@@ -19,15 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h" */
@
INT_MASK = 0x03F INT_MASK = 0x03F
@@ -56,7 +51,7 @@ $_tx_thread_interrupt_control:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_interrupt_control ARM9/GNU */ @/* _tx_thread_interrupt_control ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -87,6 +82,9 @@ $_tx_thread_interrupt_control:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@UINT _tx_thread_interrupt_control(UINT new_posture) @UINT _tx_thread_interrupt_control(UINT new_posture)

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled DISABLE_INTS = 0xC0 @ IRQ & FIQ interrupts disabled
#else #else
@@ -60,7 +54,7 @@ $_tx_thread_interrupt_disable:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_interrupt_disable ARM9/GNU */ @/* _tx_thread_interrupt_disable ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -90,6 +84,9 @@ $_tx_thread_interrupt_disable:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@UINT _tx_thread_interrupt_disable(void) @UINT _tx_thread_interrupt_disable(void)

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
@/* Define the 16-bit Thumb mode veneer for _tx_thread_interrupt_restore for @/* Define the 16-bit Thumb mode veneer for _tx_thread_interrupt_restore for
@ applications calling this function from to 16-bit Thumb mode. */ @ applications calling this function from to 16-bit Thumb mode. */
@ @
@@ -53,7 +47,7 @@ $_tx_thread_interrupt_restore:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_interrupt_restore ARM9/GNU */ @/* _tx_thread_interrupt_restore ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -84,6 +78,9 @@ $_tx_thread_interrupt_restore:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@UINT _tx_thread_interrupt_restore(UINT old_posture) @UINT _tx_thread_interrupt_restore(UINT old_posture)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts DISABLE_INTS = 0xC0 @ Disable IRQ/FIQ interrupts
#else #else
@@ -50,7 +43,7 @@ IRQ_MODE_BITS = 0x12 @ IRQ mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_irq_nesting_end ARM9/GNU */ @/* _tx_thread_irq_nesting_end ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -90,6 +83,9 @@ IRQ_MODE_BITS = 0x12 @ IRQ mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_irq_nesting_end(VOID) @VOID _tx_thread_irq_nesting_end(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
@
IRQ_DISABLE = 0x80 @ IRQ disable bit IRQ_DISABLE = 0x80 @ IRQ disable bit
MODE_MASK = 0x1F @ Mode mask MODE_MASK = 0x1F @ Mode mask
SYS_MODE_BITS = 0x1F @ System mode bits SYS_MODE_BITS = 0x1F @ System mode bits
@@ -46,7 +39,7 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_irq_nesting_start ARM9/GNU */ @/* _tx_thread_irq_nesting_start ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -83,6 +76,9 @@ SYS_MODE_BITS = 0x1F @ System mode bits
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_irq_nesting_start(VOID) @VOID _tx_thread_irq_nesting_start(VOID)

View File

@@ -19,17 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
ENABLE_INTS = 0xC0 @ IRQ & FIQ Interrupts enabled mask ENABLE_INTS = 0xC0 @ IRQ & FIQ Interrupts enabled mask
#else #else
@@ -68,7 +61,7 @@ $_tx_thread_schedule:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_schedule ARM9/GNU */ @/* _tx_thread_schedule ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -102,6 +95,9 @@ $_tx_thread_schedule:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_schedule(VOID) @VOID _tx_thread_schedule(VOID)

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@ #include "tx_user.h"
@#define TX_SOURCE_CODE #endif
@
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@
.arm .arm
SVC_MODE = 0x13 @ SVC mode SVC_MODE = 0x13 @ SVC mode
@@ -64,7 +58,7 @@ $_tx_thread_stack_build:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_stack_build ARM9/GNU */ @/* _tx_thread_stack_build ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -97,6 +91,9 @@ $_tx_thread_stack_build:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID)) @VOID _tx_thread_stack_build(TX_THREAD *thread_ptr, VOID (*function_ptr)(VOID))

View File

@@ -19,16 +19,10 @@
@/** */ @/** */
@/**************************************************************************/ @/**************************************************************************/
@/**************************************************************************/ @/**************************************************************************/
@ #ifdef TX_INCLUDE_USER_DEFINE_FILE
@#define TX_SOURCE_CODE #include "tx_user.h"
@ #endif
@
@/* Include necessary system files. */
@
@#include "tx_api.h"
@#include "tx_thread.h"
@#include "tx_timer.h"
@
.arm .arm
#ifdef TX_ENABLE_FIQ_SUPPORT #ifdef TX_ENABLE_FIQ_SUPPORT
@@ -70,7 +64,7 @@ $_tx_thread_system_return:
@/* FUNCTION RELEASE */ @/* FUNCTION RELEASE */
@/* */ @/* */
@/* _tx_thread_system_return ARM9/GNU */ @/* _tx_thread_system_return ARM9/GNU */
@/* 6.1 */ @/* 6.2.1 */
@/* AUTHOR */ @/* AUTHOR */
@/* */ @/* */
@/* William E. Lamie, Microsoft Corporation */ @/* William E. Lamie, Microsoft Corporation */
@@ -103,6 +97,9 @@ $_tx_thread_system_return:
@/* 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-08-2023 Cindy Deng Modified comment(s), added */
@/* #include tx_user.h, */
@/* resulting in version 6.2.1 */
@/* */ @/* */
@/**************************************************************************/ @/**************************************************************************/
@VOID _tx_thread_system_return(VOID) @VOID _tx_thread_system_return(VOID)

Some files were not shown because too many files have changed in this diff Show More