Super-Simple-Tasker
nanoMODBUS
Our great sponsors
Super-Simple-Tasker | nanoMODBUS | |
---|---|---|
3 | 4 | |
130 | 191 | |
4.6% | - | |
4.8 | 7.2 | |
2 months ago | 3 days ago | |
C | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Super-Simple-Tasker
-
At what point would you consider using an RTOS?
Lately I have been working with interrupt driven task frameworks on ARM Cortex-M. Basically they are using the ARM NVIC as a task scheduler. Examples for C/C++ include this one: Super Simple Tasker. For Rust there is RTIC. Both are based on similar ideas of using NVIC as scheduling engine. Very efficient resource-wise but use a somewhat different programming paradigm than traditional RTOS threads.
-
Seeking Innovative Project Suggestions
Take a look at the open-source Super-Simple Tasker project on GitHub. This project implements a preemptive RTOS/scheduler in the hardware of the ARM Cortex-M. It is related to such concepts and projects as:
-
How to deal with fast control loops in a RTOS environment?
I agree with KenaDra that such a kernel would be ideal for fast control loops and hard real-time requirements, so the OP should definitely take a look. Specifically for STM32 (ARM Cortex-M), there are some hardware implementations of such kernels that take advantage of the NVIC. An example is the SST for ARM Cortex-M. This kernel will outperform any traditional RTOS kernel on Cortex-M.
nanoMODBUS
What are some alternatives?
lwesp - Lightweight and versatile AT parser library for ESP8266 and ESP32 devices.
Mongoose - Embedded Web Server
rulos - Ravenna Ultra-Low-Altitude Operating System: An embedded OS for AVR and ARM CPUs
libcurl - A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
crect - A C++, compile-time, reactive RTOS for the Stack Resource Policy based Real-Time For the Masses kernel
Proxygen - A collection of C++ HTTP libraries including an easy to use HTTP server.
PIF-Image-Format - Image format, tools & librares for limited embedded systems
libwebsockets - canonical libwebsockets.org networking library
qpcpp - QP/C++ Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
KCP - :zap: KCP - A Fast and Reliable ARQ Protocol
C++ REST SDK - The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
RakNet - RakNet is a cross platform, open source, C++ networking engine for game programmers.