Difference between revisions of "Introduction to Azure RTOS with STM32"

[checked revision] [quality revision]
m
m

1 What is STM32CoreMW?[edit]

STMicroelectronics offers a complete, proven, and reliable MCU software solution for developers. It covers low layers, middleware, and applicative sides, as well as configuration, programming, monitoring and debugging tools.


Core Middleware Components

The basic middleware stacks that are commonly needed for applications are: RTOS, file system, USB, TCP/IP, bootloader, JPEG and TLS. STMicroelectronics offers a comprehensive set of stacks and applications covering these topics. This set of middleware stacks is called STM32 Core middleware (STM32CoreMW for short).

The STM32CoreMW solution is constructed around Microsoft® Azure® RTOS MW and other in-house (ST USB, OpenBL) and open source stacks (FreeRTOS™, FatFS, LwIP, mbedTLS, LibJPEG). All are integrated and customized for STM32 MCU devices and enriched with corresponding application examples based on STM32 evaluation boards.

THREADX overview USBX overview FILEX overview NETXDUO overview LEVELX overviewCore middleware components
About this image

ST USB, FreeRTOS™, FatFS and LwIP are known as Classic CoreMW.

2 Azure® RTOS[edit]

Azure® RTOS is a professional grade, highly reliable and market proven middleware suite:

  • Integrated and full featured RTOS. Learn more about ThreadX[1].
  • Industrial grade networking stack: optimized for performance coming with many IoT protocols. Learn more about NetX Duo[2].
  • Advanced Flash file system (FS) / Flash translation layer (FTL): fully featured to support NAND/NOR Flash memories. Learn more about FileX[3] and LevelX[4]
  • USB Host and Device stacks coming with many classes. Learn more about USBX[5].
  • Safety pre-certifications (from MSFT): IEC 61508 SIL4, IEC 62304 Class C and ISO 26262 ASIL D
  • Security pre-certifications (from MSFT): EAL4+ for TLS/DTLS, FIPS 140-2 for software cryptographic library

With Azure® RTOS complementing the extensive STM32Cube ecosystem providing free development tools, software bricks, and software Expansion Packages, STM32 users can also leverage the rich services of Azure® RTOS, which meet the needs of tiny, smart, connected devices.

More information relative to general STM32Cube offer can be found hereon the STMicroelectronics website.

2.1 Azure® RTOS integration in the STM32Cube ecosystem[edit]

For currently public STM32 series (introduced up to 2020), Azure® RTOS integration is planned as a software STM32Cube Expansion Package enhanced for the STM32 Toolset (such as X-CUBE-AZRTOS-H7[6] for the STM32H7 Series[7]). The expansion is built on STM32Cube software technology to make the portability across different STM32 microcontrollers easy and to allow the user to benefit from STM32CubeMX[8] or STM32CubeIDE[9] software tools native features alongside the Azure® RTOS applications. New STM32 series introduced starting from 2021 benefit from a direct integration of Azure® RTOS embedded software components within the matching STM32Cube MCU Package. For instance, for the STM32U5 Series, the matching STM32Cube MCU Package named STM32CubeU5 features Azure® RTOS directly.

Once integrated within STM32Cube, whether in an STM32Cube Expansion or MCU Package, Azure® RTOS benefits from many additions done by STMicroelectronics:

  • Ability to use Azure® RTOS MW with some level of configurability directly within STM32CubeMX
  • Addition of many examples for standard evaluation boards from STMicroelectronics: STM32 Nucleo, Discovery kits and Eval boards, thus, reducing the learning curve and ensuring a smooth application development experience with Azure® RTOS and STM32 MCUs.
  • Addition of material helping with migration effort
  • Addition of training material
AzureRTOSOverview1.png

ThreadX is required to implement FileX, LevelX, NetX Duo or USBX, a “bare-metal” implementation is also planned in the future for USBX and FileX.

Azure® RTOS MW stacks are also interdependent. In fact, some USBX Host classes are using the FileX APIs, while other USBX device classes require the NetX Duo APIs. LevelX is used by FileX to support file system on NAND and NOR memories.

Azure RTOS Interdependencies

The Azure® RTOS APIs are hardware agnostic, they run seamlessly on all supported hardware and peripherals. Each middleware has its own low-level driver to support specific hardware peripherals. These drivers are implemented using the HAL and BSP drivers to ensure portability among different STM32 Series and boards.

Azure RTOS Interactions

As for all STM32Cube MCU and Expansion Packages, BSP configuration in STM32CubeMX[8] is not supported for STM32 Azure® RTOS.

2.2 Azure® RTOS License[edit]

Azure® RTOS is distributed by Microsoft under their own GitHub[10]. STMicroelectronics plans to include Azure® RTOS in some STM32Cube MCU and Expansion Packages. Whether delivered by Microsoft under GitHub, or by STMicroelectronics through STM32Cube packages on STMicroelectronics website[11] or GitHub, proprietary license terms are the same between Microsoft and the user: STM32CubeMX[8]

  • Source code is available
  • User is granted modification
  • User is granted redistribution of source (modified or not) and/or binary, provided the development is performed on an MCU/MPU that is listed officially by Microsoft
  • User is granted production, provided the development is performed on an MCU that is listed officially by Microsoft
  • User is forbidden to reuse provided software to create a competing offer


2.3 Where to get Azure® RTOS?[edit]

Azure® RTOS for STM32 is distributed by STMicroelectronics on different channels to adapt to the different needs and profiles of STM32 users. The figure below shows the different ways to start with X-CUBE-AZRTOS-H7 (STM32H7 used as example for illustration).

Where to get it overview.png


2.3.1 Start from STMicroelectronics website[11][edit]

This is the standard way to get the package: the user downloads a self-contained package containing the STM32 drivers, Azure® RTOS MW & STM32CubeMX[8] configuration files and ready to use applications. Different usage approaches are possible:

  • Start directly from the provided applications, open the preferred IDE, build and debug the code.
  • Open the ioc file with STM32CubeMX[8], modify the STM32 peripherals and/or Azure® RTOS MW configuration and generate the code.
  • Install the package manually in [8] or STM32CubeIDE[9]. The usage is then the same as described in the next section.
2.3.2 Start from STM32CubeMX[8] or STM32CubeIDE[9][edit]

Azure® RTOS is delivered as a software STM32Cube Expansion Package enhanced for STM32 Toolset, to allow users to benefit from STM32CubeMX[8] or STM32CubeIDE[9] software tools native features alongside the Azure® RTOS applications.

  • There is one package per currently public STM32 Series (delivered as X-CUBE-AZRTOS-XX package, “XX” refer to the supported STM32 Series)
  • Each package contains all the supported middleware stacks and all required resources (HAL, BSP, Utilities, ...)
  • Azure® RTOS MW stacks are described as CMSIS pack components to facilitate their usage and to manage interdependencies between them.
  • Azure® RTOS MW are configurable through STM32CubeMX[8] interface and initialization code can be generated.
  • Each package provides a set of full functional applications described by PDSC file

Pack Install STM32CubeMX

Once the package is installed inSTM32CubeMX[8]/ STM32CubeIDE[9], it can typically be found on this location: "C:\Users\"UserName"\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBE-AZRTOS-XX" A package for a specific Series is not visible or usable on other series. Each package has its own version, that is not correlated with Azure® RTOS MW versions. Two different Azure® RTOS packages, for different series, may contain different Azure® RTOS MW versions.

Once the package is installed, the user has two possibilities to use Azure® RTOS:

  • Browse the Azure® RTOS applications provided within the installed pack, then start from the selected application
  • Select Azure® RTOS MW, configure it, and then generate the initialization code
2.3.3 Start from GitHub[edit]

STM32 Azure® RTOS publication on ST GitHub repository targets STM32 community users, to get a configuration management-based delivery (Git) and have engineer to engineer technical communication by means of the Issues feature. Packages in GitHub repository do not contain Azure® RTOS STM32CubeMX configuration files, thus Azure® RTOS MW configuration and code generation in STM32CubeMX[8]/[9] are not available.

Depending on the STM32 series used:

  • For currently public STM32 series (introduced up to 2020), you can find the link to the matching X-CUBE-AZRTOS-XX within this x-cube-expansion-software section [12].
  • For new STM32 series introduced starting from 2021, you can find the link to the matching STM32CubeXX repository within this x-cube-expansion-software section[12] .

Example: GitHub Azure® RTOS Expansion Package for the STM32H7 Series.[13]

2.4 How to use Azure® RTOS package?[edit]

A training video is available here [14] to show in details how to setup and use the Azure® RTOS STM32Cube Packages. Check STMicroelectronics website for more videos [11]

2.5 Azure® RTOS applications[edit]

Multiple functional applications are provided in STM32Cube Package for Azure® RTOS stacks. Visit the page dedicated to each Azure® RTOS stack for more details about available applications.

3 STM32 Classic CoreMW[edit]

Along with the Azure® RTOS MW solution, STM32 support other CoreMW stacks based on ST development:

and Third Parties open source development:

  • FreeRTOS™ (Wiki page link will be available soon)
  • FatFS (Wiki page link will be available soon)
  • LwIP (Wiki page link will be available soon)
  • LibJPEG (Wiki page link will be available soon)
  • OpenAMP (Wiki page link will be available soon)
  • mbedTLS (Wiki page link will be available soon)

These stacks are provided in the STM32Cube MCU and Expansion Packages (except when delivered natively with Azure® RTOS MW) and in ST GitHub repository. For each stack, multiple combinations of examples and demos are provided in order to help building your own application. Besides, USB, FreeRTOS™, FatFS and LwIP stacks are supported by STM32CubeMX[8] code generation and customization.

For each Classic CoreMW , refer to the relative ST Wiki page to get more information.

3.1 License[edit]

The STM32Cube MCU Packages and STM32Cube Expansion Packages are delivered under the global SLA0048[1415] software license agreement. Individual software component copyrights are described in the table below:

Component License Copyright
ST USB Device Proprietary STMicroelectronics
ST USB Host Proprietary STMicroelectronics
OpenBL SLA0044 STMicroelectronics
FreeRTOS™ MIT Amazon.com, Inc. or its affiliates
FatFS BSD-3-Clause FatFS - STMicroelectronics
LwIP BSD-3-Clause Swedish Institute of Computer Science - STMicroelectronics
LibJPEG Independent JPEG Group License Independent JPEG Group - STMicroelectronics
mbedTLS Apache License 2.0 Arm Limited - STMicroelectronics
OpenAMP BSD-3-Clause OpenAMP - STMicroelectronics

4 FAQ[edit]

  • Q: What are the STM32 Series covered by Azure® RTOS MW?
  • A: All new series released in 2021 and later are covered by default by Azure® RTOS MW within the matching STM32Cube MCU packages. Other STM32 series (STM32H7, STM32F4, STM32F7, STM32L4, STM32L4+, STM32G0, STM32G4, STM32WB and STM32WL) are covered through STM32Cube Expansion Packages. Older STM32 series will not be updated with Azure® RTOS support.
  • Q: Will I be able to use Azure® RTOS for my commercial applications for free?
  • A:Yes, in compliance with the corresponding license terms.
  • Q: Will I be able to make modifications to Azure® RTOS to tailor my STM32 application to my needs or fix bugs myself?
  • A: Yes, in compliance with the corresponding license terms.
  • Q: Is there any difference between getting the Azure® RTOS for STM32 from STMicroelectronics website[11], from STM32CubeMX[8]/ STM32CubeIDE[9], or from STMicroelectronics GitHub?
  • A: The only difference is that packages on GitHub do not contain STM32CubeMX[8] configuration files. Thus, it is not possible to use these packages to configure Azure® RTOS MW components and generate code using STM32CubeMX.
  • Q: What will happen to the current STM32Cube middleware offer, such as FreeRTOS™ or ST USB library?
  • A: For currently public STM32 series (introduced up to 2020), no change is planned on STM32Cube middleware offer. Azure® RTOS MW availability is planned as an additional option.
  • A: For new STM32 series starting from 2021, Azure® RTOS MW components are the preferred middleware components. Classic CoreMW is exposed through GitHub only for community handling
  • Q: Is Azure® RTOS usable withSTM32CubeMX[8] configuration and generation tool?
  • A: Yes, once the Azure® RTOS packages are picked by the user, middleware is available under STM32CubeMX, with some basic configuration possibilities.
  • Q: Has Azure® RTOS the same STM32CubeMX[8] configuration level as for the Classic CoreMW?
  • A: No, Azure® RTOS MW configuration in STM32CubeMX offers less features than Classic CoreMW native support in STM32CubeMX (less configuration possibilities, limited code generation).
  • Q: I am using current STM32Cube middleware (non Azure® RTOS), what is the impact for me?
  • A: None for currently public STM32 series (introduced up to 2020).
  • A: For new coming STM32 series starting from 2021, you must migrate to the usage of Azure® RTOS MW, or consider community job being done on Classic CoreMW
  • Q: I would like to migrate my application to Azure® RTOS from the current STM32Cube middleware offer. How to do it in the easiest way?
  • A: Azure® RTOS MW and current STM32Cube middleware differ by their respective features, performance and footprint figures. Migration effort will depend on the middleware you were using:
    • FreeRTOS™: migration will be made easy via a FreeRTOS™ API layer built on top of ThreadX, and provided by Microsoft, or by using ThreadX CMSIS-RTOS wrapper provided by STMicroelectronics.
    • NetX Duo: migration will be easier if you used Socket API, both available on the two stacks
    • USBX and FileX: switch to new APIs will have to be implemented
    • STMicroelectronics plans some documentation highlighting differences and features comparison with possible correspondence between current middleware and Azure® RTOS
  • Q: Are STMicroelectronics or Microsoft legally liable for the Azure® RTOS code distributed in STM32Cube?
  • A: Same as for the current STM32Cube offer, software is provided as-is.
  • Q: What is the technical support scheme of Azure® RTOS for STMicroelectronics customers?
  • A: STMicroelectronics ensure first level of support on Azure® RTOS MW components, as provided within STM32Cube software packages. Customers may also enter licensing arrangements directly with Microsoft, including, but not limited to, certifications and standards (such as SIL 4, IEC 61508) and dedicated support.
  • Q: For my STM32-based IoT application, am I forced to use Azure® Cloud services, or could I still connect to AWS or Aliyun?
  • A: There is no such enforcement, and an STM32 customers remain completely free to choose their favorite cloud providers.
  • Q: Is the CMSIS-RTOS wrapper supported by ThreadX ?
  • A: Yes, the CMSIS-RTOS v2 wrapper is supported and allows easier applications migration to ThreadX from other RTOS. Note that CMSIS-RTOS v2 is the default option in STM32CubeMX.
  • Q: How many STM32 Azure® RTOS applications are using CMSIS-RTOS V2 wrapper ?
  • A: One ThreadX application is provided with CMSIS-RTOS v2 layer to show how to use it.
  • Q: What are other options available to migrate from FreeRTOS™ ?
  • A: There is one option of using CMSIS-RTOS v2 layer and one other option of using Azure® RTOS FreeRTOS™ wrapper layer provided by Microsoft.
  • Q: Will existing STM32 Expansion Packages be migrated to use Azure® RTOS MW ?
  • A: Some packages are planned to be migrated to Azure® RTOS MW. New packages developed during the second half of 2021 will be based only on Azure® RTOS MW.
  • Q: When I download/use the STM32 Azure® RTOS package provided on GitHub, does it contain the STM32CubeMX[8] generation projects ?
  • A: No, STM32CubeMX generation projects are available only when package is downloaded from STMicroelectronics website<ref name="STMicroelectronics website" / > website[11] or on STM32CubeMX interface.
  • Q: Which boards are supported by the Azure® RTOS package provided by STMicroelectronics ?
  • A: Specific boards are supported for each application (typically one Nucleo or one Discovery board supported for each application) due to project configuration constraints. In order to support custom boards, modifications must be applied to the project source files.
  • Q: Does STM32CubeMX[8] allow configuration of threads in ThreadX ?
  • A: No, it is not possible to do so. Threads configuration must be done manually after project generationt.
  • Q: Is TraceX supported ?
  • A: TraceX is not included in the STM32 Azure® RTOS package. But users can download it from Microsoft GitHub repository and integrate it in their projects.
  • Q: Is GUIX supported ?
  • A: GUIX is not included in the STM32 Azure® RTOS package. But users can download it from Microsoft GitHub repository and integrate it in their projects.
  • Q: Is USB-PD supported in Azure® RTOS MW ?
  • A: USB-PD is supported by ST USBPD library and applications provided in STM32Cube MCU packages. But it is not yet integrated with STM32 Azure® RTOS MW solution.
  • Q: I want to use the USB or file system but I do not want to use an RTOS, what can I do with Azure® RTOS solution ?
  • A: USBX and FileX are planned to support "bare metal" option allowing to run them without the need for ThreadX. The integration of this feature in STM32 packages is planned upon availability.
  • Q: I have a question or support request relative to Classic CoreMW stacks (ST USB Device, ST USB Host, FreeRTOS™, FatFS, LwIP), what can I do ? Will fixes be released on STM32Cube ?
  • A: Support of Classic CoreMW continues through the standard channels. But no updates will be done on STM32Cube MCU packages or STM32CubeMX. Only GitHub repositories will continue to be updated for major fixes when needed or to support new STM32 Series released starting from 2021.
  • Q: How can I find online trainings to help me to use Azure® RTOS MW ?
  • A: STMicroelectronics provides online training sessions and video. Visit STMicroelectronics website<ref name="STMicroelectronics website" > website[11] for more details.
  • Q: Where can I find performance and footprint information relative to Azure® RTOS MW ?
  • A: Performance and footprint data are published on this wiki page periodically. If you do not find it here, it is in the process of being published soon.
  • Q: What are the export classifications for Azure® RTOS components?
  • A: Microsoft represents and warrants that, to the best of Microsoft’s knowledge, the Azure® RTOS software Items are not subject to US Export Administration Regulation (EAR), based on the fact that these software items are “Published” within the meaning of section 734.7 and section 742.15(b)(2) of the EAR regulation.
  • A: The ST packages that incorporate the Azure® RTOS components containing cryptography are classified 5D002 (EU ECCN) under the EU regulation.
  • Q: Will I be able to use Azure® RTOS for my commercial applications for free?
  • A: Yes, in compliance with the corresponding license terms.
  • Q: I am using Keil’s RTX, SEGGER’s emUSB… i.e. another third-party middleware that runs on STM32. Is there any impact for me?
  • A: There is absolutely no impact. Customers can of course continue using their favorite 3rd party middleware.
  • Q: Where is it possible to find the list of Security vulnerabilities related to Azure® RTOS MW?{{ReviewsComments |
  • A: Any Security Vulnerability related to Azure® RTOS is logged in Microsoft Security Response Center page[16].

5 References[edit]



=== What is STM32CoreMW? ===
STMicroelectronics offers a complete, proven, and reliable MCU software solution for developers. It covers low layers, middleware, and applicative sides, as well as configuration, programming, monitoring and debugging tools.

[[File:STM32CoreMW_Overview.png|frameless|center|800px|Core Middleware Components]]

The basic middleware stacks that are commonly needed for applications are: RTOS, file system, USB, TCP/IP, bootloader, JPEG and TLS. 
STMicroelectronics offers a comprehensive set of stacks and applications covering these topics. 
This set of middleware stacks is called STM32 Core middleware (STM32CoreMW for short).

The STM32CoreMW solution is constructed around Microsoft<sup>®</sup> Azure<sup>®</sup> RTOS MW and other in-house (ST USB, OpenBL) and open source stacks (FreeRTOS™, FatFS, LwIP, mbedTLS, LibJPEG). All are integrated and customized for STM32 MCU devices and enriched with corresponding application examples based on STM32 evaluation boards.
<imagemap>

File:MiddlewareComponents.jpg|600px|center|Core middleware components
rect 8 58 194 100 [[THREADX_overview]]
rect 219 58 410 100[[USBX_overview]]
rect 432 58 621 100 [[FILEX_overview]]
rect 642 58 832 100 [[NETXDUO_overview]]
rect 432 112 621 161 [[LEVELX_overview]]
desc bottom-left</imagemap>


ST USB, FreeRTOS™, FatFS and LwIP are known as Classic CoreMW.

===  Azure<sup>®</sup> RTOS ===
Azure<sup>®</sup> RTOS is a professional grade, highly reliable and market proven middleware suite:
* Integrated and full featured RTOS. Learn more about ThreadX<ref>[https://aka.ms/threadx ThreadX in Microsoft website]</ref>.
* Industrial grade networking stack: optimized for performance coming with many IoT protocols. Learn more about NetX Duo<ref>[https://aka.ms/netxduo NetX Duo in Microsoft website]</ref>.
* Advanced Flash file system (FS) / Flash translation layer (FTL): fully featured to support NAND/NOR Flash memories. Learn more about FileX<ref>[https://aka.ms/filex FileX in Microsoft website]</ref> and LevelX<ref>[https://docs.microsoft.com/en-us/azure/rtos/levelx/ LevelX in Microsoft website]</ref>

* USB Host and Device stacks coming with many classes. Learn more about USBX<ref>[https://aka.ms/usbx USBX in Microsoft website]</ref>.
* Safety pre-certifications (from MSFT): IEC 61508 SIL4, IEC 62304 Class C and ISO 26262 ASIL D
* Security pre-certifications (from MSFT): EAL4+ for TLS/DTLS, FIPS 140-2 for software cryptographic library

With Azure<sup>®</sup> RTOS complementing the extensive STM32Cube ecosystem providing free development tools, software bricks, and software Expansion Packages, STM32 users can also leverage the rich services of Azure<sup>®</sup> RTOS, which meet the needs of tiny, smart, connected devices.

More information relative to general STM32Cube offer can be found [https://www.st.com/stm32cube here].

{{ReviewsComments | [[User:Ludovic Bergonzi|Ludovic Bergonzi]] ([[User talk:Ludovic Bergonzi|talk]]) 16:25, 5 October 2021 (CEST) <br /> Consider adding a reference to the STM32Cube occurrence in this paragraph, for instance on the [https://www.st.com/stm32cube, where the description of middleware and Azure material is kept up to date. --> Chekib: Done}}
 STMicroelectronics website].
====  Azure<sup>®</sup> RTOS integration in the STM32Cube ecosystem ====
For currently public STM32 series (introduced up to 2020), Azure<sup>®</sup> RTOS integration is planned as a software STM32Cube Expansion Package enhanced for the STM32 Toolset (such as X-CUBE-AZRTOS-H7<ref>[https://www.st.com/en/product/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7]</ref> for the STM32H7 Series<ref> [https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html STM32H7 Series]</ref>). The expansion is built on STM32Cube software technology to make the portability across different STM32 microcontrollers easy and to allow the user to benefit from STM32CubeMX<ref name="STM32CubeMX" >[https://www.st.com/stm32cubemx STM32CubeMX]</ref> or STM32CubeIDE<ref name="STM32CubeIDE">[https://www.st.com/stm32cubeide STM32CubeIDE]</ref> software tools native features alongside the Azure<sup>®</sup> RTOS applications.
New STM32 series introduced starting from 2021 benefit from a direct integration of Azure<sup>®</sup> RTOS embedded software components within the matching STM32Cube MCU Package. For instance, for the STM32U5 Series, the matching STM32Cube MCU Package named STM32CubeU5 features Azure<sup>®</sup> RTOS directly.
{{ReviewsComments | [[User:Ludovic Bergonzi|Ludovic Bergonzi]] ([[User talk:Ludovic Bergonzi|talk]]) 16:25, 5 October 2021 (CEST) <br /> Changed the sentence to indicate that STM32CubeU5 is indeed incorporating Azure RTOS MW. Please check that this was the thing to do --> Chekib : OK.}}
Once integrated within STM32Cube, whether in an STM32Cube Expansion or MCU Package, Azure<sup>®</sup> RTOS benefits from many additions done by STMicroelectronics:
* Ability to use Azure<sup>®</sup> RTOS MW with some level of configurability directly within STM32CubeMX
* Addition of many examples for standard evaluation boards from STMicroelectronics: STM32 Nucleo, Discovery kits and Eval boards, thus, reducing the learning curve and ensuring a smooth application development experience with Azure<sup>®</sup> RTOS and STM32 MCUs.
* Addition of material helping with migration effort
* Addition of training material

[[File:AzureRTOSOverview1.png|frameless|center|800px]]<br>


ThreadX is required to implement FileX, LevelX, NetX Duo or USBX, a “bare-metal” implementation is also planned in the future for USBX and FileX. 

Azure<sup>®</sup> RTOS MW stacks are also interdependent. In fact, some USBX Host classes are using the FileX APIs, while other USBX device classes require the NetX Duo APIs. LevelX is used by FileX to support file system on NAND and NOR memories.

[[File:AzureRTOSInterdependencies.png|frameless|center|600px|Azure RTOS Interdependencies]]<br>


The Azure<sup>®</sup> RTOS APIs are hardware agnostic, they run seamlessly on all supported hardware and peripherals. Each middleware has its own low-level driver to support specific hardware peripherals. These drivers are implemented using the HAL and BSP drivers to ensure portability among different STM32 Series and boards. 

[[File:AzureRTOS IntegratiionInteraction.png|frameless|center|Azure RTOS Interactions]]<br>


As for all STM32Cube MCU and Expansion Packages, BSP configuration in STM32CubeMX<ref name="STM32CubeMX" /> is not supported for STM32 Azure<sup>®</sup> RTOS.

==== Azure<sup>®</sup> RTOS License ====
Azure<sup>®</sup> RTOS is distributed by Microsoft under their own GitHub<ref>[https://github.com/azure-rtos Azure RTOS on GitHub]</ref>. STMicroelectronics plans to include Azure<sup>®</sup> RTOS in some STM32Cube MCU and Expansion Packages. Whether delivered by Microsoft under GitHub, or by STMicroelectronics through STM32Cube packages on STMicroelectronics website<ref name="STMicroelectronics website" >[https://www.st.com STMicroelectronics website]</ref> or GitHub, proprietary license terms are the same between Microsoft and the user: STM32CubeMX<ref name="STM32CubeMX" >[https://www.st.com/stm32cubemx STM32CubeMX]</ref>

* Source code is available
* User is granted modification
* User is granted redistribution of source (modified or not) and/or binary, provided the development is performed on an MCU/MPU that is listed officially by Microsoft
* User is granted production, provided the development is performed on an MCU that is listed officially by Microsoft
* User is forbidden to reuse provided software to create a competing offer


==== Where to get Azure<sup>®</sup> RTOS? ====
Azure<sup>®</sup> RTOS for STM32 is distributed by STMicroelectronics on different channels to adapt to the different needs and profiles of STM32 users. The figure below shows the different ways to start with [https://www.st.com/en/product/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7] (STM32H7 used as example for illustration).

[[File:Where to get it overview.png|frameless|center|800px]]<br>


===== Start from STMicroelectronics website<ref name="STMicroelectronics website" /> =====
This is the standard way to get the package: the user downloads a self-contained package containing the STM32 drivers, Azure<sup>®</sup> RTOS MW & STM32CubeMX<ref name="STM32CubeMX"  /> configuration files and ready to use applications.
Different usage approaches are possible:
* Start directly from the provided applications, open the preferred IDE, build and debug the code. 
* Open the ''ioc'' file with STM32CubeMX<ref name="STM32CubeMX" />, modify the STM32 peripherals and/or Azure<sup>®</sup> RTOS MW configuration and generate the code.
* Install the package manually in <ref name="STM32CubeMX" /> or STM32CubeIDE<ref name="STM32CubeIDE" />. The usage is then the same as described in the next section.

===== Start from STM32CubeMX<ref name="STM32CubeMX" /> or STM32CubeIDE<ref name="STM32CubeIDE" /> =====
Azure<sup>®</sup> RTOS is delivered as a software STM32Cube Expansion Package enhanced for STM32 Toolset, to allow users to benefit from STM32CubeMX<ref name="STM32CubeMX" /> or STM32CubeIDE<ref name="STM32CubeIDE" /> software tools native features alongside the Azure<sup>®</sup> RTOS applications. 
* There is one package per currently public STM32 Series (delivered as X-CUBE-AZRTOS-XX package, “XX” refer to the supported STM32 Series) 
* Each package contains all the supported middleware stacks and all required resources (HAL, BSP, Utilities, ...)
* Azure<sup>®</sup> RTOS MW stacks are described as CMSIS pack components to facilitate their usage and to manage interdependencies between them.
* Azure<sup>®</sup> RTOS MW are configurable through STM32CubeMX<ref name="STM32CubeMX" /> interface and initialization code can be generated.
* Each package provides a set of full functional applications described by PDSC file<br><br>


[[File:PackInstallCubeMx.png|center|frameless|1000px|Pack Install STM32CubeMX]]<br>


Once the package is installed inSTM32CubeMX<ref name="STM32CubeMX" />/ STM32CubeIDE<ref name="STM32CubeIDE" />, it can typically be found on this location: "C:\Users\"UserName"\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBE-AZRTOS-XX" 
A package for a specific Series is not visible or usable on other series. Each package has its own version, that is not correlated with Azure<sup>®</sup> RTOS MW versions. Two different Azure<sup>®</sup> RTOS packages, for different series, may contain different Azure<sup>®</sup> RTOS MW versions. 

Once the package is installed, the user has two possibilities to use Azure<sup>®</sup> RTOS:
* Browse the Azure<sup>®</sup> RTOS applications provided within the installed pack, then start from the selected application 
* Select Azure<sup>®</sup> RTOS MW, configure it, and then generate the initialization code

===== Start from GitHub =====
STM32 Azure<sup>®</sup> RTOS publication on ST GitHub repository targets STM32 community users, to get a configuration management-based delivery (Git) and have engineer to engineer technical communication by means of the Issues feature.
Packages in GitHub repository do not contain Azure<sup>®</sup> RTOS STM32CubeMX configuration files, thus Azure<sup>®</sup> RTOS MW configuration and code generation in STM32CubeMX<ref name="STM32CubeMX" />/<ref name="STM32CubeIDE" /> are not available.

Depending on the STM32 series used:
* For currently public STM32 series (introduced up to 2020), you can find the link to the matching X-CUBE-AZRTOS-XX within thisx-cube-expansion-software section <ref name="CubeMCUoffer" >[https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer#x-cube-expansion-softwares x-cube-expansion-software section]</ref>. {{ReviewsComments | [[User:Ludovic Bergonzi|Ludovic Bergonzi]] ([[User talk:Ludovic Bergonzi|talk]]) 11:20, 6 October 2021 (CEST) <br /> Consider using "x-cube-expansion-software section" for the visible name of the reference (no plural to software) --> Chekib: Fixed}}* For new STM32 series introduced starting from 2021, you can find the link to the matching STM32CubeXX repository within this section x-cube-expansion-software section<ref name="CubeMCUoffer"  /> .

Example: GitHub Azure<sup>®</sup> RTOS Expansion Package for the STM32H7 Series.<ref>[https://github.com/STMicroelectronics/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7 on GitHub]</ref>


==== How to use Azure<sup>®</sup> RTOS package? ====
A training video is available <ref>[https://youtu.be/OPVhsJfZA5A here]Training video]</ref> to show in details how to setup and use the Azure<sup>®</sup> RTOS STM32Cube Packages.  Check STMicroelectronics website for more videos <ref name="STMicroelectronics website" />


==== Azure<sup>®</sup> RTOS applications ====
Multiple functional applications are provided in STM32Cube Package for Azure<sup>®</sup> RTOS stacks.
Visit the page dedicated to each Azure<sup>®</sup> RTOS stack for more details about available applications.

=== STM32 Classic CoreMW ===
Along with the Azure<sup>®</sup> RTOS MW solution, STM32 support other CoreMW stacks based on ST development:
* [[USB_overview|ST USB Device Library]]
* [[USB_overview|ST USB Host Library]]
* ST OpenBL <small>(''Wiki page link will be available soon'')</small>

and Third Parties open source development:
* FreeRTOS™ <small>(''Wiki page link will be available soon'')</small>

* FatFS <small>(''Wiki page link will be available soon'')</small>

* LwIP <small>(''Wiki page link will be available soon'')</small>

* LibJPEG <small>(''Wiki page link will be available soon'')</small>

* OpenAMP <small>(''Wiki page link will be available soon'')</small>

* mbedTLS <small>(''Wiki page link will be available soon'')</small>


These stacks are provided in the STM32Cube MCU and Expansion Packages (except when delivered natively with Azure<sup>®</sup> RTOS MW) and in ST GitHub repository.
For each stack, multiple combinations of examples and demos are provided in order to help building your own application. Besides, USB, FreeRTOS™, FatFS and LwIP stacks are supported by STM32CubeMX<ref name="STM32CubeMX" /> code generation and customization.

For each Classic CoreMW , refer to the relative ST Wiki page to get more information.

==== License ====

The STM32Cube MCU Packages and STM32Cube Expansion Packages are delivered under the global SLA0048<ref>[https://www.st.com/sla0048 SLA0048]</ref> software license agreement. Individual software component copyrights are described in the table below:

{| class="st-table sortable"
|-
! Component !! License !! Copyright
|-
| ST USB Device || Proprietary || STMicroelectronics
|-
| ST USB Host || Proprietary || STMicroelectronics
|-
| OpenBL || SLA0044 || STMicroelectronics
|-
| FreeRTOS™  || MIT || Amazon.com, Inc. or its affiliates
|-
| FatFS || BSD-3-Clause || FatFS - STMicroelectronics
|-
| LwIP || BSD-3-Clause || Swedish Institute of Computer Science - STMicroelectronics
|-
| LibJPEG || Independent JPEG Group License || Independent JPEG Group - STMicroelectronics
|-
| mbedTLS || Apache License 2.0 || Arm Limited - STMicroelectronics
|-
| OpenAMP || BSD-3-Clause || OpenAMP - STMicroelectronics
|}

=== FAQ ===
* '''Q''': What are the STM32 Series covered by Azure<sup>®</sup> RTOS MW?
* '''A''': All new series released in 2021 and later are covered by default by Azure<sup>®</sup> RTOS MW within the matching STM32Cube MCU packages. Other STM32 series (STM32H7, STM32F4, STM32F7, STM32L4, STM32L4+, STM32G0, STM32G4, STM32WB and STM32WL) are covered through STM32Cube Expansion Packages. Older STM32 series will not be updated with Azure<sup>®</sup> RTOS support.

* '''Q''': Will I be able to use Azure<sup>®</sup> RTOS for my commercial applications for free?
* '''A''':Yes, in compliance with the corresponding license terms.

* '''Q''': Will I be able to make modifications to Azure<sup>®</sup> RTOS to tailor my STM32 application to my needs or fix bugs myself?
* '''A''':  Yes, in compliance with the corresponding license terms.

* '''Q''': Is there any difference between getting the Azure<sup>®</sup> RTOS for STM32 from  STMicroelectronics website<ref name="STMicroelectronics website" />, from STM32CubeMX<ref name="STM32CubeMX" />/ STM32CubeIDE<ref name="STM32CubeIDE" />, or from STMicroelectronics GitHub?
* '''A''':  The only difference is that packages on GitHub do not contain STM32CubeMX<ref name="STM32CubeMX" /> configuration files. Thus, it is not possible to use these packages to configure Azure<sup>®</sup> RTOS MW components and generate code using STM32CubeMX.

* '''Q''': What will happen to the current STM32Cube middleware offer, such as FreeRTOS™ or ST USB library?
* '''A''':  For currently public STM32 series (introduced up to 2020), no change is planned on STM32Cube middleware offer. Azure<sup>®</sup> RTOS MW availability is planned as an additional option. 
* '''A''':  For new STM32 series starting from 2021, Azure<sup>®</sup> RTOS MW components are the preferred middleware components. Classic CoreMW is exposed through GitHub only for community handling

* '''Q''': Is Azure<sup>®</sup> RTOS usable withSTM32CubeMX<ref name="STM32CubeMX" /> configuration and generation tool?
* '''A''':  Yes, once the Azure<sup>®</sup> RTOS packages are picked by the user, middleware is available under STM32CubeMX, with some basic configuration possibilities.

* '''Q''': Has Azure<sup>®</sup> RTOS the same STM32CubeMX<ref name="STM32CubeMX" /> configuration level as for the Classic CoreMW?
* '''A''':  No, Azure<sup>®</sup> RTOS MW configuration in STM32CubeMX offers less features than Classic CoreMW native support in STM32CubeMX (less configuration possibilities, limited code generation).

* '''Q''': I am using current STM32Cube middleware (non Azure<sup>®</sup> RTOS), what is the impact for me?
* '''A''':  None for currently public STM32 series (introduced up to 2020).
* '''A''':  For new coming STM32 series starting from 2021, you must migrate to the usage of Azure<sup>®</sup> RTOS MW, or consider community job being done on Classic CoreMW

* '''Q''': I would like to migrate my application to Azure<sup>®</sup> RTOS from the current STM32Cube middleware offer. How to do it in the easiest way?
* '''A''':  Azure<sup>®</sup> RTOS MW and current STM32Cube middleware differ by their respective features, performance and footprint figures. Migration effort will depend on the middleware you were using: 
** FreeRTOS™: migration will be made easy via a FreeRTOS™ API layer built on top of ThreadX, and provided by Microsoft, or by using ThreadX CMSIS-RTOS wrapper provided by STMicroelectronics.
** NetX Duo: migration will be easier if you used Socket API, both available on the two stacks
** USBX and FileX: switch to new APIs will have to be implemented
**STMicroelectronics plans some documentation highlighting differences and features comparison with possible correspondence between current middleware and Azure<sup>®</sup> RTOS

* '''Q''': Are STMicroelectronics or Microsoft legally liable for the Azure<sup>®</sup> RTOS code distributed in STM32Cube?
* '''A''':  Same as for the current STM32Cube offer, software is provided as-is.<br>


* '''Q''': What is the technical support scheme of Azure<sup>®</sup> RTOS for STMicroelectronics customers?
* '''A''':  STMicroelectronics ensure first level of support on Azure<sup>®</sup> RTOS MW components, as provided within STM32Cube software packages. Customers may also enter licensing arrangements directly with Microsoft, including, but not limited to, certifications and standards (such as SIL 4, IEC 61508) and dedicated support.<br>


* '''Q''': For my STM32-based IoT application, am I forced to use Azure<sup>®</sup> Cloud services, or could I still connect to AWS or Aliyun?
* '''A''':  There is no such enforcement, and an STM32 customers remain completely free to choose their favorite cloud providers.<br>


* '''Q''': Is the CMSIS-RTOS wrapper supported by ThreadX ?
* '''A''':  Yes, the CMSIS-RTOS v2 wrapper is supported and allows easier applications migration to ThreadX from other RTOS. Note that CMSIS-RTOS v2 is the default option in STM32CubeMX.<br>


* '''Q''': How many STM32 Azure<sup>®</sup> RTOS applications are using CMSIS-RTOS V2 wrapper ?
* '''A''':  One ThreadX application is provided with CMSIS-RTOS v2 layer to show how to use it.<br>


* '''Q''': What are other options available to migrate from FreeRTOS™ ?
* '''A''':  There is one option of using CMSIS-RTOS v2 layer and one other option of using Azure<sup>®</sup> RTOS FreeRTOS™ wrapper layer provided by Microsoft.<br>


* '''Q''': Will existing STM32 Expansion Packages be migrated to use Azure<sup>®</sup> RTOS MW ?
* '''A''':  Some packages are planned to be migrated to Azure<sup>®</sup> RTOS MW. New packages developed during the second half of 2021 will be based only on Azure<sup>®</sup> RTOS MW.<br>


* '''Q''': When I download/use the STM32 Azure<sup>®</sup> RTOS package provided on GitHub, does it contain the STM32CubeMX<ref name="STM32CubeMX" /> generation projects ?
* '''A''':  No, STM32CubeMX generation projects are available only when package is downloaded from  STMicroelectronics website<ref name="STMicroelectronics website" / /> or on STM32CubeMX interface.<br>


* '''Q''': Which boards are supported by the Azure<sup>®</sup> RTOS package provided by STMicroelectronics ?
* '''A''':  Specific boards are supported for each application (typically one Nucleo or one Discovery board supported for each application) due to project configuration constraints. In order to support custom boards, modifications must be applied to the project source files.

* '''Q''': Does STM32CubeMX<ref name="STM32CubeMX" /> allow configuration of threads in ThreadX ?
* '''A''':  No, it is not possible to do so. Threads configuration must be done manually after project generationt.<br>


* '''Q''': Is TraceX supported ?
* '''A''':  TraceX is not included in the STM32 Azure<sup>®</sup> RTOS package. But users can download it from Microsoft GitHub repository and integrate it in their projects.<br>


* '''Q''': Is GUIX supported ?
* '''A''':  GUIX is not included in the STM32 Azure<sup>®</sup> RTOS package. But users can download it from Microsoft GitHub repository and integrate it in their projects.<br>


* '''Q''': Is USB-PD supported in Azure<sup>®</sup> RTOS MW ?
* '''A''':  USB-PD is supported by ST USBPD library and applications provided in STM32Cube MCU packages. But it is not yet integrated with STM32 Azure<sup>®</sup> RTOS MW solution.<br>


* '''Q''': I want to use the USB or file system but I do not want to use an RTOS, what can I do with Azure<sup>®</sup> RTOS solution ?
* '''A''':  USBX and FileX are planned to support "bare metal" option allowing to run them without the need for ThreadX. The integration of this feature in STM32 packages is planned upon availability.<br>


* '''Q''': I have a question or support request relative to Classic CoreMW stacks (ST USB Device, ST USB Host, FreeRTOS™, FatFS, LwIP), what can I do ? Will fixes be released on STM32Cube ?
* '''A''':  Support of Classic CoreMW continues through the standard channels. But no updates will be done on STM32Cube MCU packages or STM32CubeMX. Only GitHub repositories will continue to be updated for major fixes when needed or to support new STM32 Series released starting from 2021.<br>


* '''Q''': How can I find online trainings to help me to use Azure<sup>®</sup> RTOS MW ?
* '''A''':  STMicroelectronics provides online training sessions and video. Visit  STMicroelectronics website<ref name="STMicroelectronics website"  /> for more details.<br>


* '''Q''': Where can I find performance and footprint information relative to Azure<sup>®</sup> RTOS MW ?
* '''A''': Performance and footprint data are published on this wiki page periodically. If you do not find it here, it is in the process of being published soon.<br>


* '''Q''': What are the export classifications for Azure<sup>®</sup> RTOS components?
* '''A''':  Microsoft represents and warrants that, to the best of Microsoft’s knowledge, the Azure<sup>®</sup> RTOS software Items are not subject to US Export Administration Regulation (EAR), based on the fact that these  software items are “Published” within the meaning of section 734.7 and section 742.15(b)(2) of the EAR regulation.   
* A: The ST packages that incorporate the Azure<sup>®</sup> RTOS components containing cryptography are classified 5D002 (EU ECCN) under the EU regulation.<br>


* '''Q''': Will I be able to use Azure<sup>®</sup> RTOS for my commercial applications for free?
* '''A''': Yes, in compliance with the corresponding license terms.<br>


* '''Q''': I am using Keil’s RTX, SEGGER’s emUSB… i.e. another third-party middleware that runs on STM32. Is there any impact for me?
* '''A''': There is absolutely no impact. Customers can of course continue using their favorite 3rd party middleware.<br>


* '''Q''': Where is it possible to find the list of Security vulnerabilities related to Azure<sup>®</sup> RTOS MW?{{ReviewsComments | 
* '''A''': Any Security Vulnerability related to Azure<sup>®</sup> RTOS is logged in Microsoft Security Response Center page<ref>[https://msrc.microsoft.com/update-guide/vulnerability Microsoft Security Response Center page]. <br>

</ref>.
==References==<references/>

<noinclude>

[[Category:STM32CoreMW | 0]]
{{ArticleBasedOnModel | Example tech domain article}}
{{PublicationRequestId | 21114 | 2021-14-09 | to assign}}
{{PublicationRequestId | 19006 | 2021-02-17 | Anne JOURNEAU}}</noinclude>
Line 34: Line 34:
 
With Azure<sup>®</sup> RTOS complementing the extensive STM32Cube ecosystem providing free development tools, software bricks, and software Expansion Packages, STM32 users can also leverage the rich services of Azure<sup>®</sup> RTOS, which meet the needs of tiny, smart, connected devices.
 
With Azure<sup>®</sup> RTOS complementing the extensive STM32Cube ecosystem providing free development tools, software bricks, and software Expansion Packages, STM32 users can also leverage the rich services of Azure<sup>®</sup> RTOS, which meet the needs of tiny, smart, connected devices.
   
More information relative to general STM32Cube offer can be found [https://www.st.com/stm32cube here].
+
More information relative to general STM32Cube offer can be found on the [https://www.st.com/stm32cube STMicroelectronics website].
 
 
{{ReviewsComments | [[User:Ludovic Bergonzi|Ludovic Bergonzi]] ([[User talk:Ludovic Bergonzi|talk]]) 16:25, 5 October 2021 (CEST) <br /> Consider adding a reference to the STM32Cube occurrence in this paragraph, for instance https://www.st.com/stm32cube, where the description of middleware and Azure material is kept up to date. --> Chekib: Done}}
 
   
 
====  Azure<sup>®</sup> RTOS integration in the STM32Cube ecosystem ====
 
====  Azure<sup>®</sup> RTOS integration in the STM32Cube ecosystem ====
 
For currently public STM32 series (introduced up to 2020), Azure<sup>®</sup> RTOS integration is planned as a software STM32Cube Expansion Package enhanced for the STM32 Toolset (such as X-CUBE-AZRTOS-H7<ref>[https://www.st.com/en/product/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7]</ref> for the STM32H7 Series<ref> [https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html STM32H7 Series]</ref>). The expansion is built on STM32Cube software technology to make the portability across different STM32 microcontrollers easy and to allow the user to benefit from STM32CubeMX<ref name="STM32CubeMX" >[https://www.st.com/stm32cubemx STM32CubeMX]</ref> or STM32CubeIDE<ref name="STM32CubeIDE">[https://www.st.com/stm32cubeide STM32CubeIDE]</ref> software tools native features alongside the Azure<sup>®</sup> RTOS applications.
 
For currently public STM32 series (introduced up to 2020), Azure<sup>®</sup> RTOS integration is planned as a software STM32Cube Expansion Package enhanced for the STM32 Toolset (such as X-CUBE-AZRTOS-H7<ref>[https://www.st.com/en/product/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7]</ref> for the STM32H7 Series<ref> [https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html STM32H7 Series]</ref>). The expansion is built on STM32Cube software technology to make the portability across different STM32 microcontrollers easy and to allow the user to benefit from STM32CubeMX<ref name="STM32CubeMX" >[https://www.st.com/stm32cubemx STM32CubeMX]</ref> or STM32CubeIDE<ref name="STM32CubeIDE">[https://www.st.com/stm32cubeide STM32CubeIDE]</ref> software tools native features alongside the Azure<sup>®</sup> RTOS applications.
 
New STM32 series introduced starting from 2021 benefit from a direct integration of Azure<sup>®</sup> RTOS embedded software components within the matching STM32Cube MCU Package. For instance, for the STM32U5 Series, the matching STM32Cube MCU Package named STM32CubeU5 features Azure<sup>®</sup> RTOS directly.
 
New STM32 series introduced starting from 2021 benefit from a direct integration of Azure<sup>®</sup> RTOS embedded software components within the matching STM32Cube MCU Package. For instance, for the STM32U5 Series, the matching STM32Cube MCU Package named STM32CubeU5 features Azure<sup>®</sup> RTOS directly.
 
{{ReviewsComments | [[User:Ludovic Bergonzi|Ludovic Bergonzi]] ([[User talk:Ludovic Bergonzi|talk]]) 16:25, 5 October 2021 (CEST) <br /> Changed the sentence to indicate that STM32CubeU5 is indeed incorporating Azure RTOS MW. Please check that this was the thing to do --> Chekib : OK.}}
 
   
 
Once integrated within STM32Cube, whether in an STM32Cube Expansion or MCU Package, Azure<sup>®</sup> RTOS benefits from many additions done by STMicroelectronics:
 
Once integrated within STM32Cube, whether in an STM32Cube Expansion or MCU Package, Azure<sup>®</sup> RTOS benefits from many additions done by STMicroelectronics:
Line 63: Line 59:
   
 
As for all STM32Cube MCU and Expansion Packages, BSP configuration in STM32CubeMX<ref name="STM32CubeMX" /> is not supported for STM32 Azure<sup>®</sup> RTOS.
 
As for all STM32Cube MCU and Expansion Packages, BSP configuration in STM32CubeMX<ref name="STM32CubeMX" /> is not supported for STM32 Azure<sup>®</sup> RTOS.
 
   
 
==== Azure<sup>®</sup> RTOS License ====
 
==== Azure<sup>®</sup> RTOS License ====
Line 110: Line 105:
   
 
Depending on the STM32 series used:
 
Depending on the STM32 series used:
* For currently public STM32 series (introduced up to 2020), you can find the link to the matching X-CUBE-AZRTOS-XX within this section <ref name="CubeMCUoffer" >[https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer#x-cube-expansion-softwares x-cube-expansion-software section]</ref>.  
+
* For currently public STM32 series (introduced up to 2020), you can find the link to the matching X-CUBE-AZRTOS-XX within x-cube-expansion-software section <ref name="CubeMCUoffer" >[https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer#x-cube-expansion-softwares x-cube-expansion-software section]</ref>.  
{{ReviewsComments | [[User:Ludovic Bergonzi|Ludovic Bergonzi]] ([[User talk:Ludovic Bergonzi|talk]]) 11:20, 6 October 2021 (CEST) <br /> Consider using "x-cube-expansion-software section" for the visible name of the reference (no plural to software) --> Chekib: Fixed}}
+
* For new STM32 series introduced starting from 2021, you can find the link to the matching STM32CubeXX repository within x-cube-expansion-software section<ref name="CubeMCUoffer"  /> .
* For new STM32 series introduced starting from 2021, you can find the link to the matching STM32CubeXX repository within this section <ref name="CubeMCUoffer"  /> .
 
   
 
Example: GitHub Azure<sup>®</sup> RTOS Expansion Package for the STM32H7 Series.<ref>[https://github.com/STMicroelectronics/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7 on GitHub]</ref>
 
Example: GitHub Azure<sup>®</sup> RTOS Expansion Package for the STM32H7 Series.<ref>[https://github.com/STMicroelectronics/x-cube-azrtos-h7 X-CUBE-AZRTOS-H7 on GitHub]</ref>
   
 
==== How to use Azure<sup>®</sup> RTOS package? ====
 
==== How to use Azure<sup>®</sup> RTOS package? ====
A training video is available [https://youtu.be/OPVhsJfZA5A here] to show in details how to setup and use the Azure<sup>®</sup> RTOS STM32Cube Packages.  Check STMicroelectronics website for more videos <ref name="STMicroelectronics website" />
+
A training video is available<ref>[https://youtu.be/OPVhsJfZA5A Training video]</ref> to show in details how to setup and use the Azure<sup>®</sup> RTOS STM32Cube Packages.  Check STMicroelectronics website for more videos <ref name="STMicroelectronics website" />
   
 
==== Azure<sup>®</sup> RTOS applications ====
 
==== Azure<sup>®</sup> RTOS applications ====
Line 224: Line 218:
   
 
* '''Q''': When I download/use the STM32 Azure<sup>®</sup> RTOS package provided on GitHub, does it contain the STM32CubeMX<ref name="STM32CubeMX" /> generation projects ?
 
* '''Q''': When I download/use the STM32 Azure<sup>®</sup> RTOS package provided on GitHub, does it contain the STM32CubeMX<ref name="STM32CubeMX" /> generation projects ?
* '''A''':  No, STM32CubeMX generation projects are available only when package is downloaded from  STMicroelectronics website<ref name="STMicroelectronics website" / > or on STM32CubeMX interface.<br>
+
* '''A''':  No, STM32CubeMX generation projects are available only when package is downloaded from  STMicroelectronics website<ref name="STMicroelectronics website"/> or on STM32CubeMX interface.<br>
   
 
* '''Q''': Which boards are supported by the Azure<sup>®</sup> RTOS package provided by STMicroelectronics ?
 
* '''Q''': Which boards are supported by the Azure<sup>®</sup> RTOS package provided by STMicroelectronics ?
Line 248: Line 242:
   
 
* '''Q''': How can I find online trainings to help me to use Azure<sup>®</sup> RTOS MW ?
 
* '''Q''': How can I find online trainings to help me to use Azure<sup>®</sup> RTOS MW ?
* '''A''':  STMicroelectronics provides online training sessions and video. Visit  STMicroelectronics website<ref name="STMicroelectronics website" > for more details.<br>
+
* '''A''':  STMicroelectronics provides online training sessions and video. Visit  STMicroelectronics website<ref name="STMicroelectronics website" /> for more details.<br>
   
 
* '''Q''': Where can I find performance and footprint information relative to Azure<sup>®</sup> RTOS MW ?
 
* '''Q''': Where can I find performance and footprint information relative to Azure<sup>®</sup> RTOS MW ?
Line 264: Line 258:
   
 
* '''Q''': Where is it possible to find the list of Security vulnerabilities related to Azure<sup>®</sup> RTOS MW?{{ReviewsComments |  
 
* '''Q''': Where is it possible to find the list of Security vulnerabilities related to Azure<sup>®</sup> RTOS MW?{{ReviewsComments |  
* '''A''': Any Security Vulnerability related to Azure<sup>®</sup> RTOS is logged in [https://msrc.microsoft.com/update-guide/vulnerability Microsoft Security Response Center page]. <br>
+
* '''A''': Any Security Vulnerability related to Azure<sup>®</sup> RTOS is logged in Microsoft Security Response Center page<ref>[https://msrc.microsoft.com/update-guide/vulnerability Microsoft Security Response Center page]</ref>.
   
 
==References==
 
==References==