Перейти до основного вмісту

Middlewares

Central entry point for the middleware modules (RTOS, filesystems, networking, GUI and display libraries, ...) used across our embedded projects. Every module is a git submodule of this repository, so one clone gives access to all of them while each module keeps its own history and versions.

The submodule list is maintained automatically by RootRepo_Generator.sh in Middlewares_Handler. Don't add or move module submodules by hand. Hand edits are not reverted, but a module the generator manages is always re-pinned to its own target.


Where the modules come from​

upstream GitHub (eclipse-threadx, FreeRTOS, olikraus, ...)
│ *_AzureImport.sh - one commit per upstream version
▼
Azure DevOps Middlewares/<Module> (master, internal staging)
│ Release.sh - one vX.Y.Z tag + GitHub Release per version
▼
GitHub Embedbits/Middlewares-<Module> (public, released versions only)

This repository exists on both sides, with the same layout (one submodule per module, at path <Module>/):

RemoteSubmodule URLSubmodule pinned to
Azure DevOps Middlewares/Middlewares../<Module> (relative)latest commit of the module's master
GitHub Embedbits/Middlewareshttps://github.com/Embedbits/Middlewares-<Module>.githighest vX.Y.Z release of the module

On GitHub, .gitmodules also defines which modules are public: Release.sh publishes exactly the modules listed there.


Usage​

Clone without fetching any module, then initialize only the modules you need:

git clone <root repository url> Middlewares
git -C Middlewares submodule update --init --depth=1 ThreadX

Or vendor a single module directly in your project:

git submodule add https://github.com/Embedbits/Middlewares-ThreadX.git Middlewares/ThreadX

Each module's own README.md describes how to build against it. In short, every module has a root CMakeLists.txt that you add_subdirectory() and then link its library target.


License​

This repository only aggregates references to the modules. Each module keeps the license of its upstream project.