The hardest part in the early stages of learning is finding learning materials. This post carefully compiles some embedded-related resources, including but not limited to programming languages, microcontrollers, open source projects, IoT, operating systems, Linux, etc., and is constantly being 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 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 created by ARM focusing 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 memory flash space to operate, allowing users to write Lua code to achieve various functions.
Contiki-OS: A small, open-source, and easily portable multitasking operating system.
DJYOS: Dujiangyan operating system.
klite: A concise and easy-to-use embedded operating system kernel.
lmosem: A complete 32-bit operating system kernel, written from the first line of boot code, based on the ARM platform, supporting multiprocess, multi-CPU, memory management, file and device management.
freenos: FreeNOS microkernel operating system.
More resources coming soon…
2. Utility Libraries/Frameworks
cJSON: A lightweight JSON parsing library based on C.
jsmn: A compact 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 error code automatic 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 general 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, 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 general ring buffer management library.
cQueue: Message queue functionality functions written in ANSI C.
Unity: A lightweight testing framework suitable for embedded systems.
Embedded Unit: A unit testing framework built purely with standard C.
CuTest: A tiny C language unit testing framework, all code combined is less than a thousand lines.
cmockery: Google C unit testing framework.
googletest: Google C++ testing framework.
znfat: Zhen Nan 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: Linux kernel laboratory, a fast 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.
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 and 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: Simple yet powerful – 5,000 lines/only header file/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 established GUI library.
littlevGL: A free open-source graphics library.
Wild Bull LittlevGL demo: A demo program of LittlevGL 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 by ZLG.
LinglongGUI: Linglong GUI tutorial page.
More resources coming soon…
4. IoT, 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 routines 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/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 download, 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 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 website resource download center.
armfly: Anfu Lai/Hardened Embedded Forum.
fire download: Wildfire resource download center.
openedv download: Zhen Dian Atom resource download center.
Wildfire: Wildfire electronics forum.
Zhen Dian: Zhen Dian 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 Pi demo.
宅学部落: A website for learning Linux, programming languages, kernels, and driver development.
Single Chip Microcontroller Tutorial Network: Basics, design examples, forum for single-chip microcontrollers.
GNU: GNU official website.
ChinaUnix: Related to Linux/Unix.
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: 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 website.
Taixiao Technology: Related to Linux.
Diantang Technology: Related to STM32.
Source Code Usage Example Aggregator: Search for CPP code examples from over a million open-source projects.
KST-51: “Teaching You to Learn 51 Microcontroller”.
Atom Brother: Focused on electronic technology teaching.
digoboy: Sweet Potato Pi video website.
c.biancheng: C language Chinese website.
open-c-book: “C Language Programming Perspective”.
PyQt5: PyQt5 online tutorial.
open-shell-book: “Shell Programming Examples”.
software_unit_test: “Introduction and Practice of Software Unit Testing”.
kerneltravel: Journey through the Linux kernel.
蜗窝科技: 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 fast learning aimed at 32-bit processors.
easyicon: A free icon download website.
codingdict: A programming tutorial website similar to Ruan Yao’s tutorial.
codingdict open source software: A collection of various open-source software collected by codingdict website.
······