For beginners, one of the most challenging aspects at the start of their learning journey is finding study materials. Therefore, today I recommend a repository that aggregates open source projects.
This article carefully compiles some embedded-related resources, including but not limited to programming languages, microcontrollers, open source projects, IoT, operating systems, Linux, and these materials are continually updated, aiming to create the most comprehensive embedded resource library on the internet.
1. Operating Systems
HarmonyOS: An open-source distributed operating system for all scenarios.
RT-Thread: A small and elegant IoT operating system.
TencentOS tiny: A real-time operating system developed for the IoT field.
FreeRTOS: A lightweight operating system.
µC/OS: A fully functional embedded operating system.
mbed-os: A complete software solution developed by ARM, focused on IoT.
BabyOS: A code framework developed to speed up MCU projects.
LuatOS: A real-time operating system running on embedded hardware, requiring only a small amount of flash memory to operate, allowing users to complete various functions by writing Lua code.
Contiki-OS: A small, open-source, and highly portable multitasking operating system.
DJYOS: The Dujiangyan operating system.
klite: A simple and easy-to-use embedded operating system kernel.
lmosem: A complete 32-bit operating system kernel, starting from the first line of boot code, based on the ARM platform, supporting multi-process, multi-CPU, memory management, file and device management.
freenos: A microkernel operating system.
More resources to be expected…
2. Practical Libraries/Frameworks
cJSON: A lightweight JSON parsing library based on C language.
jsmn: A small JSON parsing library based on C language.
MultiTimer: A software timer extension module.
MultiButton: A small, simple, and easy-to-use event-driven button driver module.
SmartTimer: A lightweight timer scheduler based on STM32.
CmBacktrace: A library for automatic error code tracing for ARM Cortex-M series MCUs.
EasyLogger: An ultra-lightweight, high-performance C/C++ logging library.
EasyFlash: An open-source lightweight embedded flash memory library.
SFUD: An open-source universal driver library for serial SPI Flash.
lw_oopc: A lightweight C language object-oriented programming framework.
PLOOC: Protected low-overhead object-oriented programming.
cmd-parser: A very simple and easy-to-use command parser.
mqttclient: A resource-efficient, highly stable MQTT client.
NorthFrame: A minimalist graphical state machine framework for microcontrollers.
letter-shell: A powerful embedded shell.
pigweed: A collection of embedded target libraries (modules) open-sourced by Google.
lwrb: A lightweight generic ring buffer manager library.
cQueue: Message queue function written in ANSI C.
Unity: A lightweight testing framework suitable for embedded systems.
Embedded Unit: A unit testing framework built entirely in standard C.
CuTest: A tiny unit testing framework in C, with all code totaling less than a thousand lines.
cmockery: Google’s C unit testing framework.
googletest: Google’s C++ testing framework.
znfat: ZhenNan FAT, a domestic embedded file system solution.
libu: A multi-platform tool library written in C.
LWIP: A small open-source TCP/IP protocol stack.
SQLite: An open-source embedded relational database.
OpenBLT: An open-source bootloader.
Linux Lab: A fast Linux kernel learning, development, and testing environment based on Docker/Qemu.
airkissOpen: Tencent’s airkiss protocol parsing library.
nr_micro_shell: Shell for MCU, command line interaction for microcontrollers.
FlexibleButton: A small and flexible key processing library based on standard C.
mbedtls: An open-source, portable, easy-to-use, readable, and flexible SSL library.
mosquitto: An open-source MQTT broker.
inih: An INI file parser written in C.
QP: QP real-time embedded framework.
MS-RTOS: Micro Safe RTOS.
protobuf-c: protobuf-c.
eepromfs: A simple class file read/write library based on EEPROM.
gear-lib: A C library suitable for IoT/embedded/network service development.
mult_timer: A super streamlined multi-timer under Linux.
EFSM: An event-driven finite state machine.
EasyX: A free graphics library.
More resources to be expected…
3. GUI Related
GuiLite: Simple to the extreme – 5,000 lines/only header files/all-platform GUI library.
yoxios: A lightweight IoT system and hardware platform developed based on Linux.
ToughGFX: A GUI software framework written in C++.
emwin: An old-school GUI library.
littlevGL: A free open-source graphics library.
Wild Bull LittlevGL demo: A demo program based on the Wild Bull development board.
MonoGUI: A black-and-white graphical user interface system.
MiniGUI: A fast, stable, cross-operating system GUI.
QT: A cross-platform application and user interface framework.
QT_Creator: QT_Creator download link.
Gtk: A graphics library for creating graphical user interfaces.
AWTK: A GUI framework developed in C language by ZLG.
Linglong GUI: Linglong GUI tutorial page.
More resources to be expected…
4. IoT and Smart Home
HomeAssistant: An open-source smart home system based on Python.
Domoticz: An open-source smart home system.
Kaa IoT Platform: A feature-rich, open, and efficient IoT cloud platform.
RT-Thread IoT SDK: Various examples based on the RT-Thread IoT development board.
Building IoT from Scratch: A web development tutorial suitable for embedded developers.
More resources to be expected…
5. Examples/Projects/Hardware-Software Integration
qt_2019_ncov: A COVID-19 monitoring platform implemented based on Qt/C++.
H7-TOOL_STM32H7_App: H7-TOOL multifunctional development tool.
DAPLink/CMSIS DAP: A debugger that integrates downloading, debugging, and USB virtual serial port.
mcush: MCU shell.
DoST: Developing STM32 under Linux.
Crazepony: An open-source quadcopter.
MiniQ: A mini quadcopter.
LiPow-Firmware: An open-source lithium battery charger powered by USB type-C based on STM32G0.
Avem: A lightweight drone flight control.
SoftWareSerial: A software serial port program simulating STM32 IO ports.
Serial ISP program: An STM32 serial ISP program.
DSO_Nano: A handheld oscilloscope.
DSView: A cross-platform logic analyzer.
MCU-Development: Various common hardware module demos based on 51, 430, STM32F10X, STM32F407X, T4MC123G platforms.
Arduino: An open-source electronic prototyping platform.
EWAHBoolArray: Bitmap algorithm.
More resources to be expected…
6. Learning Materials/Resources/Tools/Websites
100ask download: Baiwen network resource download center.
armfly: Anfu Lai/Hardcore Embedded Forum.
fire download: Wildfire resource download center.
openedv download: ZD Atom resource download center.
Wildfire: Wildfire electronics forum.
ZD: ZD Atom forum.
ST: ST Chinese community.
Xunwei Development Community: Beijing Xunwei ARM development community.
Xunwei Official Website: Xunwei official website.
NXP Community: NXP forum.
Linux: Linux kernel official website.
Linux Source Code: Online reading of Linux kernel source code.
Buildroot: Buildroot source code.
Debian: Debian official website.
Ubuntu: Ubuntu official website.
Lychee Pie: Lychee Pie guide.
Tsinghua Mirror Site: Tsinghua University open source software mirror site.
USTC Mirror Site: University of Science and Technology of China mirror site.
u-boot: U-boot source code download page.
bear-pi: Little Bear Pie demo.
Home Study Tribe: A website for learning Linux, programming languages, kernels, and driver development.
Microcontroller Tutorial Network: Basic microcontroller knowledge, design examples, forum.
GNU: GNU official website.
ChinaUnix: Linux/Unix related.
PyQt5: PyQt5 tutorial.
qter: QT open-source community.
git manual: Git learning manual.
Open Source Project Style: Google open source project style guide (Chinese version).
Electronic Family: A navigation website for electronic-related topics.
21ic: 21ic electronic network.
Xinlu Heng Electronics: Little Mei Ge blog, FPGA forum.
Embedded Developer Community: Chuanglong forum.
micropython: Micropython Chinese website.
Taixiao Technology: Linux related.
Dian Tang Technology: STM32 related.
Source Code Usage Example Aggregator: Search CPP code examples from over a million open-source projects.
KST-51: “Hand-in-hand teaching you to learn 51 microcontrollers”.
Atom Brother: Focused on electronic technology teaching.
digoboy: Sweet Potato Pie video site.
c.biancheng: C language Chinese website.
open-c-book: “C Language Programming Perspective”.
PyQt5: Online tutorial for PyQt5.
open-shell-book: “Shell Programming Examples”.
software_unit_test: “Software Unit Testing Introduction and Practice”.
kerneltravel: Journey through the Linux kernel.
Wowo Technology: Slow down and enjoy technology.
bookstack: Bookstack website.
wireshark: Packet capture tool download link.
MobaXterm: A useful terminal software.
Stduino: An integrated development platform for rapid learning aimed at 32-bit processors.
easyicon: A free icon download website.
codingdict: A programming tutorial website similar to the Beginner’s Tutorial.
codingdict open-source software: A collection of various open-source software gathered by the codingdict website.
······
In addition to the above resources, 21ic Electronic Network Technical Exchange Group also provides a pure technical communication platform for electronic enthusiasts and professionals in related industries. The group includes experienced senior engineers, newcomers to the industry, teachers and students from research institutes, as well as technical engineers from relevant manufacturers providing products and services.
For detailed group benefits, rules, and steps, please click the “Read the original text” below to view.