06cb10f01 Fix typo in NetXDuo Crypto 996dd14fc BSD functions overriding option 3b756c219 Fix mqtt interoperability issue when upgrade to ubuntu 20.04 01ca51021 Added support for skipping failed step 3e3a15e79 Add record length checking in nxe_secure_tls_session_send. ec617d178 Fix demo_netx_secure_tls test link issue under nightly build a934cb718 Fix pipeline libgcc issue in nx_secure_interoperability test f08024578 Fix illegal access when NXD_MQTT_OVER_WEBSOCKET enabled 9798e2b89 Corrected the mDNS symbols check 456007dd1 Fixed multiple proxy update issue cf0bf15b5 Add TLS sample demo_netx_secure_tls.c. 87ea505bf Add sha256 in driver preprocess command for ADU 7e1b9686a Add pnp check for ADU ef78d336d Improved the code to ignore null file url.
Azure RTOS NetX
A high-performance implementation of TCP/IP protocol standards, Azure RTOS NetX is fully integrated with Azure RTOS ThreadX and available for all supported processors. It has a unique piconet architecture. Combined with a zero-copy API, it makes it a perfect fit for today’s deeply embedded applications that require network connectivity.
Documentation
Documentation for this library can be found here: http://docs.microsoft.com/azure/rtos/netx
Understanding inter-component dependencies
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.
Building and using the library
Prerequisites
Install the following tools:
- CMake version 3.0 or later
- GCC compilers for arm-none-eabi
- Ninja
Cloning the repo
$ git clone https://github.com/azure-rtos/netx.git
Building as a static library
Each component of Azure RTOS comes with a composible 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()
.
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.
$ cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake -GNinja .
$ cmake --build ./build
NOTE: You will have to take the dependency graph above into account when building anything other than threadx itself.
Repository Structure and Usage
Branches & Releases
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.
When you see xx-xx-xxxx, 6.x or x.x in function header, this means the file is not officially released yet. They will be updated in the next release. See example below.
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _tx_initialize_low_level Cortex-M23/GNU */
/* 6.x */
/* AUTHOR */
/* */
/* Scott Larson, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function is responsible for any low-level processor */
/* initialization, including setting up interrupt vectors, setting */
/* up a periodic timer interrupt source, saving the system stack */
/* pointer for use in ISR processing later, and finding the first */
/* available RAM memory address for tx_application_define. */
/* */
/* INPUT */
/* */
/* None */
/* */
/* OUTPUT */
/* */
/* None */
/* */
/* CALLS */
/* */
/* None */
/* */
/* CALLED BY */
/* */
/* _tx_initialize_kernel_enter ThreadX entry function */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 09-30-2020 Scott Larson Initial Version 6.1 */
/* xx-xx-xxxx Scott Larson Include tx_user.h, */
/* resulting in version 6.x */
/* */
/**************************************************************************/
Releases
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
.
Directory layout
- addons
- auto_ip, BSD, dhcp, dns, ftp, http, mdns, mqtt, nat, pop3, ppp, pppoe, smtp, sntp, telnet, tftp, web
- cmake
- common
- inc
- src
- ports
- cortex_m0/gnu
- inc
- src
- cortex_m3/gnu
- inc
- src
- cortex_m4/gnu
- inc
- src
- cortex_m7/gnu
- inc
- src
- samples
Security
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.
Licensing
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.
Contribution, feedback, issues, and professional support
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.
For basic support, click Issues in the command bar or post a question to Stack Overflow using the threadx
and azure-rtos
tags.
Professional support plans (https://azure.microsoft.com/en-us/support/options/) are available from Microsoft.
Additional Resources
The following are references to additional Azure RTOS and Azure IoT in general:
Content | Link |
---|---|
TraceX Installer | https://aka.ms/azrtos-tracex-installer |
Azure RTOS Documentation and Guides: | https://docs.microsoft.com/azure/rtos |
Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
Azure RTOS Sales Questions: | https://aka.ms/azrtos-license |
Azure RTOS Product Support Policy | https://aka.ms/azrtos/lts |
Azure RTOS Functional Safety Artifacts | https://aka.ms/azrtos/tuv |
For technical questions check out Microsoft Q/A for Azure IoT | https://aka.ms/QnA/azure-rtos |
Internet of Things Show for latest announcements and online training | https://aka.ms/iotshow |
IoT Tech Community | https://aka.ms/community/azure-rtos |