Skip to content

Commit 3e8e85c

Browse files
committed
Release 6.2.0
1 parent b871c33 commit 3e8e85c

File tree

173 files changed

+26153
-3878
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+26153
-3878
lines changed

README.md

Lines changed: 147 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,189 @@
1-
![cortex_m0](https://github.com/azure-rtos/threadx/workflows/cortex_m0/badge.svg)
2-
![cortex_m3](https://github.com/azure-rtos/threadx/workflows/cortex_m3/badge.svg)
3-
![cortex_m4](https://github.com/azure-rtos/threadx/workflows/cortex_m4/badge.svg)
4-
![cortex_m7](https://github.com/azure-rtos/threadx/workflows/cortex_m7/badge.svg)
5-
61
# Azure RTOS ThreadX
72

83
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.
94

10-
## Documentation
5+
Here are the key features and modules of ThreadX:
116

12-
Documentation for this library can be found here: http://docs.microsoft.com/azure/rtos/threadx
7+
![ThreadX Key Features](./docs/threadx-features.png)
138

9+
## Getting Started
1410

15-
# Understanding inter-component dependencies
11+
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).
1612

17-
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.
13+
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.
1814

19-
![dependency graph](docs/deps.png)
15+
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/).
2016

21-
# Building and using the library
17+
Also there is dedicated [learning path of Azure RTOS ThreadX](https://learn.microsoft.com/training/paths/azure-rtos-threadx/) for learning systematically.
2218

23-
## Prerequisites
2419

25-
Install the following tools:
20+
## Repository Structure and Usage
21+
### Directory layout
2622

27-
* [CMake](https://cmake.org/download/) version 3.0 or later
28-
* [GCC compilers for arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
29-
* [Ninja](https://ninja-build.org/)
23+
.
24+
├── cmake # CMakelist files for building the project
25+
├── common # Core ThreadX files
26+
├── common_modules # Core ThreadX module files
27+
├── common_smp # Core ThreadX SMP files
28+
├── docs # Documentation supplements
29+
├── ports # Architecture and compiler specific files. See below for directory breakdown
30+
│ ├── cortex_m7
31+
│ │ ├── iar # Example IAR compiler sample project
32+
│ │ │ ├── example build # IAR workspace and sample project files
33+
│ │ │ ├── inc # tx_port.h for this architecture
34+
│ │ │ └── src # Source files for this architecture
35+
│ │ ├── ac6 # Example ac6/Keil sample project
36+
│ │ ├── gnu # Example gnu sample project
37+
│ │ └── ...
38+
│ └── ...
39+
├── ports_modules # Architecture and compiler specific files for threadX modules
40+
├── ports_smp # Architecture and compiler specific files for threadX SMP
41+
├── samples # demo_threadx.c
42+
└── utility # Test cases and utilities
3043

31-
## Cloning the repo
3244

33-
```bash
34-
$ git clone https://github.com/azure-rtos/threadx.git
35-
```
45+
## Branches & Releases
3646

37-
## Building as a static library
47+
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`.
3848

39-
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()`.
49+
## Supported Architecture Ports
4050

41-
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.
51+
### ThreadX
52+
```
53+
arc_em cortex_a12 cortex_m0 cortex_r4
54+
arc_hs cortex_a15 cortex_m23 cortex_r5
55+
arm11 cortex_a17 cortex_m3 cortex_r7
56+
arm9 cortex_a34 cortex_m33
57+
c667x cortex_a35 cortex_m4
58+
linux cortex_a5 cortex_m55
59+
risc-v32 cortex_a53 cortex_m7
60+
rxv1 cortex_a55 cortex_m85
61+
rxv2 cortex_a57
62+
rxv3 cortex_a5x
63+
win32 cortex_a65
64+
xtensa cortex_a65ae
65+
cortex_a7
66+
cortex_a72
67+
cortex_a73
68+
cortex_a75
69+
cortex_a76
70+
cortex_a76ae
71+
cortex_a77
72+
cortex_a8
73+
cortex_a9
74+
```
4275

43-
```bash
44-
$ cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake -GNinja .
76+
### ThreadX Modules
77+
[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.
78+
```
79+
cortex_a35
80+
cortex_a35_smp
81+
cortex_a7
82+
cortex_m0+
83+
cortex_m23
84+
cortex_m3
85+
cortex_m33
86+
cortex_m4
87+
cortex_m7
88+
cortex_r4
89+
rxv2
90+
```
4591

46-
$ cmake --build ./build
92+
### ThreadX SMP
93+
[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.
94+
```
95+
arc_hs_smp
96+
cortex_a34_smp
97+
cortex_a35_smp
98+
cortex_a53_smp
99+
cortex_a55_smp
100+
cortex_a57_smp
101+
cortex_a5x_smp
102+
cortex_a5_smp
103+
cortex_a65ae_smp
104+
cortex_a65_smp
105+
cortex_a72_smp
106+
cortex_a73_smp
107+
cortex_a75_smp
108+
cortex_a76ae_smp
109+
cortex_a76_smp
110+
cortex_a77_smp
111+
cortex_a78_smp
112+
cortex_a7_smp
113+
cortex_a9_smp
114+
linux
47115
```
48116

49-
NOTE: You will have to take the dependency graph above into account when building anything other than threadx itself.
117+
## Adaptation layer for ThreadX
50118

51-
# Repository Structure and Usage
119+
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.).
52120

53-
## Branches & Releases
121+
## Component dependencies
54122

55-
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.
123+
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.
56124

57-
## Releases
125+
![dependency graph](docs/deps.png)
58126

59-
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`.
127+
> You will have to take the dependency graph above into account when building anything other than ThreadX itself.
60128
61-
## Directory layout
129+
### Building and using the library
62130

63-
```
64-
- cmake
65-
- common
66-
- inc
67-
- src
68-
- ports
69-
- cortex_m0/gnu
70-
- inc
71-
- src
72-
- cortex_m3/gnu
73-
- inc
74-
- src
75-
- cortex_m4/gnu
76-
- inc
77-
- src
78-
- cortex_m7/gnu
79-
- inc
80-
- src
81-
- samples
82-
```
131+
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.
83132

84-
# Security
133+
1. Install the following tools:
85134

86-
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.
135+
* [CMake](https://cmake.org/download/) version 3.0 or later
136+
* [Arm GNU Toolchain for arm-none-eabi](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads)
137+
* [Ninja](https://ninja-build.org/)
87138

88-
# Adaptation layer for ThreadX
139+
1. Cloning the repo
89140

90-
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.).
141+
```bash
142+
$ git clone https://github.com/azure-rtos/threadx.git
143+
```
144+
145+
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.
146+
147+
1. Building as a static library
148+
149+
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()`.
150+
151+
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.
152+
153+
An example of building the library for Cortex-M4:
91154
92-
# Licensing
155+
```bash
156+
$ cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake .
157+
158+
$ cmake --build ./build
159+
```
160+
161+
## Professional support
162+
163+
[Professional support plans](https://azure.microsoft.com/support/options/) are available from Microsoft. For community support and others, see the [Resources](#resources) section below.
164+
165+
## Licensing
93166

94167
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.
95168

96-
# Contribution, feedback, issues, and professional support
169+
## Resources
97170

98-
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.
171+
The following are references to additional Azure RTOS resources:
99172

100-
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.
173+
- **Product introduction and white papers**: https://azure.com/rtos
174+
- **General technical questions**: https://aka.ms/QnA/azure-rtos
175+
- **Product issues and bugs, or feature requests**: https://github.com/azure-rtos/threadx/issues
176+
- **Licensing and sales questions**: https://aka.ms/azrtos-license
177+
- **Product roadmap and support policy**: https://aka.ms/azrtos/lts
178+
- **Blogs and videos**: http://msiotblog.com and https://aka.ms/iotshow
179+
- **Azure RTOS TraceX Installer**: https://aka.ms/azrtos-tracex-installer
101180

102-
Professional support plans (https://azure.microsoft.com/en-us/support/options/) are available from Microsoft.
181+
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.
182+
183+
## Security
184+
185+
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.
103186

104-
# Additional Resources
187+
## Contribution
105188

106-
The following are references to additional Azure RTOS and Azure IoT in general:
107-
| Content | Link |
108-
|---|---|
109-
| TraceX Installer | https://aka.ms/azrtos-tracex-installer |
110-
| Azure RTOS Documentation and Guides: | https://docs.microsoft.com/azure/rtos |
111-
| Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
112-
| Azure RTOS Sales Questions: | https://aka.ms/azrtos-license |
113-
| Azure RTOS Product Support Policy | https://aka.ms/azrtos/lts |
114-
| Azure RTOS Functional Safety Artifacts | https://aka.ms/azrtos/tuv |
115-
| For technical questions check out Microsoft Q/A for Azure IoT | https://aka.ms/QnA/azure-rtos |
116-
| Internet of Things Show for latest announcements and online training | https://aka.ms/iotshow |
117-
| IoT Tech Community | https://aka.ms/community/azure-rtos |
189+
Please follow the instructions provided in the [CONTRIBUTING.md](./CONTRIBUTING.md) for the corresponding repository.

0 commit comments

Comments
 (0)