One of the hardest things at the beginning of learning is finding study materials. This post carefully compiles some resources related to embedded systems, including but not limited to programming languages, microcontrollers, open-source projects, the Internet of Things, operating systems, Linux, and more. It is continuously updated, aiming to create the most comprehensive embedded resource library online.
1. OS
HarmonyOS: An open-source distributed operating system for all scenarios.
RT-Thread: A small and beautiful 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, focusing on IoT.
BabyOS: A code framework developed to accelerate MCU projects.
LuatOS: A real-time operating system running on embedded hardware that can operate with minimal flash memory, allowing users to write Lua code to complete various functions.
Contiki-OS: A small, open-source, easily 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 based on ARM platform, supporting multi-process, multi-CPU, memory management, file and device management, written from the first line of boot code.
FreeNOS: A microkernel operating system.
More resources coming soon…
2. Useful Libraries/Frameworks
cJSON: A lightweight JSON parsing library based on C.
jsmn: A small JSON parsing library based on C.
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: An automatic error code tracing library for ARM Cortex-M series MCUs.
EasyLogger: An ultra-lightweight, high-performance C/C++ logging library.
EasyFlash: An open-source lightweight embedded Flash storage library.
SFUD: An open-source serial SPI Flash universal driver library.
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 and highly stable MQTT client.
NorthFrame: An ultra-simple 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 general circular buffer management library.
cQueue: Message queue functions written in ANSI C.
Unity: A lightweight testing framework suitable for embedded systems.
Embedded Unit: A unit testing framework built entirely with standard C.
CuTest: A tiny C unit testing framework, 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 utility 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 rapid Linux kernel learning, development, and testing environment based on Docker/Qemu.
airkissOpen: Tencent airkiss protocol parsing library.
nr_micro_shell: Shell for MCU, command line interaction for microcontrollers.
FlexibleButton: A compact and flexible button handling library based on standard C language.
mbedtls: An open-source, portable, easy-to-use, readable, and flexible SSL library.
mosquitto or mosquitto (fast download): 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 data 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 coming soon…
3. GUI Related
GuiLite: The simplest way – 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-brand GUI library.
littlevGL: A free open-source graphics library.
Wild Bull LittlevGL demo: A LittlevGL 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 based on C language, crafted by ZLG.
LinglongGUI: Linglong GUI tutorial page.
More resources coming soon…
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 coming soon…
5. Examples/Projects/Software and Hardware 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: Crazepony 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: Common hardware module demos based on 51, 430, STM32F10X, STM32F407X, T4MC123G platforms.
Arduino: An open-source electronic prototyping platform.
EWAHBoolArray: Bitmap algorithm.
More resources coming soon…
6. Learning Materials/Resources/Tools/Websites
100ask download: Baiwen Network resource download center.
armfly: Anfu Lai/Hardened Embedded Forum.
fire download: Wildfire resource download center.
openedv download: ZD Atom resource download center.
Wildfire: Wildfire Electronics Forum.
ZD Atom: 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 the Linux kernel source code.
Buildroot: Buildroot source code.
Debian: Debian Official Website.
Ubuntu: Ubuntu Official Website.
Lychee Pie: Lychee Pie Guide.
Tsinghua Mirror Station: Tsinghua University Open Source Software Mirror Station.
USTC Mirror Station: University of Science and Technology of China Mirror Station.
u-boot: U-boot source code download page.
bear-pi: Bear Pi demo.
Home Learning Tribe: A learning website for Linux, programming languages, kernel, and driver development.
Single Chip Microcontroller Tutorial Network: Basics of microcontrollers, 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).
Electronics Family: An electronic navigation website.
21ic: 21IC China Electronics Network.
Xinlu Heng Electronics: Xiao Meige Blog, FPGA Forum.
Embedded Developer Community: Chuanglong Forum.
micropython: Micropython Chinese Network.
Taixiao Technology: Linux related.
Diantang Technology: STM32 related.
Source Code Usage Example Aggregator: Search for CPP code examples from over 1 million open-source projects.
KST-51: “Hands-on Learning of 51 Microcontroller”.
Atom Brother: Focus on electronic technology education.
digoboy: Digoboy Video Network.
c.biancheng: C Language Chinese Network.
open-c-book: “C Language Programming Perspective”.
PyQt5: PyQt5 Online Tutorial.
open-shell-book: “Shell Programming Examples”.
software_unit_test: “Software Unit Testing Introduction and Practice”.
kerneltravel: Linux Kernel Journey.
Snail Technology: Slow down and enjoy technology.
bookstack: Bookstack Network.
wireshark: Packet capture tool download link.
MobaXterm: A useful terminal software.
Stduino: An integrated development platform for quick learning aimed at 32-bit processors.
easyicon: A free icon download website.
codingdict: A programming tutorial website similar to Ruanjian Tutorial.
codingdict open-source software: A collection of various open-source software collected by codingdict website.
······

Click “Read Original” to see more shares, welcome to share, bookmark, like, and view.