Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free. Learn more →
Top 23 C Embedded System Projects
-
Project mention: The Most Popular Open Source IoT Operating System from China | news.ycombinator.com | 2022-11-14
There's a bunch of documentation (in english) at https://github.com/RT-Thread/rt-thread/blob/master/documenta...
One thing that stands out is that one of the selling points would be the inclusion of middleware etc.
Internet of Things related software packages:
-
Project mention: Curious to see if everyone pays full price for sonos products or are there ways to get discounts? Would appreciate any guidance to save $s. | reddit.com/r/sonos | 2023-02-03
If you’re interested, you might be able to get Airplay 1 & 2 support by running shairport-sync on your pi.
-
InfluxDB
Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
-
Project mention: I need some help, I want to "rotate" the screen by 180 degrees. I am just printing some simple data on the screen for my modified nerf gun. Any advice on how to do it? | reddit.com/r/arduino | 2022-12-28
Use u8g2, awesome library, very flexible, works with everything.
-
printf
Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
Project mention: Nolibc: A minimal C-library replacement shipped with the kernel | news.ycombinator.com | 2023-01-22Seems unlikely. My spot check of the the two vfprintf implementations shows no flow from one to the other, and shows that part of the Cosmopolitan code has an older lineage than nolibc.
The nolibc source has many reference to copyright held by "Willy Tarreau", under LGPL-2.1 OR MIT license, with a copyright date starting in 2017.
The string "Tarreau" does not exist in the Cosmopolitan library, so that's a strong negative there. Let's look closer.
The file organization is quite different. And so is the implementation. So that's another negative.
Compare the vfprintf in nolibc at https://elixir.bootlin.com/linux/v6.2-rc4/source/tools/inclu... (a 'minimal vfprintf()') with the one in cosmopolitan starting at https://github.com/jart/cosmopolitan/blob/master/libc/stdio/....
Right away we can see nolibc places many functions in the same file while Cosmopolitan uses a one-function-per-filename organization.
Cosmopolitan's fvprintf locks the file (which nolibc doesn't need to do) then calls vfprintf_unlocked which calls __fmt at https://github.com/jart/cosmopolitan/blob/master/libc/fmt/fm... , which is the actual implementation. It look very different from NOLIBC's.
Okay, so perhaps that's they way now but not at the beginning?
We can also go back to Cosmopolitan's original implementation and see how vfprintf goes through https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... to call "palandprintf", which https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... says is copyright "Marco Paland" from 2014-2019.
That's a few years older than the start of nolibc, available from https://github.com/mpaland/printf , and part of https://github.com/embeddedartistry/libc , a "libc targeted for embedded systems usage".
Thus, multiple factors seem to agree that nolibc code is not used in the Cosmopolitan library.
-
Project mention: Tilck – A Tiny Linux-Compatible Kernel | reddit.com/r/patient_hackernews | 2023-01-08
-
I don't know if it's the best place to post that but on the meson subreddit there is not much people. I want to include the library INIH (which use meson too) to my project but I don't know how.
-
wolfssl
The wolfSSL library is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Or something a bit more lightweight - https://github.com/wolfSSL/wolfssl
-
SonarQube
Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
-
Project mention: Xilinx HLS AXI4-Lite registers don't update right away | reddit.com/r/FPGA | 2022-08-15
Here is the top level function. It is a modified version of the convolution HLS provided in one of Xilinx's Vitis tutorials. I've run into a similar problem for other HLS IP where the AXI4-Lite registers don't update right away. ``` void Filter2DKernel( const float coeffs[MAX_COEFFS], float factor, short bias, unsigned short width, unsigned short height, unsigned short stride, hls::stream &input_stream, hls::stream &output_stream) {
-
xboot
The extensible bootloader for embedded system with application engine, write once, run everywhere.
-
MuditaOS
Mobile operating system based on FreeRTOS™ optimized for E Ink displays - developed for Mudita Pure minimalist phone
Maybe the MuditaOS for the Mudita Pure phone based on FreeRTOS is free (GPL) succesor ?
-
libhydrogen
A lightweight, secure, easy-to-use crypto library suitable for constrained environments.
Project mention: libsodium-wrappers on a Raspberry Pi Zero W | reddit.com/r/raspberry_pi | 2022-04-22See if you can use this library instead of libsodium, as it'll probably work on your raspi zero: https://github.com/jedisct1/libhydrogen (Node bindings: https://github.com/trampi/node-libhydrogen-binding)
-
luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.
After much research and experimentation, Ada discovered Luos. Luos is a framework for building and managing microservices on embedded devices. It provides a set of tools and libraries that make it easy to develop, deploy, and manage microservices on embedded systems. Ada was thrilled with Luos and knew that it was the perfect solution for her client's project.
-
libc
libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup. (by embeddedartistry)
Project mention: Nolibc: A minimal C-library replacement shipped with the kernel | news.ycombinator.com | 2023-01-22Seems unlikely. My spot check of the the two vfprintf implementations shows no flow from one to the other, and shows that part of the Cosmopolitan code has an older lineage than nolibc.
The nolibc source has many reference to copyright held by "Willy Tarreau", under LGPL-2.1 OR MIT license, with a copyright date starting in 2017.
The string "Tarreau" does not exist in the Cosmopolitan library, so that's a strong negative there. Let's look closer.
The file organization is quite different. And so is the implementation. So that's another negative.
Compare the vfprintf in nolibc at https://elixir.bootlin.com/linux/v6.2-rc4/source/tools/inclu... (a 'minimal vfprintf()') with the one in cosmopolitan starting at https://github.com/jart/cosmopolitan/blob/master/libc/stdio/....
Right away we can see nolibc places many functions in the same file while Cosmopolitan uses a one-function-per-filename organization.
Cosmopolitan's fvprintf locks the file (which nolibc doesn't need to do) then calls vfprintf_unlocked which calls __fmt at https://github.com/jart/cosmopolitan/blob/master/libc/fmt/fm... , which is the actual implementation. It look very different from NOLIBC's.
Okay, so perhaps that's they way now but not at the beginning?
We can also go back to Cosmopolitan's original implementation and see how vfprintf goes through https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... to call "palandprintf", which https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... says is copyright "Marco Paland" from 2014-2019.
That's a few years older than the start of nolibc, available from https://github.com/mpaland/printf , and part of https://github.com/embeddedartistry/libc , a "libc targeted for embedded systems usage".
Thus, multiple factors seem to agree that nolibc code is not used in the Cosmopolitan library.
-
Project mention: LwESP library for ESP8266 and ESP32 MCUs | reddit.com/r/microcontrollers | 2022-02-16
-
-
-
modern-embedded-programming-course
Companion repository to the "Modern Embedded Systems Programming" video course.
Project mention: STM32Cube IDE: how do you override the existing start-up code with a vector table defined in C code? | reddit.com/r/microcontrollers | 2022-11-13Hi, I'm following along in Miro Samek's embedded systems tutorial lesson #14 and hes using IAR Embedded Workbench and hes defining his own startup code in C. (see https://github.com/QuantumLeaps/modern-embedded-programming-course/blob/master/lesson-14/startup_tm4c.c)
-
printf
Tiny, fast(ish), self-contained and fully loaded printf, sprinf etc. implementation, mainly for embedded systems. (by eyalroz)
Project mention: What is the most efficient way to create an ASCII string from multiple types? | reddit.com/r/embedded | 2022-12-29Take a look at an embedded focused sprintf like this one and measure: https://github.com/eyalroz/printf
-
totalcross
TotalCross is a Software Development Kit that helps cross platform application development. Currently supported platforms are: Windows, Wince, Android, iOS, Linux and Linux ARM for embedded systems.
I have this cross platform project named TotalCross that builds for Windows, WinCE (both using VS2008), Android, iOS, Linux (x64 and ARM) that used to have a separate build system for each platform.
-
Project mention: My Descent 1 setup with modern trims | reddit.com/r/retrobattlestations | 2023-01-06
The USB4VC is a RPi based project allowing you to send modern mouse, keyboard and joystick signals to a vintage computer. In this case, a wireless bluetooth Playstation 4 gamepad is used. More info on its github: https://github.com/dekuNukem/USB4VC
-
QuarkTS
An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.
Project mention: Looking for a non-preemptive (cooperative) multi-tasking library in C. | reddit.com/r/embedded | 2022-07-10 -
Project mention: DeckMTP, a decky plugin for transfering files via USB | reddit.com/r/SteamDeck | 2023-02-02
You might also notice that there's no SD card mount in the config. That's because it's added during runtime, since uMTP-Responder supports it. They show example usage on their github, and I show example usage of that in my start script, where it detects the SD card. The runtime way is temporary, though, and it disappears when it restarts.
-
qtools
QTools collection of open source tools for embedded systems development on Windows, Linux and MacOS
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C Embedded Systems related posts
- Hailer: C-library for inter-process/inter-node messaging in a network
- Nolibc: A minimal C-library replacement shipped with the kernel
- Looking for a GitHub repo which contains unit tests
- Software For Embedded Programming.
- Embedded microservices and Luos: a love story
- Looking for modern CMake tutorials or good open spurce examples
- ChatGPT: The Ultimate Tool for Solving Code Issues
-
A note from our sponsor - SonarQube
www.sonarqube.org | 4 Feb 2023
Index
What are some of the best open-source Embedded System projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | rt-thread | 7,906 |
2 | shairport-sync | 6,024 |
3 | u8g2 | 3,629 |
4 | printf | 1,960 |
5 | tilck | 1,945 |
6 | inih | 1,908 |
7 | wolfssl | 1,822 |
8 | Vitis-Tutorials | 740 |
9 | xboot | 668 |
10 | MuditaOS | 483 |
11 | libhydrogen | 466 |
12 | luos_engine | 428 |
13 | libc | 369 |
14 | lwesp | 354 |
15 | fwup | 344 |
16 | hummingbird | 228 |
17 | modern-embedded-programming-course | 226 |
18 | printf | 209 |
19 | totalcross | 200 |
20 | USB4VC | 140 |
21 | QuarkTS | 135 |
22 | uMTP-Responder | 125 |
23 | qtools | 99 |