Giter Site home page Giter Site logo

stmicroelectronics / x-cube-azrtos-f7 Goto Github PK

View Code? Open in Web Editor NEW
9.0 7.0 3.0 21 MB

X-CUBE-AZRTOS-F7 (Azure RTOS Software Expansion for STM32Cube) provides a full integration of Microsoft Azure RTOS in the STM32Cube environment for the STM32F7 series of microcontrollers.

Home Page: https://www.st.com/en/embedded-software/x-cube-azrtos-f7.html

License: Other

HTML 0.96% C 88.88% Assembly 8.43% CSS 0.21% CMake 0.26% PowerShell 0.33% JavaScript 0.01% Python 0.01% C++ 0.03% Batchfile 0.86% Makefile 0.01% Shell 0.01%
threadx stm32f7 stm32cube-mcu-component filex levelx azure-rtos x-cube netxduo usbx

x-cube-azrtos-f7's Introduction

X-CUBE-AZRTOS-F7 Azure RTOS Software Expansion for STM32Cube

latest tag

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-F7 (Azure RTOS Software Expansion for STM32Cube) provides a full integration of Microsoft Azure RTOS in the STM32Cube environment for the STM32F7 series of microcontrollers. Ready-to-run applicative examples are also provided for the STM32F767ZI-Nucleo, STM32F735G-DK, STM32F747I-DK and STM32F743I-EVAL evaluation boards, thus reducing the learning curve and ensuring a smooth application development experience with Azure RTOS and STM32F7 MCUs.

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

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

  • Integrated and full featured RTOS. Learn more ThreadX.
  • Industrial grade networking stack: optimized for performance coming with many IoT protocols. Learn more Netx Duo
  • Advanced FS/FTL: fully featured to support NAND/NOR Flash memories. Learn more FileX and LevelX
  • USB Host and Device stacks coming with multiple classes. Learn more USBX
  • Safety pre-certifications (from Microsoft): IEC 61508 SIL4, IEC 62304 Class C and ISO 26262 ASIL D
  • Security pre-certifications (from Microsoft): EAL4+ for TLS/DTLS, FIPS 140-2 for SW crypto lib
  • STM32 granted production license: here

Prerequisites

  • USBX, FileX and NetXDuo building require ThreadX as they are based on RTOS model.
  • USBX Host MSC requires FileX Middleware usage
  • USBX Device ECM/RNDIS classes require NetXDuo usage

One of the following toolchains:

  • IAR Embedded Workbench for ARM (EWARM) toolchain 8.50.9 + ST-LINKV2.
  • STM32CubeIDE V1.9.0 + ST-LINKV2
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.32 + ST-LINKV2

Supported Devices and Boards by applications

Repository structure

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

  • Drivers: contains STM32F7 CMSIS, HAL and BSP drivers
  • Middlewares: contains ThreadX, NetX Duo, FileX, LevelX and USBX stacks including porting on STM32 hardware
  • Projects: provides ready-to-run applicative examples for Azure RTOS on the supported boards. Projects are structured as follows:

Documentation

More comprehensive documentation is available on STM32 MCU Wiki.

License

Azure RTOS is distributed by Microsoft under GitHub and under Microsoft license. STMicroelectronics include Azure RTOS in selected STM32Cube software packages, whether delivered by Microsoft under GitHub, or by STMicroelectronics through STM32 CubeFW packages on www.st.com or GitHub, proprietary license terms are the same between Microsoft and User:

  • Source code is available
  • User is granted modification
  • User is granted redistribution of source (modified or not) and/or binary, provided he develops on an MCU/MPU that is listed officially by Microsoft
  • User is granted production, provided he develops on an MCU that is listed officially by Microsoft: Licensed Hardware
  • User is forbidden to reuse provided software to create a competing offer Whenever a new STM32 series includes support for Azure RTOS, it is added by Microsoft in the official list

By using STM32F7 Series you inherit the “Distribution and Production Use” rights in Section 2 of the Microsoft Software License Terms for Azure RTOS.

For more details about license information relative to each component in this package, please refer to LICENSE

Release note

Details about the content of this release are available in the release note here.

Applications

Middleware Applications Short Description
ThreadX Tx_Thread_Creation It demonstrates how to create and destroy multiple threads using Azure RTOS ThreadX APIs. In addition, it shows how to use preemption threshold between threads and change priorities on-fly. readme
ThreadX Tx_LowPower It demonstrates how to configure the LowPower feature of Azure RTOS ThreadX stack. In addition, it shows how to use ThreadX MACRO related to the LowPower feature. readme
ThreadX Tx_MPU It demonstrates how to load, start and unload modules. In addition, it shows how ThreadX memory protection on modules using the Memory Protection Unit (MPU). readme
USBX Ux_Host_MSC It demonstrates how to develop USB Host Mass Storage "MSC" able to enumerate and communicates with a removable usb flash disk. The application is designed to behave as an USB MSC Host able to operate with an USB flash disk using the Bulk Only Transfer (BOT) and Small Computer System Interface (SCSI) transparent commands combined with a file system AzureRTOS FileX. readme
USBX Ux_Host_HID It demonstrates how to develop USB Host Human Interface “HID” able to enumerate and communicate with a mouse or a keyboard. The application is designed to behave as an USB HID Host, the code provides required requests to properly enumerate HID devices , HID Class APIs to decode HID reports received from a mouse or a keyboard and display data on uart HyperTerminal. readme
USBX Ux_Device_CDC_ACM It demonstrates how to develop USB Device communication Class "CDC_ACM" based application. The application is designed to emulate an USB-to-UART bridge following the Virtual COM Port (VCP) implementation, the code provides all required device descriptors framework and associated Class descriptor report to build a compliant USB CDC_ACM device. readme.
USBX Ux_Device_HID It demonstrates how to develop USB Device Human Interface "HID" mouse based application. The application is designed to emulate an USB HID mouse device, the code provides all required device descriptors framework and associated Class descriptor report to build a compliant USB HID mouse device. readme
FileX Fx_uSD_File_Edit It demonstrates how to develop a basic SD card file operations application. The application is designed to handle SD card insertion/removal events, and depending on that state, it starts and stops file operations from and into the SD card. readme
FileX Fx_NoR_Write_Read_File It demonstrates how to create a Fat File system on the NOR flash using FileX alongside LevelX. The application is designed to execute file operations on the MX25LM51245G NOR flash device, the code provides all required software code for properly managing it. readme
FileX Fx_SRAM_File_Edit_Standalone It demonstrates how to create a Fat File system on the internal SRAM memory using FileX running in standalone mode without ThreadX. readme
NetXDuo Nx_TCP_Echo_Client It demonstrates how to develop a NetX TCP client to communicate with a remote sever using the NetX TCP socket API. readme
NetXDuo Nx_UDP_Echo_Server It demonstrates how to develop a NetX UDP server to communicate with a remote client using the NetX UDP socket API. readme
NetXDuo Nx_WebServer It demonstrates how to develop Web HTTP server based application. It is designed to load files and static web pages stored in SD card using a Web HTTP server, the code provides all required features to build a compliant Web HTTP Server. readme
NetXDuo Nx_Iperf It shows performance when using different modes : TCP_server, UDP_server, TCP_client and UDP_client. readme

Troubleshooting

Caution : The issues are strictly limited to submit problems or suggestions related to the software delivered in this repository.

For any other question related to the product, the hardware performance or characteristics, the tools, the environment, you can submit it to the ST Community on the STM32 MCUs related page.

x-cube-azrtos-f7's People

Contributors

aselstm avatar rkoustm avatar stmicroelectronics-github avatar tounstm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

x-cube-azrtos-f7's Issues

netxduo/common/drivers not included in CMake configuration

When using the netx library defined in Middlewares/ST/netxduo as part of another cmake based project, the application can not find the nx_stm32_eth_driver.h header file.

Please note the example in Projects/STM32F769I-Discover/Applications/NetXDuo/Nx_WebServer/ has an include file that includes the nx_stm32_eth_driver.h. The project builds fine in IDE, but unable to build with cmake.

./Projects/STM32F769I-Discovery/Applications/NetXDuo/Nx_WebServer/NetXDuo/App/app_netxduo.h

C:/Users/jerry.morrow/git/mcu_6800/examples/app/NetXDuo/App/app_netxduo.h:32:10: fatal error: nx_stm32_eth_driver.h: No such file or directory
   32 | #include "nx_stm32_eth_driver.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~

Unused parameter compiler warning

Describe the set-up

  • STM32F769I-Discovery board

Describe the bug (skip if none)

  • When building with GCC option warnings as errors, the following parameters are reported as not being used.

azrtos_xcube_f7-src/Middlewares/ST/usbx/common/usbx_stm32_device_controllers/ux_dcd_stm32_callback.c:803:52: error: unused parameter 'hpcd' [-Werror=unused-parameter]
[build] 803 | void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)

azrtos_xcube_f7-src/Middlewares/ST/usbx/common/usbx_stm32_device_controllers/ux_dcd_stm32_frame_number_get.c:77:52: error: unused parameter 'dcd_stm32' [-Werror=unused-parameter]
[build] 77 | UINT _ux_dcd_stm32_frame_number_get(UX_DCD_STM32 *dcd_stm32, ULONG *frame_number)

azrtos_xcube_f7-src/Middlewares/ST/usbx/common/usbx_stm32_device_controllers/ux_dcd_stm32_frame_number_get.c:77:70: error: unused parameter 'frame_number' [-Werror=unused-parameter]
[build] 77 | UINT _ux_dcd_stm32_frame_number_get(UX_DCD_STM32 *dcd_stm32, ULONG *frame_number)

Additional context

Easy fix by adding the usual (void)param_name;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.