2025-03-08 8:57 PM
I'm starting a project on the STM32U5G9, and one feature we want is USB connectivity, just a simple virtual COM port (CDC class). Looking at the Middleware picker in CubeMX, the only USB-related items are USBPD (don't need Power Delivery at the moment), and USBX, which is the ThreadX/Azure RTOS USB stack. If I look for CubeMX examples for the STM32U5G9J-DK2, the only USB examples offered are for ThreadX and USBX.
Is it reasonable to assume that if I don't want to be writing my USB application from scratch on the STM32U5, I should be using ThreadX/Azure RTOS instead of FreeRTOS?
Dana M.
2025-03-09 12:00 AM
ST offers for STM32U5 so called "classic USB middleware": https://github.com/STMicroelectronics/stm32u5-classic-coremw-apps
2025-03-09 1:17 AM
We used FreeRtos for many year, but with poor results in term of portability, re-use and reliability.
Since we moved to AZRTOS, we are several order of magnitude more stable and our libraries are fully re-usable.
Spend some time and have a look to AZRTOS, I am sure you will be happy of this effort.
We use as main platform, H7 devices, and we use USB for many task with great reliability and good performances.
2025-03-09 3:39 PM
Pavel,
Hmm, this indicates to me that, on the STM32U5 at least, FreeRTOS USB support is a "second class citizen". The fact they're calling it "classic" suggests that what they provide (USBX + ThreadX) in their standard tools is considered "modern", and "classic" is another word for "legacy". Since we don't have prior experience with ST's "classic" USB firmware, it probably makes sense to adopt what ST currently offers in their mainline tools. Thanks.
Dana M.