Release Notes for X-CUBE-AZRTOS-WB

Copyright © 2022 STMicroelectronics

Purpose

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.

X-CUBE-AZRTOS-WB (Azure RTOS Software Expansion for STM32Cube) provides a full integration of Microsoft Azure RTOS in the STM32Cube environment for the STM32WB series of microcontrollers. Ready-to-run applicative examples are also provided for the P-NUCLEO-WB55.Nucleo and STM32WB5MM-DK evaluation boards, thus reducing the learning curve and ensuring a smooth application development experience with Azure RTOS and STM32WB MCUs.

The scope of this package covers the following Azure RTOS middleware: RTOS (ThreadX), USB Device (USBX), File System including NOR/NAND memories support (FileX and LevelX) and Networking (NetXDuo).

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

Repository structure

The STMicroelectronics X-CUBE-AZRTOS-WB repository consists of the following repositories:

Documentation

More comprehensive documentation is available on STM32 MCU Wiki.

Update history

Main changes

  • Maintenance release of X-CUBE-AZRTOS-WB package
  • Azure RTOS update to V6.2.0.
  • Add Azure RTOS MW initialization support to ThreadX, FileX/LevelX and USBX
    • The Azure RTOS MW integration in STM32CubeMX generates stacks initialization before starting applicative code.​
  • Add Standalone mode support to FileX/LevelX and USBX
  • Add 2 new ThreadX Applications:
    • Tx_Thread_MsgQueue
    • Tx_Thread_Sync
  • General updates to fix known defects and implement enhancements:
    • STM32CubeMX configuration files (PDSC/IPmode/IPconfig):
      • Remove some unused NetXDuo config flags.
      • Add Azure RTOS MW initialization support to ThreadX, FileX/LevelX and USBX
      • Add Standalone support to FileX/LevelX and USBX
      • Add new USBX classes: MTP, RNDIS, CCID, PRINTER, VIDEO and CustomHID
    • Fx_SRAM_File_Edit_Standalone application generated using STM32CubeMX.
    • All Azure RTOS applications files regenerated using STM32CubeMX V6.8.0 and new Azure RTOS pack 2.0.0.

Contents

Applications

Provides ready-to-run applicative examples for Azure RTOS on the supported boards. For detailed list refer to applications list

Drivers

Name Version Release note
Cortex-M CMSIS v5.6.0_cm4 release notes
STM32WBxx CMSIS v1.12.0 release notes
STM32WBxx HAL v1.13.0 release notes
BSP P-NUCLEO-WB55.Nucleo v1.0.6 release notes
BSP NUCLEO-WB15CC v1.0.3 release notes
BSP P-NUCLEO-WB55.USBDongle v1.0.5 release notes
BSP STM32WB5MM-DK v1.0.4 release notes
BSP Common v7.2.1 release notes
BSP ssd1315 v2.0.1 release notes
BSP s25fl128s v1.0.2 release notes
BSP stts22h v1.3.0 release notes
BSP ism330dhcx v1.2.1 release notes
BSP stm32wb_at v1.0.12 release notes

Middlewares

Name Version Release note
ThreadX 6.2.0 release notes
NetXDuo 6.2.0 release notes
USBX 6.2.0 release notes
FileX 6.2.0 release notes
LevelX 6.2.0 release notes

CMSIS-RTOS wrapper for Azure RTOS ThreadX

Name Version Release note
cmsis_rtos_threadx 1.2.0 release notes
CMSIS-RTOS API group Supported Short Description
Kernel Information and Control Y It provides version/system information and starts/controls the RTOS Kernel. More…
Thread Management Y It defines, create, and control thread functions.. More…
Thread Flags N It synchronizes threads using flags. More…
Event Flags Y It synchronizes threads using flags. More…
Generic Wait Functions Y It waits for a certain period of time.. More…
Timer Management Y It creates and controls timer and timer callback functions. More…
Mutex Management Y It synchronizes resource access using Mutual Exclusion (Mutex). More…
Semaphores Y It access shared resources simultaneously from different threads. More…
Memory Pool Y It manages thread-safe fixed-size blocks of dynamic memory. More…
Message Queue Y It exchanges messages between threads in a FIFO-like operation. More…

The CMSIS-RTOS provides generic RTOS interfaces for Arm® Cortex® processor-based devices. It provides a standardized API for software components that require RTOS functionality.

For more information about CMSIS-RTOS API V2, please refer to the ARM manual: CMSIS-RTOS API

For more information about CMSIS-RTOS wrapper for Azure RTOS ThreadX, please refer to readme

Known limitations

  • USBX composite device descriptors
    • A maximum of 3 different class drivers can be selected (restriction due to limited EP numbers)
    • A list of USB device Applications supporting auto generation of USB Device framework descriptors provided for these USB class drivers :MSC, HID mouse, CDC ACM, CDC ECM, DFU, MTP, RNDIS, CCID, PRINTER, VIDEO and CustomHID. For the other device class drivers, user needs first to disable the device framework builder (refer to : USBX wiki section 2.2 How to customize) and provide the full set of required device descriptors.
  • When using the Pack in STM32CubeMX
    • FileX/LevelX: multi instance is not supported, a low level interface driver can be instantiated only once
    • USB multi instance is not supported, a class drivers can be instantiated only once
    • The component “USBX/CoreSystem” must be selected alongside either “USBX/UX Host CoreStack” or “USBX/UX Device CoreStack”
    • When developing large NetXDuo-based applications on boards with reduced Flash and RAM sizes, such as the STM32WB15, memory allocation errors can occur.
    • X-CUBE-AZRTOS-WB is no longer compatible with the MDK-ARM AC5 compiler: when generating a project for the MDK-ARM toolchain, the AC6 compiler is used by default
  • ThreadX
    • The Tx_MPU application may show instabilities when the ThreadX module (Tx_Module) project is compiled without optimization with STM32CubeIDE debug mode.

Development toolchains and compilers

  • IAR Embedded Workbench for ARM (EWARM)toolchain 9.20.1 + ST-LINKV3.
  • STM32CubeIDE V1.12.0 + ST-LINKV3
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.37 + ST-LINKV3

Supported devices and boards by Applications

Dependencies

This software release is compatible with:

  • STM32CubeMX V6.8.0
  • STM32PackCreator 3.5.0

Main changes

  • Maintenance release of X-CUBE-AZRTOS-WB package
  • Azure RTOS update to V6.1.12
  • Add Azure RTOS STM32CubeMX configuration files (*ioc, PDSC, IPModes/IPConfigs and ftl files)
  • All Azure RTOS applications files regenerated using STM32CubeMX V6.7.0 and new Azure RTOS pack v1.1.0

Contents

Applications

Provides ready-to-run applicative examples for Azure RTOS on the supported boards. For detailed list refer to applications list

Drivers

Name Version Release note
Cortex-M CMSIS v5.6.0_cm4 release notes
STM32WBxx CMSIS v1.12.0 release notes
STM32WBxx HAL v1.12.0 release notes
BSP P-NUCLEO-WB55.Nucleo v1.0.5 release notes
BSP NUCLEO-WB15CC v1.0.2 release notes
BSP P-NUCLEO-WB55.USBDongle v1.0.4 release notes
BSP STM32WB5MM-DK v1.0.3 release notes
BSP Common v7.2.1 release notes
BSP ssd1315 v2.0.1 release notes
BSP s25fl128s v1.0.2 release notes
BSP stts22h v1.3.0 release notes
BSP ism330dhcx v1.2.1 release notes
BSP stm32wb_at v1.0.12 release notes

Middlewares

Name Version Release note
ThreadX 6.1.12 release notes
NetXDuo 6.1.12 release notes
USBX 6.1.12 release notes
FileX 6.1.12 release notes
LevelX 6.1.12 release notes

CMSIS-RTOS wrapper for Azure RTOS ThreadX

Name Version Release note
cmsis_rtos_threadx 1.1.0 release notes
CMSIS-RTOS API group Supported Short Description
Kernel Information and Control Y It provides version/system information and starts/controls the RTOS Kernel. More…
Thread Management Y It defines, create, and control thread functions.. More…
Thread Flags N It synchronizes threads using flags. More…
Event Flags Y It synchronizes threads using flags. More…
Generic Wait Functions Y It waits for a certain period of time.. More…
Timer Management Y It creates and controls timer and timer callback functions. More…
Mutex Management Y It synchronizes resource access using Mutual Exclusion (Mutex). More…
Semaphores Y It access shared resources simultaneously from different threads. More…
Memory Pool N It manages thread-safe fixed-size blocks of dynamic memory. More…
Message Queue Y It exchanges messages between threads in a FIFO-like operation. More…

The CMSIS-RTOS provides generic RTOS interfaces for Arm® Cortex® processor-based devices. It provides a standardized API for software components that require RTOS functionality.

For more information about CMSIS-RTOS API V2, please refer to the ARM manual: CMSIS-RTOS API

For more information about CMSIS-RTOS wrapper for Azure RTOS ThreadX, please refer to readme

Known limitations

  • STM32CubeMX configuration files (PDSC/IPmode/IPconfig)
    • Some component inter-dependencies are missing and they will be added in future release
    • Some configuration parameters inter-dependencies are missing and they will be added in future release
    • Some configuration parameters minimum/maximum values are to be updated in the future release
  • USBX composite device descriptors
    • A list of USB device Applications supporting auto generation of USB Device framework descriptors provided for these USB class drivers :MSC, HID mouse, CDC ACM, CDC ECM, DFU. For the other device class drivers, user needs first to disable the device framework builder (refer to : USBX wiki section 2.2 How to customize) and provide the full set of required device descriptors.
  • When using the Pack in STM32CubeMX
    • FileX/LevelX: multi instance is not supported, a low level interface driver can be instanced only once
    • USB multi instance is not supported, a class driver can be instanced only once
    • The component “USBX/CoreSystem” must be selected alongside “USBX/UX Device CoreStack”
    • When enabling “LevelX QuadSPI memory interface” component, the STM32CubeMX “Project Manager –> Advanced settings” respective to MX_QUADSPI_Init() should be tuned as following :
      • “Do Not Generate function call” –> checked
      • “Visibility Static” –> unchecked
    • The FileX and USBX standalone modes are not yet supported
    • X-CUBE-AZRTOS-WB is not compatible with the MDK-ARM AC5 compiler: when generating a project for the MDK-ARM toolchain, the AC6 compiler is used by default

Development toolchains and compilers

  • IAR Embedded Workbench for ARM (EWARM)toolchain 8.50.9 + ST-LINKV3.
  • STM32CubeIDE V1.11.0 + ST-LINKV3
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.37 + ST-LINKV3

Supported devices and boards by Applications

Dependencies

This software release is compatible with:

  • STM32CubeMX V6.7.0
  • STM32PackCreator 3.4.0

Main changes

  • First official release of STM32Cube Azure RTOS software expansion for STM32WB MCU series.

Contents

Applications

Provides ready-to-run applicative examples for Azure RTOS on the supported boards. For detailed list refer to applications list

Drivers

Name Version Release note
Cortex-M CMSIS v5.6.0_cm4 release notes
STM32WBxx CMSIS v1.10.0 release notes
STM32WBxx HAL v1.10.0 release notes
BSP P-NUCLEO-WB55.Nucleo v1.0.4 release notes
BSP NUCLEO-WB15CC v1.0.2 release notes
BSP P-NUCLEO-WB55.USBDongle v1.0.4 release notes
BSP STM32WB5MM-DK v1.0.2 release notes
BSP Common v7.0.0 release notes
BSP ssd1315 v2.0.0 release notes
BSP s25fl128s v1.0.2 release notes
BSP stts22h v1.1.1 release notes
BSP ism330dhcx v1.0.2 release notes
BSP stm32wb_at v1.0.9 release notes

Middlewares

Name Version Release note
ThreadX 6.1.9 release notes
NetXDuo 6.1.9 release notes
USBX 6.1.9 release notes
FileX 6.1.8 release notes
LevelX 6.1.9 release notes

CMSIS-RTOS wrapper for Azure RTOS ThreadX

Name Version Release note
cmsis_rtos_threadx 1.0.4 release notes
CMSIS-RTOS API group Supported Short Description
Kernel Information and Control Y It provides version/system information and starts/controls the RTOS Kernel. More…
Thread Management Y It defines, create, and control thread functions.. More…
Thread Flags N It synchronizes threads using flags. More…
Event Flags Y It synchronizes threads using flags. More…
Generic Wait Functions Y It waits for a certain period of time.. More…
Timer Management Y It creates and controls timer and timer callback functions. More…
Mutex Management Y It synchronizes resource access using Mutual Exclusion (Mutex). More…
Semaphores Y It access shared resources simultaneously from different threads. More…
Memory Pool N It manages thread-safe fixed-size blocks of dynamic memory. More…
Message Queue Y It exchanges messages between threads in a FIFO-like operation. More…

The CMSIS-RTOS provides generic RTOS interfaces for Arm® Cortex® processor-based devices. It provides a standardized API for software components that require RTOS functionality.

For more information about CMSIS-RTOS API V2, please refer to the ARM manual: CMSIS-RTOS API

For more information about CMSIS-RTOS wrapper for Azure RTOS ThreadX, please refer to readme

Known limitations

  • ThreadX
    • The Tx_MPU application may show instabilities when the ThreadX module (Tx_Module) project is compiled without optimization

Development toolchains and compilers

  • IAR Embedded Workbench for ARM (EWARM)toolchain 8.50.6 + ST-LINKV3.
  • STM32CubeIDE V1.7.0 + ST-LINKV3
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.32 + ST-LINKV3

Supported devices and boards by Applications

Dependencies

None