Follow and star our public account for exciting content
Source | Technology Makes Dreams Greater
Learning embedded systems is relatively easy to start but challenging to master. This article recommends and summarizes some open-source projects that together form a complete embedded development ecosystem, from chip boot code to high-level application development. You can check the original links for more information.
Operating Systems
FreeRTOS: A popular real-time operating system (RTOS) for microcontrollers.
Repository: https://github.com/FreeRTOS/FreeRTOS
Zephyr Project: A scalable real-time operating system supporting various hardware architectures.
Repository: https://github.com/zephyrproject-rtos/zephyr
mbed OS: An open-source embedded operating system launched by ARM, designed for IoT devices.
Repository: https://github.com/ARMmbed/mbed-os
RT-Thread: An open-source real-time operating system from China, suitable for IoT applications.
Repository: https://github.com/RT-Thread/rt-thread
TinyOS: An open-source embedded operating system designed for low-power wireless devices.
Repository: https://github.com/tinyos/tinyos-main
Contiki-NG: An open-source, cross-platform embedded operating system designed for IoT.
Repository: https://github.com/contiki-ng/contiki-ng
OpenWrt: A Linux distribution for embedded devices, commonly used in routers.
Repository: https://github.com/openwrt/openwrt
Apache NuttX: A real-time operating system (RTOS) emphasizing standard compliance.
Repository: https://github.com/apache/nuttx
RIOT OS: A friendly embedded operating system supporting various hardware platforms.
Repository: https://github.com/RIOT-OS/RIOT
Linux Kernel: Although the Linux kernel itself is not specifically designed for embedded systems, it is widely used in the embedded field.
Repository: https://github.com/torvalds/linux
U-Boot: An open-source bootloader for embedded devices.
Repository: https://github.com/u-boot/u-boot
For beginners, studying the FreeRTOS source code can provide a deep understanding of real-time scheduling algorithms (such as priority scheduling and time-slicing), inter-task communication mechanisms, and memory management strategies. It also offers core functionalities like task management, message queues, semaphores, and software timers, making it a great learning resource.
Frameworks
ESP-IDF: The official IoT development framework from Espressif for the ESP32 series chips.
Repository: https://github.com/espressif/esp-idf
ESP8266 RTOS SDK: An RTOS development framework for the ESP8266.
Repository: https://github.com/espressif/ESP8266_RTOS_SDK
Arduino: An open-source electronics prototyping platform, including both hardware and software.
Repository: https://github.com/arduino/Arduino
Tools
PlatformIO: A cross-platform embedded development toolchain.
Repository: https://github.com/platformio/platformio-core
BusyBox: A single executable file that integrates multiple common Unix tools, often used in embedded Linux systems.
Repository: https://github.com/mirror/busybox
PJRC Teensy: Core libraries and tools for the Teensy development board.
Repository: https://github.com/PaulStoffregen/cores
Provides a CMake-based build system, supporting integration with IDEs like VSCode and Eclipse.
Projects and Libraries
WiringPi: A GPIO control library for Raspberry Pi (written in C).
Repository: https://github.com/WiringPi/WiringPi
MicroPython: A lean implementation of Python for microcontrollers and embedded systems.
Repository: https://github.com/micropython/micropython
The Things Network: An open-source project related to LoRaWAN for IoT communication.
Repository: https://github.com/TheThingsNetwork
These related URLs provide learners with comprehensive resources and practical opportunities, including operating systems, development frameworks, tools, and hardware support.
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
Follow my public account and reply "planet" to join the knowledge community, where all questions will be answered.
Click "Read the original text" to view details about the knowledge community. Feel free to share, bookmark, like, and view.