Sumber daya tertanam yang luar biasa untuk pengembang
Daftar Sumber dan LIB yang Luar Biasa untuk Pengembangan Sistem Tertanam
Implementasi sumber dan lib dalam daftar ini secara khusus cocok untuk sistem tertanam yang dibatasi sumber daya (memori rendah dan berdaya rendah) seperti mikrokontroler 8-bit, 16-bit dan 32-bit.
PERINGATAN Daftar ini tidak mencakup topik terkait Linux (seperti platform Raspberry Pi atau SBC lainnya (komputer papan tunggal)).
URL permanen ke daftar ini: https://github.com/idoka/awesome-embedded-software
Isi
- Umum
- Ingatan
- Manajemen memori
- Buffer
- Buffer cincin
- Fifo
- Penyimpanan
- Sistem file
- Basis Data
- Memori flash
- Protokol
- Protokol frekuensi radio
- Protokol jaringan
- Server web
- MQTT
- Parser Protokol
- Pengolahan data
- Matematika
- DSP dan penyaringan
- Kompresi
- Ai ml
- Cv
- Kriptografi
- Umum
- Kriptografi kurva elips
- Pembuatan angka acak
- Os
- Rtos
- Penjadwal Berbasis Acara
- Antarmuka pengguna
- Cli
- Menu
- printf
- scanf
- Logging
- GUI
- Editor GUI
- Font utils
- Alat manupulasi gambar
- Perangkat keras
- Yang lain
- Manajemen utas
- Bootloaders
- Pembaruan firmware
- Layar sentuh
- LIBS MANAJEMEN TIME
- Skrip dan bahasa yang bisa disematkan
- Kompiler
- Tidak dikategorikan
Umum
- Wiselib - Perpustakaan Algoritma Generik untuk sistem yang heterogen, terdistribusi, dan tertanam.
- util.embedded - kode dukungan yang berguna untuk pengembangan tertanam.
- embxx - pustaka C ++ tertanam.
- Tertanam -Libs - Perpustakaan untuk Perangkat Lunak Tertanam (terutama untuk STM32).
- ETLCPP - Perpustakaan Template Tertanam di mana pengguna dapat menyatakan ukuran, atau ukuran maksimum dari objek apa pun di muka.
- EFLL - Pustaka Logika Fuzzy Tertanam adalah perpustakaan standar untuk sistem tertanam.
- Koleksi Cuplikan C Portabel Lain -Lain - Koleksi Cuplikan C Portabel Lain -Lain.
- SC - portable, perpustakaan C yang berdiri sendiri dan struktur data (C99).
- Microtbx - Open Source Microcontroller Toolbox yang terdiri dari komponen perangkat lunak yang biasa dibutuhkan dalam aplikasi perangkat lunak tertanam. Microtbx ditulis dalam bahasa pemrograman C (C99) dengan mempertimbangkan kepatuhan Misra.
- UMLIBC - LIBC Bare -Bones untuk sistem terbatas memori.
- μClibc -ng - Perpustakaan C tertanam.
- LIBC Seni Tertanam-Implementasi Perpustakaan standar C yang dilucuti yang ditargetkan untuk sistem tertanam berbasis mikrokontroler. Mengurangi serangkaian fungsionalitas (karena sifat tertanam). Dipilih untuk portabilitas dan pembuatan cepat.
- HWLIB-C ++ OO Perpustakaan Mikro-Kontroler untuk Pemrograman dekat-ke-hardware.
- Perpustakaan Template Kontainer CTL - C. Ada kompilasi cepat, jenis aman, header saja, perpustakaan wadah seperti template untuk ISO C99/C11.
- FSMlang - Negara Bagian Deskripsi Mesin Bahasa dengan C Bahasa C. Mendukung mesin datar dan hierarkis dan subsistem acara.
Ingatan
Manajemen memori
- LibMemory - Perpustakaan Manajemen Memori dengan Implementasi untuk Malloc (), Free (), dan fungsi manajemen memori yang berguna lainnya.
- LWMEM - Perpustakaan Manajer Memori Dinamis yang ringan untuk sistem tertanam dengan kendala memori. Ini mengimplementasikan fungsi malloc, calloc, realloc, dan gratis.
- UMM_MALLOC - Manajer memori untuk mikroprosesor kecil (ish).
- O1Heap-Alokasi memori konstan-kompleksitas konstan yang sangat deterministik yang dirancang untuk sistem tertanam integritas tinggi-real-time yang keras.
Buffer
- EmbeddedProto - C ++ Protocol Buffer Implementasi yang secara khusus cocok untuk mikrokontroler Cortex -M ARM. Ini kecil, andal dan mudah digunakan.
- Protobuf-Embedded-C-Protokol Buffer Generator untuk Aplikasi Tertanam Dibatasi Sumber Daya Ditulis dalam Bahasa Pemrograman C.
Buffer cincin
- LWRB - Perpustakaan Manajer Buffer Ring Generic Ringan.
- RingBuffer - Perpustakaan antrian buffer cincin safe (melingkar) untuk platform tertanam.
- LFBB-Buffer bipartit bebas-kunci, varian buffer cincin yang selalu dapat memberikan ruang berseberangan di dalam buffer untuk membaca, menulis, atau memodifikasi data di tempat.
Fifo
- FIFOFAST - FIFO yang cepat dan generik untuk MCU.
Penyimpanan
Sistem file
- LWEXT4 - Perpustakaan sistem file ext2/ext3/ext4 untuk mikrokontroler.
- FATFS - Implementasi Sistem File Fat.
- LevelX - Menyediakan leveling keausan flash untuk FileX dan tujuan berdiri sendiri.
- UFAT-Implementasi VFAT lengkap fitur memori rendah.
- FAT_IO_LIB - Jejak kecil, ketergantungan rendah, Code C Implementasi driver FAT16 & FAT32.
- SDFAT - ARDUINO FAT16/FAT32 EXFAT Library.
- FAT32 - Lighweight FAT32 Sistem file yang ditulis dalam C tanpa ketergantungan pihak ketiga. Ini membutuhkan port kecil yang menyediakan fungsi untuk menginisialisasi, membaca, dan menulis ke MSD.
- EMFAT - Perpustakaan Emulasi FAT32 untuk STM32F4.
- OpenFat - Implementasi sistem file lemak untuk prosesor tertanam.
- UC-FS-Sistem file tertanam yang kompak, andal, berkinerja tinggi, dan aman utas untuk mikroprosesor, mikrokontroler, dan DSP. Komponen jurnal opsional menyediakan operasi gagal-aman sambil mempertahankan kompatibilitas lemak.
- LittleFS - Sistem file kecil gagal -aman yang dirancang untuk mikrokontroler.
- UFFS - Sistem file untuk perangkat NAND dengan leveling keausan dan toleransi kesalahan yang baik.
Basis Data
- FlashDB-Database ultra-ringan yang mendukung data nilai kunci dan deret waktu.
- PUREDB - Perpustakaan portabel dan kecil untuk membuat dan membaca database konstan.
- Unqlite - NoSQL tertanam, mesin basis data transaksional.
- VEDIS - Implementasi tertanam REDIS (perpustakaan Datastore C yang dapat disematkan yang dibangun dengan lebih dari 70 perintah yang serupa dalam konsep dengan Redis tetapi tanpa lapisan jaringan karena VEDIS berjalan dalam proses yang sama dari aplikasi host).
- Microkvs - penyimpanan nilai kunci kecil untuk bertahan data konfigurasi pada mikrokontroler.
Memori flash
- Easyflash - Perpustakaan memori flash tertanam ringan.
- Flashalgo - Kerangka kerja untuk membangun algoritma pemrograman flash gaya Cortex -M "FLM".
- FCB - Flash Circular Buffer menyediakan abstraksi yang dapat Anda perlakukan flash seperti FIFO.
Protokol
- NANOPB - Implementasi buffer protokol ukuran kode kecil di ANSI C. Sangat cocok untuk digunakan dalam mikrokontroler, tetapi cocok dengan sistem terbatas memori.
- Interchange - Mekanisme permintaan/respons untuk pengembangan tertanam, menggunakan atom.
- XMODEM - Perpustakaan XMODEM untuk sistem tertanam, seluler, IoT, dan desktop.
- TinyFrame - Perpustakaan Sederhana untuk Membangun dan Mengurai Rangka Data untuk Antarmuka Serial (seperti UART / RS232).
- Nanomodbus - Perpustakaan Modbus RTU/TCP C yang kompak untuk tertanam/mikrokontroler.
- RCOBS - Reverse -Cobs Encoding (RCOBS) adalah varian dari pengkodean COBS yang dirancang untuk memungkinkan pengkodean dengan nol lookahead.
Protokol frekuensi radio
- Radiohead - Perpustakaan Radio Paket untuk Mikroprosesor Tertanam.
- Adafruit's Radiohead - Perpustakaan Radio Paket untuk Mikroprosesor Tertanam dengan Dokumen.
Protokol jaringan
- UIP - Implementasi tumpukan TCP/IP yang sangat kecil yang ditulis oleh Adam Dunkels.
- LWIP - Implementasi independen kecil dari rangkaian protokol TCP/IP yang awalnya telah dikembangkan oleh Adam Dunkels. LWIP Cocok untuk digunakan dalam sistem tertanam dengan puluhan kilobyte RAM dan ruang gratis untuk sekitar 40 kilobyte Code ROM.
- HTTPClient - Perpustakaan Klien HTTP.
- HTTPIO - Permintaan Parser dan Respons Platform yang berdiri sendiri untuk protokol HTTP.
- Picotcp - Tumpukan TCP/IP modular yang dirancang untuk sistem tertanam dan Internet of Things.
- RAWTCP_LIB - C Pustaka untuk membuat dan menggunakan paket TCP/IP dengan soket jaringan mentah.
- LRNDIS - Ethernet melalui USB (RNDIS + LWIP).
- CyclonetCP - Tumpukan IPv4/IPv6 ganda yang didedikasikan untuk aplikasi tertanam. Tumpukan didistribusikan sebagai ANSI C penuh dan kode sumber yang sangat dapat dipelihara (contoh tidak termasuk dalam sumber GitHub).
- StaticNet - C ++ TCP/IP dan SSH Stack dengan alokasi all -statis yang dirancang untuk logam telanjang (tidak ada sistem operasi) aplikasi tertanam dengan jejak minimal.
Server web
- Mongoose - Server Web Tertanam dan Perpustakaan Jaringan Tertanam. Ini mengimplementasikan API non-blocking yang digerakkan oleh acara untuk TCP, UDP, HTTP, WebSocket, MQTT.
- LibevHTP - Server HTTP tertanam yang sangat cepat dan aman dengan mudah.
- libμhttpd - sangat fleksibel, ringan dan sepenuhnya asinkron perpustakaan server HTTP berdasarkan Libev dan HTTP -Parser.
- Sandbird - server HTTP yang dapat disematkan (800SLOC) ditulis dalam C89.
MQTT
- Libemqtt 1 - Perpustakaan klien tertanam C untuk protokol MQTT.
- Libumqtt 2 - Perpustakaan MQTT Client C yang ringan dan sepenuhnya asinkron berdasarkan Libev.
- PAHO MQTT - C Pustaka Klien untuk Sistem Tertanam.
Parser Protokol
Ekspresi reguler parsers
- Regexp - Perpustakaan Ekspresi Reguler untuk Sistem Tertanam.
GSM
- LWGSM - Perpustakaan untuk Modul Simcom GSM untuk berkomunikasi dengan perintah AT dan RTO dari perangkat host.
- Gsm_engine - generik di parser untuk modul berbasis perintah at.
- TinyGSM - Perpustakaan Arduino Kecil untuk Modul GSM, yang hanya berfungsi.
GPS
- LWGPS - Parser GPS NMEA yang ringan untuk sistem tertanam.
- MinMea - Perpustakaan GPS NMEA 0183 Parser yang ringan di C. murni C.
Di komando parser
- atat - lib untuk pemrosesan perintah kustom seperti at -like.
- Perpustakaan Cat - Plain C untuk Parsing At Command untuk digunakan di perangkat host.
- GZAT - Portabel AT Command Parsing Library dalam bahasa C ++.
- Atparser - MBED -OS yang kompatibel di Parser Perintah.
- AtCommander - Perpustakaan C ++ portabel untuk mengirim perintah dan menguraikan tanggapan mereka.
- LWESP - Perintah Parser Perintah Parser yang ringan untuk berkomunikasi dengan Modul Wi -Fi ESP8266 atau ESP32 menggunakan perintah AT.
Berbagai protokol
- LWPKT-Struktur protokol paket ringan untuk komunikasi multi-perangkat difokuskan pada RS-485.
- LWOW - Perpustakaan Protokol Onewire yang ringan dioptimalkan untuk perangkat keras UART pada sistem tertanam.
- Panstamp -SWAP - Protokol abstrak nirkabel sederhana untuk radio ISM yang ada.
- Panstamp -USWAP - Tumpukan swap mikro untuk MCU terhubung melalui UART.
- Min - Microcontroller Interconnect Network Protocol Versi 2.0.
- LIBCOAP - C Implementasi Aplikasi -Protokol Ringan untuk Perangkat yang membatasi sumber dayanya seperti daya komputasi, rentang RF, memori, bandwidth, atau ukuran paket jaringan. Protokol ini, Coap, distandarisasi oleh IETF sebagai RFC 7252.
Pengolahan data
Matematika
- Liquid-FPM-Perpustakaan matematika titik tetap radio yang ditentukan perangkat lunak untuk pemrosesan sinyal tertanam.
- FPM-C ++ hanya tajuk pustaka matematika poin tetap.
- Eigen - C ++ Template Library untuk aljabar linier: matriks, vektor, pemecah numerik, dan algoritma terkait.
DSP dan penyaringan
- Liquid-DSP-Perpustakaan pemrosesan sinyal digital untuk radio yang ditentukan perangkat lunak.
- Minfft - Perpustakaan Transformasi Fourier Diskrit Kecil dan Cepat.
- IIR1 - DSP IIR Perpustakaan Filter Realtime Ditulis dalam C ++.
- Kalman -Clib - Mikrokontroler Target Implementasi Filter Kalman Naif di C. Murni C.
- LIBDSPL - Perpustakaan pemrosesan sinyal digital lintas platform, ditulis dalam bahasa C.
- PocketFFT - Implementasi FFTPACK yang sangat dimodifikasi.
- Kiss FFT - Transformasi Fourier Fast Fast Campuran Berdasarkan Prinsip, "Tetap Sederhana, Bodoh".
- CMSIS-DSP-Perpustakaan Hitung Tertanam untuk Cortex-M dan Cortex-A.
- SIGLIB-Pemrosesan Sinyal Digital dan Perpustakaan Pembelajaran Mesin (x86, Cortex-A dan Cortex-M, RISC-V, DSP dari TI, ADI dll).
- LSP-DSP-LIB-Perpustakaan DSP untuk pemrosesan sinyal digital menyediakan set fungsi yang melakukan komputasi yang dioptimalkan SIMD pada beberapa arsitektur perangkat keras. Semua fungsi saat ini beroperasi pada bilangan floating-point presisi tunggal IEEE-754.
Kompresi
- Heatshrink - Pustaka Kompresi Data untuk sistem tertanam/real -time.
- SHOCO - C PERPUSTAKAAN UNTUK MENYEBABKAN DAN DEKOMPRESS STRING SINGKAT. Ini sangat cepat dan mudah digunakan. Model kompresi default dioptimalkan untuk kata -kata bahasa Inggris, tetapi Anda dapat menghasilkan model kompresi Anda sendiri.
- SMAZ - Kompresi untuk string yang sangat kecil.
- ECL - Pustaka kompresi tertanam tidak hanya untuk tertanam, sebagian besar berorientasi pada data kecil dan memiliki mode memori rendah yang dioptimalkan khusus untuk lingkungan terbatas.
- Unishox2 - Encoder hybrid untuk string unicode pendek (UNISHOX memberikan kompresi terbaik untuk teks pendek dan tidak dibandingkan dengan algoritma kompresi tujuan umum seperti LZ4, Snappy, LZMA, Brottli dan ZSTD).
- TCOBS-Kompresi pesan pendek dengan pembingkaian COBS menggunakan run-length-encoding implisit, dioptimalkan untuk data yang mengandung statistik sedikit lebih banyak 0 dan ff byte dalam satu baris, karena data sering membawa 16, 32 atau 64 bit nomor dengan nilai kecil.
Ai ml
Kecerdasan Buatan dan Pembelajaran Mesin
- Cranium - portabel, header saja, pustaka jaringan saraf buatan feedforward ditulis dalam vanilla C99.
- μtensor - Perpustakaan Inferensi AI Tinyml.
- FIDO - Perpustakaan Pembelajaran Mesin C ++ ringan untuk elektronik dan robotika tertanam.
- NNOM - Neural Network on Microcontroller (NNOM) adalah perpustakaan jaringan saraf inferensi tingkat tinggi khusus untuk mikrokontroler.
- Caffepresso - Perpustakaan yang dioptimalkan untuk pembelajaran mendalam pada platform berbasis akselerator tertanam.
- Libonnx - Mesin inferensi C99 C99 murni portabel yang ringan untuk perangkat tertanam dengan dukungan akselerasi perangkat keras.
- TinyMaix - Perpustakaan jaringan saraf inferensi kecil khusus untuk mikrokontroler (TINYML). Dirancang untuk mengikuti aturan: mudah digunakan> portabel> kecepatan> ruang.
Cv
Visi komputer
- SOD Tertanam - Perpustakaan Visi Komputer & Pembelajaran Mesin Tertanam (CPU Dioptimalkan & IoT mampu).
- QR-Image-Embedded-QR Library Fork untuk sistem tertanam.
Kriptografi
Umum
- BRUSSED - Cara modular minimal untuk menulis aplikasi kriptografi pada platform mikrokontroler (Rust).
- Wolfssh - Perpustakaan klien dan server SSHV2 ringan yang ditulis dalam ANSI C dan ditargetkan untuk lingkungan tertanam, RTO, dan sumber daya yang dibatasi - terutama karena ukurannya yang kecil, kecepatan, dan set fitur.
- Libhydrogen-Perpustakaan crypto yang ringan, aman, mudah digunakan yang cocok untuk lingkungan yang dibatasi.
- Krypton - Perpustakaan TLS/DTLS tertanam, Sumber dan Biner OpenSSL Subset.
- Wolftpm - Perpustakaan TPM 2.0 yang sangat portabel, dirancang untuk penggunaan tertanam.
- MBEDTLS - Open Source, Portable, Mudah Digunakan, Dapat Dibaca, dan Fleksibel Pustaka TLS, dan implementasi referensi dari API kriptografi PSA.
- ? Liblithium - Perpustakaan kriptografi ringan yang portabel berdasarkan desain. Ini hanya membutuhkan C99 standar dan tidak mengasumsikan kemampuan alamat 8-bit, membuatnya cocok untuk digunakan pada beberapa arsitektur DSP serta arsitektur utama.
- ? Trezor -Crypto - Algoritma kriptografi yang sangat dioptimalkan untuk perangkat tertanam.
- Poly1305-Donna-Implementasi kode otentikasi pesan cepat (8 bit, 16 bit, 32 bit dan 64 bit mengalikan versi).
- Arduinolibs - Perpustakaan Kriptografi Arduino.
- TLSE - Single C File TLS 1.2/1.3 Implementasi, menggunakan tomcrypt sebagai perpustakaan crypto.
- LIBTOMCRYPT-Toolkit kriptografi portabel yang cukup komprehensif, modular, dan portabel yang memberikan pengembang dengan sejumlah besar cipher blok yang diterbitkan, fungsi hash satu arah, mode rantai, generator nomor pseudo-acak, kriptografi kunci publik dan sejumlah rutinitas lain.
- Monocypher - Mudah digunakan, mudah digunakan, perpustakaan crypto yang dapat diaudit yang ditulis dalam portabel C.
- Minicrypt - Perpustakaan Primitif Crypto untuk Sistem Tertanam.
- TinyCrypt - Perpustakaan Algoritma Kriptografi menyediakan implementasi untuk perangkat terbatas dari serangkaian minimal primitif kriptografi standar.
- Tiny-AES-C-AES128/192/25 kecil portabel dalam C.
- μAE - ringan, sangat fleksibel, portabel, dan implementasi AES enkripsi dan blok Mode Cipher.
- Cyclonecrypto - Perangkat kriptografi yang dirancang untuk digunakan dalam sistem tertanam. Ini menyediakan serangkaian primitif kriptografi yang komprehensif (fungsi hash, aliran dan blok cipher, kriptografi kunci publik) yang dapat digunakan untuk menambahkan fitur keamanan ke aplikasi tertanam Anda.
Kriptografi kurva elips
- Tanda Tangan Salty-ED25519 dengan Optimalisasi Majelis untuk Cortex-M4 dan Cortex-M33.
- Micro-ECC-ECDH dan ECDSA untuk prosesor 8-bit, 32-bit, dan 64-bit.
- Libuecc - Perpustakaan kriptografi kurva elips yang sangat kecil yang kompatibel dengan ED25519.
- C25519-dan-ED25519-Curve25519 dan ED25519 untuk sistem memori rendah (Curve25519 Scalar Multiplication menggunakan kurang dari setengah KB penggunaan tumpukan puncak).
Pembuatan angka acak
- PCG-C-BASIC-Kode memberikan implementasi minimal dari satu anggota keluarga PCG dari generator bilangan acak, yang cepat, sangat baik secara statistik, dan menawarkan sejumlah fitur yang berguna.
- PCG -C - Kode menyediakan implementasi keluarga PCG dari generator nomor acak, yang cepat, sangat baik secara statistik, dan menawarkan sejumlah fitur yang berguna.
Os
- Citrus - Bare Metal Arm® Cortex® -A5 Sistem Operasi.
- Vanilla - Bare Metal ARM® Cortex® -M7 Sistem Operasi.
- ? Kekacauan - Sistem operasi Multicore Multicore Cortex® -A yang Bare Metal Multicore Cortex® -A berdasarkan arsitektur microkernel.
- Kernel LK - Sistem operasi tertanam kernel kecil adalah kernel SMP -Aware yang dirancang untuk sistem kecil yang diangkut ke berbagai platform dan arsitektur CPU.
- QUARKTS - OS untuk aplikasi tertanam yang mendukung penjadwalan kooperatif yang diprioritaskan, kontrol waktu, primitif komunikasi antar -tugas, mesin negara hierarkis dan coroutine.
- Micro-Ros-Micro-Ros menempatkan ROS 2 ke mikrokontroler.
Rtos
- ? Freertos ™ - Freertos.
- Zephyr - RTO generasi baru, scalable, dioptimalkan, dan aman untuk beberapa arsitektur perangkat keras.
- Apache Nuttx - Apache Nuttx adalah sistem operasi tertanam yang matang, real -time (RTOS).
- SCMRTOS-Sistem operasi preemptive real-time kecil yang dimaksudkan untuk digunakan dengan mikrokontroler chip tunggal. SCMRTOS mampu menjalankan UC kecil dengan jumlah kecil RAM sebagai 512 byte. RTOS ditulis pada C ++ dan mendukung berbagai platform.
- Chibios/RT-Sistem operasi real-time yang kompak dan cepat yang mendukung beberapa arsitektur yang dirancang untuk aplikasi tertanam pada mikrokontroler 8-, 16-, dan 32-bit.
- Azure RTOS Threadx - Advanced Real -Time Operating System (RTOS) yang dirancang khusus untuk aplikasi yang tertanam dalam.
- ECOS - Sistem operasi real -time yang ditujukan untuk aplikasi tertanam (sumber tertutup) .
- Embox - RTO yang dapat dikonfigurasi yang dirancang untuk sistem yang dibatasi sumber daya dan tertanam. Ide utama Embox menggunakan perangkat lunak Linux tanpa Linux.
- RIOT-Sistem operasi multi-threading real-time yang mendukung berbagai perangkat yang biasanya ditemukan di Internet of Things (IoT): mikrokontroler 8-bit, 16-bit dan 32-bit. Riot didasarkan pada prinsip-prinsip desain berikut: efisiensi energi, kemampuan real-time, jejak memori kecil, modularitas, dan akses API yang seragam, terlepas dari perangkat keras yang mendasarinya (API ini menawarkan kepatuhan sebagian POSIX).
- ARM MBED OS - Sistem operasi platform yang dirancang untuk Internet of Things. Ini mencakup semua fitur yang Anda butuhkan untuk mengembangkan produk yang terhubung berdasarkan mikrokontroler Cortex-M ARM, termasuk keamanan, konektivitas, RTOS dan driver untuk sensor dan perangkat I/O.
- RT-Thread-RT-Thread lahir pada tahun 2006, ini adalah open source, netral, dan sistem operasi waktu-nyata berbasis komunitas (RTOS). RT-Thread memiliki versi standar dan versi nano. Untuk sistem microcontroller (MCU) yang dibatasi sumber daya, versi kernel nano yang hanya membutuhkan flash 3kB dan sumber daya memori RAM 1.2KB dapat disesuaikan dengan alat yang mudah digunakan; Dan untuk perangkat IoT yang kaya sumber daya, RT-Thread dapat menggunakan alat manajemen paket perangkat lunak online, bersama dengan alat konfigurasi sistem, untuk mencapai pemotongan modular yang intuitif dan cepat, mengimpor paket perangkat lunak yang kaya dengan mulus, sehingga mencapai fungsi kompleks seperti antarmuka grafis Android dan efek geser sentuh, efek interaksi suara cerdas, dan sebagainya.
- Distortos - RTOS C ++ yang berorientasi objek untuk mikrokontroler.
- R3-OS-RTO statis eksperimental (μItron-esque) untuk sistem yang tertanam dalam, menguji batas const eval dan obat generik Rust (Rust) .
- TOCK OS tertanam-Sistem operasi tertanam yang dirancang untuk menjalankan beberapa aplikasi bersamaan dan saling tidak mempercayai pada mikrokontroler memori rendah dan berdaya rendah (Rust) .
- Dandelion - Microkernel Sistem Operasi Waktu Nyata di Rust.
- Muditaos - Sistem Operasi Seluler Berdasarkan Freertos yang dioptimalkan untuk tampilan E Ink - dikembangkan untuk ponsel minimalis murni Mudita.
- μC/OS-II-preemptive, sangat portabel, dan skala yang dapat diskalakan. Dirancang untuk kemudahan penggunaan pada sejumlah besar arsitektur CPU.
- µC/OS-III-preemptive, sangat portabel, dan skal yang dapat diskalakan. Dirancang untuk kemudahan penggunaan pada sejumlah besar arsitektur CPU.
- QP/C-Kerangka kerja tertanam waktu nyata/RTO untuk sistem tertanam berdasarkan objek aktif (aktor) dan mesin negara hierarkis (FUSA, Misra-C 2023 kepatuhan).
- Cukup OK RTOS - Tickless, Minimal, 500 Baris Kode, 7 Fungsi.
Penjadwal Berbasis Acara
- Uevloop - Lingkaran acara cepat dan ringan untuk platform tertanam.
- LWEVT - Sistem manajemen acara ringan untuk sistem tertanam.
- Async - Kerangka kerja asinkron di C untuk sistem di mana penggunaan memori rendah penting.
- Protothreads - Menyediakan eksekusi kode linier untuk sistem berbasis peristiwa yang diimplementasikan dalam C yang dirancang untuk sistem terbatas memori, seperti sistem tertanam kecil atau node jaringan sensor nirkabel.
- Eventos - Sistem berbasis acara yang dirancang untuk kerangka kerja Arduino.
- VSF - Versaloon Software Framework - Kerangka kerja perangkat lunak tambahan yang dapat digerakkan oleh preemptive kecil untuk sistem tertanam.
Antarmuka pengguna
Cli
- CLI - CLI (Antarmuka baris perintah) Contoh Build in Pure C. Dirancang untuk MCU, Input Mode Blok/Non -Blok Dukungan.
- Terminal - Antarmuka baris perintah untuk mikrokontroler. Pengaturan terminal yang fleksibel memungkinkan Anda untuk mengintegrasikannya dengan mikrokontroler apa pun, tanpa banyak usaha.
- Serialmenu - Perpustakaan Arduino untuk dengan mudah membuat menu di konsol serial.
- Terminal -Server - Terminal Server untuk MCU.
- Microsh - Shell untuk perangkat tertanam kecil.
- CMD -L - Command Line Handler untuk perangkat tertanam.
- Tanah embedded-cli-single-header CLI dengan sejarah dan pelengkapan otomatis untuk sistem tertanam.
- Microshell - Implementasi C Virtual CHOLUAL yang ringan, kompatibel dengan terminal VT100. Dukung pohon root, jalur pemasangan run-time, perintah global, dan banyak lagi.
- Microrl - Micro Read Line Library untuk perangkat kecil dan tertanam dengan dukungan VT100 dasar.
Menu
- Promenu - Perpustakaan Menu Aplikasi Generik Lanjutan. Promenu Library digunakan untuk menerapkan menu pengguna canggih dengan cepat. Ini mendukung sarang, pengaturan numerik, pengaturan teks, nilai dan acara boolean. Perpustakaan diimplementasikan dalam C ++ dengan port arduino build-in, tetapi mudah untuk port ke arsitektur yang berbeda.
- BBMenu - Menu CLI portabel sederhana untuk tugas -tugas misc (didasarkan pada menu teks, mudah didefinisikan dalam file).
- Micromenu-V2-Perpustakaan Menu Berorientasi Teks Mungil di C untuk Penggunaan Tertanam.
printf
- LWPRINTF - Perpustakaan printf ringan dioptimalkan untuk sistem tertanam.
- Embedded_printf - versi tertanam dari fungsi "printf ()" yang terkenal. Idenya adalah membuat perpustakaan yang sederhana dan efisien untuk memenuhi beberapa kebutuhan umum dalam sistem tertanam.
- TinyPrintf - Perpustakaan printf dan sprintf kecil untuk sistem tertanam kecil.
- xprintf -fp - printf untuk sistem tertanam dengan dukungan titik mengambang.
- xprintf -io - Perpustakaan I/O Compact String. Ini sangat ideal untuk mikrokontroler kecil yang memiliki memori program yang tidak mencukupi untuk fungsi printf biasa. Penggunaan yang disarankan adalah: menulis string yang diformat ke LCD atau UART dan untuk konsol debug/pemeliharaan.
- XPRINTF - Implementasi pemformatan fprintf () lengkap, cocok untuk penggunaan tertanam.
- Printf kecil-implementasi printf kecil, cepat, tidak bergantung, dan terisi penuh untuk sistem tertanam. Passing Test Suite yang luas.
- Tiny-Printf Baru-Garpu yang Ditingkatkan dan Dipelihara dari
tiny-printf . Cetak kecil, cepat (ish), mandiri dan terisi penuh, sprinf dll. - Mini -Printf - Minimal printf () Implementasi untuk proyek tertanam.
- Nanoprintf - Implementasi printf publik terkecil untuk set fiturnya.
- FMT - Perpustakaan pemformatan modern yang menyediakan alternatif yang cepat dan aman untuk C Stdio dan C ++ ioStreams.
- EMIO - Footprint Binary STD :: Format yang sangat kecil seperti format menggunakan C ++ 20.
scanf
- SCANF - Implementasi portabel dari fungsi input SCANF di C.
- ft_scanf - scanf sederhana %s %c %d.
Logging
- Log Log Tertanam - Perpustakaan Log Tertanam Kecil dan Indah untuk MCU.
- Easylogger-sangat ringan (ROM <1,6K, RAM <0,3K), Perpustakaan Log C/C ++ berkinerja tinggi.
- Trice-Perangkat tertanam super cepat dan kecil C Cetak-like trace Code (berfungsi juga di dalam interupsi) dan penebangan PC real-time (visualisasi ID Trace).
- Tertanam-diagnostik-logger-Kerangka logger ringan untuk proyek berbasis mikrokontroler kecil. Transfer String Berbasis Log dan Token Berbasis Token.
- SPDLOG - Perpustakaan logging C ++ yang sangat cepat, header/compiled, C ++.
- ELOG - Sistem log dipikirkan untuk sistem tertanam dengan pemanfaatan sumber daya mininmal. Sistem log ini dirancang untuk meminimalkan kompsi memori dalam flash atau RAM, memungkinkan buffer loggin in-ram efisien dengan penyimpanan yang sangat efisien.
GUI
- LVGL-GUI tertanam yang kuat dan mudah digunakan dengan banyak widget, efek visual canggih (opacity, antialiasing, animasi) dan persyaratan memori rendah (RAM 16K, 64K flash).
- Easygui - Easygui untuk sistem tertanam (sangat dioptimalkan untuk STM32).
- TouchGFX - Alat C ++ grafis yang ramah pengguna terintegrasi sebagai alat gratis di ekosistem STM32.
- EGUI - Perpustakaan grafis tertanam EGUI.
- ESLOWGRAPHICS - Perpustakaan Grafis Perangkat Lunak Tingkat Rendah oleh Errorsoft (ESLGL).
- FTK - Perpustakaan GUI untuk sistem tertanam.
- U8Glib - Perpustakaan Grafis Universal untuk sistem tertanam 8 bit.
- ? U8G2 - Perpustakaan U8Glib untuk tampilan monokrom, versi 2.
- SGFX - Perpustakaan tertanam ringan untuk tampilan dan layar sentuh yang menyediakan semua yang diperlukan untuk membangun GUI tertanam yang sepenuhnya ditampilkan.
- GUIX - Menyediakan perpustakaan dan lingkungan desain yang lengkap dan tertanam, memfasilitasi pembuatan dan pemeliharaan semua elemen grafis yang diperlukan oleh perangkat Anda.
- GUILIB - Perpustakaan GUI untuk sistem tertanam.
- HMI_Library - Antarmuka mesin manusia yang cocok untuk sistem tertanam.
- AFGUI - Perpustakaan GUI Tertanam.
- MAKISEGUI - Perpustakaan Grafik dan GUI untuk sistem embed.
- EMGUI - Perpustakaan C UI sederhana untuk platform tertanam.
- HAGL - Perpustakaan Grafis Agnostik Perangkat Keras Ringan untuk Perangkat Tertanam. Ini mendukung primitif geometris dasar, bitmap, blitting, font lebar tetap. Perpustakaan mencoba untuk tetap ringan tetapi menargetkan microchip yang cukup kuat seperti ESP32. Tidak ada alokasi dinamis.
- Embedded -Graphics - Perpustakaan Grafis 2D yang difokuskan pada perangkat tertanam yang dibatasi memori untuk menggambar grafik tanpa menggunakan buffer apa pun (karat).
- Lovyangfx - Library Grafis Display (LCD / OLED / EPD) (untuk ESP32 SPI, I2C, 8BitParallel / ESP8266 SPI, I2C / RP2040 SPI / ATSAMD51 SPI dan banyak lagi).
- UGUI (μGUI) - Perpustakaan grafis. Ini mendukung warna, skala abu -abu, monokrom dan beberapa tampilan, layar sentuh, jendela dan objek, primitif geometris dasar, font, konsol. Tidak ada alokasi dinamis yang diperlukan dan memori untuk buffer layar. Dokumentasi tersedia di situs web pengembang.
Editor GUI
- LV_GUI_DESIGNER-Drag-and-drop, perancang GUI sederhana yang dibangun dengan Littlevgl.
- Walv - Online, Desainer Wysiwyg GUI untuk Littlevgl. Cross-platform didukung (bahkan Android dan iOS).
Font utils
- bitmap-osd-font-font bitmap 'C' untuk tampilan layar.
- TTF2MESH - PERPUSTAKAAN UNTUK TRUETYPE Font Tessellation. Memungkinkan untuk mengonversi mesin terbang font ke objek yang menyatu tanpa rasterisasi.
- SFAM_GENERATOR - Skrip sederhana untuk menghasilkan font bit untuk STM32, AVR, Arduino atau MCU lainnya.
- MCUFONT - Perpustakaan rendering font untuk mikrokontroler.
Font dan ikon
- Picon-Pico-Icon Set dengan ligature yang dapat diretas (dirancang pada 8-grid: untuk dapat dibaca pada 8px 16px 24px 32px 48px).
Alat manupulasi gambar
- LCD-Image-Converter-Alat untuk membuat bitmap dan font untuk aplikasi tertanam; Memungkinkan Anda membuat bitmap dan font, dan mengubahnya menjadi format sumber "C" untuk aplikasi tertanam.
Perangkat keras
- Tanah Tanam - Perpustakaan Driver Tertanam untuk berbagai periferal.
Io
- Fastio - Fast GPIO bercabang dari http://os.mbed.com/users/sissors/code/fastoo/.
USB
- TinyUSB - Tumpukan USB lintas platform untuk sistem tertanam.
- libusb_stm32 - Tumpukan perangkat USB ringan untuk mikrokontroler STM32.
- CherryUSB - Host USB dan Tumpukan USB yang kecil, indah dan portabel untuk sistem tertanam dengan USB.
Kilatan
- SFUD - Driver Universal Serial Flash (menggunakan Perpustakaan Driver Universal Flash Universal SFDP (SPI) JEDEC).
Bisa bus
- LibCanard-Implementasi kompak dari protokol UAVCAN/CAN di C untuk sistem tertanam real-time integritas tinggi.
- Canbus -Message - Perpustakaan perakitan pesan dan pembongkaran untuk Teensy & STM32.
- Canboot - Can Bootloader untuk MCU (saat ini LPC176X, STM32 dan RP2040 MCU didukung).
Yang lain
Manajemen utas
- C-thread-pool-kumpulan benang minimal tapi kuat di ANSI C.
Bootloaders
- Mcuboot - Boot aman untuk mikrokontroler 32 -bit.
- OpenBlt - Open Source Bootloader untuk STM32, XMC, HCS12 dan target mikrokontroler lainnya. Ini mendukung antarmuka komunikasi seperti: RS232, CAN, USB, TCP/IP dan dikirimkan dengan alat PC Microboot yang mudah digunakan untuk memulai dan memantau pembaruan firmware. Melakukan pembaruan firmware langsung dari kartu SD juga didukung.
- TinyuF2 - Bootloader Berdasarkan TinyUSB untuk perangkat tertanam seperti ESP32, STM32 dan IMX RT10XX.
- Wolfboot - portabel, os -agnostik, bootloader aman untuk mikrokontroler, pendukung otentikasi firmware dan mekanisme pembaruan firmware.
Pembaruan firmware
- UF2 - Spesifikasi Format Flashing USB untuk memadam mikrokontroler di atas MSC (kelas penyimpanan massal; alias flash drive yang dapat dilepas).
- Swupdate - Pembaruan Perangkat Lunak untuk Perangkat Linux Tertanam untuk Memperbarui Sistem di Bidang. Swupdate mendukung pembaruan lokal dan OTA, beberapa strategi pembaruan dan dirancang dengan mempertimbangkan keamanan.
Layar sentuh
- TSLIB - Perpustakaan Akses Layar Sentuh.
LIBS MANAJEMEN TIME
- Timelib - Perpustakaan Manajemen Waktu untuk perangkat tertanam.
- μTZ - Perpustakaan zona waktu untuk sistem tertanam kecil.
Skrip dan bahasa yang bisa disematkan
- Sedikit - bahasa kecil, cepat, mudah disematkan yang diimplementasikan dalam satu file .c.
Kompiler
- SDCC - Small Device C Compiler (that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (Z80, Z180, SM83, Rabbit 2000, 2000a, 3000a, TLCS-90), Padauk (PDK14, PDK15) dan Stmicroelectronics STM8).
- TCC - Kompiler C Tiny (~ 100kb untuk X86 TCC dapat dieksekusi, termasuk processor C, C Compiler, Assembler dan Linker).
- LCC - Retargetable ANSI C Compiler (Fork for ULP di ESP32).
- PCC - Portabel C Compiler (Mirror).
- Tinygo - Go Compiler untuk hal -hal kecil: Mikrokontroler, WebAssembly (WASM/WASI), dan alat baris perintah (berdasarkan LLVM).
- Chibicc - Kompiler C kecil lain yang mengimplementasikan sebagian besar fitur C11.
- RVCC-Kompiler C bootstrap untuk 32-bit RISC-V dan ARM ISAS (menghasilkan binari Linux Elf yang dapat dieksekusi untuk RV32IM dan ARMV7).
Tidak dikategorikan
- Apache Nuttx Apps - Kumpulan alat, cangkang, utilitas jaringan, perpustakaan, penerjemah dan dapat digunakan dengan NUTTX RTOS.
- MODM - Generator Perpustakaan Tertanam C ++ 20 untuk Mikrokontroler AVR, SAM dan ARM Cortex -M (didukung 3534 perangkat).
- Cembbed - Utilitas kecil untuk menanamkan file di header C.
- Incbin-Perpustakaan satu header untuk file biner dan tekstual kompilasi-waktu.
- WTX - Satu set alat berorientasi web.
Berkontribusi
- Kontribusi Anda selalu diterima! Harap baca Pedoman Kontribusi terlebih dahulu.
Catatan kaki
Silakan ikuti root-repo ini untuk pembaruan terakhir.