Ressources intégrées impressionnantes pour les développeurs
Liste impressionnante de sources et de LIB pour le développement de systèmes intégrés
La mise en œuvre des sources et des LIB dans cette liste est spécifiquement adaptée aux systèmes embarqués liés aux ressources (basse mémoire et faible puissance) comme les microcontrôleurs 8 bits, 16 bits et 32 bits.
AVERTISSEMENT Cette liste ne couvre aucun sujet lié à Linux (comme la plate-forme Raspberry Pi ou tout autre SBCS (ordinateur à carte unique)).
URL permanente à cette liste: https://github.com/idoka/awesome-embedded-software
Contenu
- Commun
- Mémoire
- Gestion de la mémoire
- Tampons
- Tampon à anneau
- Fifo
- Stockage
- Système de fichiers
- Bases de données
- Mémoire de la mémoire
- Protocoles
- Protocoles radiofréquences
- Protocoles de réseau
- Serveur Web
- MQTT
- Analyseurs de protocole
- Informatique
- Mathématiques
- DSP et filtrage
- Compression
- AI ML
- Cv
- Cryptographie
- Général
- Cryptographie de la courbe elliptique
- Génération de nombres aléatoires
- OS
- RTOS
- Planificateur d'événements
- Interface utilisateur
- CLI
- Menu
- printf
- scanf
- Enregistrement
- Gui
- GUI éditeurs
- Font Utils
- Outils de manupulation d'images
- Matériel
- Io
- USB
- Éclair
- Bus de boîte
- Autres
- Gestion des threads
- Chargeurs de démarrage
- Mises à jour du micrologiciel
- Écran tactile
- Libs de gestion du temps
- Scripts et langues intégrés
- Compilateurs
- Non classé
Commun
- Wiselib - Bibliothèque d'algorithmes génériques pour les systèmes hétérogènes, distribués et intégrés.
- util.embedded - Code de support utile pour le développement intégré.
- Bibliothèque C ++ Embedded C ++.
- Bibliothèques intégrées pour logiciels intégrés (principalement pour STM32).
- ETLCPP - bibliothèque de modèles embarquée où l'utilisateur peut déclarer la taille, ou la taille maximale de tout objet à l'avance.
- EFLL - La bibliothèque Logic Fuzzy Embedded est une bibliothèque standard pour les systèmes intégrés.
- Collection des extraits C portables divers - Collection des extraits C Portables divers.
- SC - bibliothèques C et structures de données portables et autonomes (C99).
- MicrotBX - boîte à outils de microcontrôleur open source composée de composants logiciels généralement nécessaires dans les applications logicielles intégrées. MicrotBX est écrit dans le langage de programmation C (C99) avec la conformité MISRA à l'esprit.
- UMLIBC - Une libc à os nu pour les systèmes contraints de la mémoire.
- µCLIBC-NG - bibliothèque C intégrée.
- LIBC de l'art intégré - une implémentation de bibliothèque standard C dépouillée ciblée pour les systèmes embarqués basés sur des microcontrôleurs. Ensemble réduit de fonctionnalités (en raison de la nature intégrée). Choisi pour la portabilité et le débat rapide.
- Bibliothèque Hwlib - C ++ OO Micro-contrôleur pour la programmation proche des logiciels.
- Bibliothèque de modèles de conteneur CTL - C. Il y a une bibliothèque de conteneurs de type compilation rapide, de type de type, uniquement, de type modèle pour ISO C99 / C11.
- FSMLANG - État Machine Description Langue avec C Générateur de langage C. Prend en charge les machines plates et hiérarchiques et le sous-système d'événements.
Mémoire
Gestion de la mémoire
- LibMemory - Bibliothèque de gestion de la mémoire avec implémentations pour malloc (), free () et autres fonctions de gestion de mémoire utiles.
- LWMEM - Bibliothèque de gestion de mémoire dynamique légère pour les systèmes intégrés avec des contraintes de mémoire. Il implémente les fonctions malloc, calloc, realloc et libres.
- UMM_MALLOC - Gestionnaire de mémoire pour les petits microprocesseurs (ish).
- O1HEAP - Un allocateur de mémoire constante de complexité constante très déterministe conçu pour les systèmes intégrés à haute intégrité en temps réel.
Tampons
- Implémentation des tampons de protocole EmbeddedProto - C ++ spécifiquement adaptés aux microcontrôleurs ARM Cortex-M. Il est petit, fiable et facile à utiliser.
- Protobuf-Embedded-C - Générateur de tampons de protocole pour les applications intégrées contraitées de ressources écrites dans le langage de programmation C.
Tampon à anneau
- LWRB - Bibliothèque de tampon d'anneau générique léger.
- Ringbuffer - Bibliothèque de file d'attente de tampon interrompue simple interruption (circulaire) pour plates-formes intégrées.
- LFBB - tampon bipartite sans verrouillage, une variante du tampon d'anneau qui peut toujours fournir un espace continu à l'intérieur du tampon pour lire, écrire ou modifier les données en place.
Fifo
- FIFOFAST - Un FIFO générique rapide pour MCUS.
Stockage
Système de fichiers
- LWEXT4 - Une bibliothèque de systèmes de fichiers ext2 / ext3 / ext4 pour les microcontrôleurs.
- FATFS - Implémentation du système de fichiers FAT.
- NIVEALX - Fournit un nivellement d'usure flash pour FileX et des fins autonomes.
- UFAT - Implémentation VFAT de fonctionnalité à faible mémoire.
- FAT_IO_LIB - Petite empreinte, faible dépendance, mise en œuvre du code C d'un pilote FAT16 et FAT32.
- SDFAT - bibliothèque Arduino FAT16 / FAT32 EXFAT.
- FAT32 - Système de fichiers Lighweight FAT32 Écrit en C sans dépendances tierces. Il nécessite un petit port qui fournit des fonctions pour initialiser, lire et écrire au MSD.
- Bibliothèque d'émulation EMFAT - FAT32 pour STM32F4.
- Implémentation OpenFAT - FAT Filesystem pour les processeurs intégrés.
- UC-FS - Système de fichiers embarqué compact, fiable, haute performance et fileté pour les microprocesseurs, les microcontrôleurs et les DSP. Un composant de journalisation en option fournit un fonctionnement à sécurité défaillante tout en maintenant la compatibilité des graisses.
- LittleFS - Little Stead Système de fichiers conçu pour les microcontrôleurs.
- UFFS - Système de fichiers pour les appareils NAND avec nivellement de l'usure et bonne tolérance aux défauts.
Bases de données
- FlashDB - base de données ultra-légère qui prend en charge les données de valeur clé et de série chronologique.
- Puredb - ensemble de bibliothèques portables et minuscules pour la création et la lecture de bases de données constantes.
- UNQLITE - NOSQL ENCHEDDED, MOTEUR DE DATABASE transactionnel.
- Vedis - Implémentation intégrée de redis (une bibliothèque de carreaux de données intégrée C construit avec plus de 70 commandes similaires dans le concept à redis, mais sans la couche de mise en réseau depuis que Vedis s'exécute dans le même processus de l'application hôte).
- MicrokVS - Tiny Key-Value Store pour les données de configuration persistantes sur les microcontrôleurs.
Mémoire de la mémoire
- EasyFlash - bibliothèque de mémoire flash intégrée légère.
- Flashalgo - Framework pour la création d'algorithmes de programmation Flash de style "FLM" ARM Cortex-M.
- FCB - Le tampon circulaire flash fournit une abstraction à travers laquelle vous pouvez traiter Flash comme un FIFO.
Protocoles
- NANOPB - Petit Protocole de taille de code Implémentation de Tampons dans ANSI C. Il est particulièrement adapté à une utilisation dans les microcontrôleurs, mais correspond à n'importe quel système restreint de la mémoire.
- Échange - Mécanisme de demande / réponse pour le développement intégré, en utilisant l'atomique.
- XMODEM - Bibliothèque XModem pour les systèmes intégrés, mobiles, IoT et de bureau.
- TinyFrame - Bibliothèque simple pour la construction et l'analyse des cadres de données pour les interfaces série (comme UART / RS232).
- Nanomodbus - Une bibliothèque compacte MODBUS RTU / TCP C pour les microcontrôleurs intégrés /.
- RCOBS - Le codage des cobs inversés (RCOBS) est une variante du codage de COS conçu pour permettre le codage avec un lookahead zéro.
Protocoles radiofréquences
- Radiohead - Packet Radio Library pour les microprocesseurs intégrés.
- Radiohead d'Adafruit - Packet Radio Library pour les microprocesseurs intégrés avec DOC.
Network protocols
- UIP - Très petite implémentation de la pile TCP / IP écrite par Adam Dunkels.
- LWIP - Petite implémentation indépendante de la suite de protocole TCP / IP qui a été initialement développée par Adam Dunkels. LWIP adapté à une utilisation dans des systèmes embarqués avec des dizaines de kilo-kilo-ram et de la place gratuits pour environ 40 kilobytes de ROM de code.
- HttpClient - bibliothèque client http.
- HTTPIO - Parser et générateur de réponse de demande multiplateforme autonome pour le protocole HTTP.
- PICOTCP - Pile de pile TCP / IP modulaire à petite empreinte conçue pour les systèmes intégrés et l'Internet des objets.
- RAWTCP_LIB - C Library pour la création et l'utilisation de paquets TCP / IP avec des prises de réseau brutes.
- Lrndis - Ethernet sur USB (RNDIS + LWIP).
- Cyclonetcp - Une double pile IPv4 / IPv6 dédiée aux applications embarquées. La pile est distribuée sous forme de code source ANSI C complet et hautement maintenable (exemples non inclus dans les sources de GitHub).
- StaticNet - C ++ TCP / IP et SSH Stack avec des allocations all-statiques conçues pour les applications embarquées en métal nu (pas de système de fonctionnement) avec une empreinte minimale.
Serveur Web
- Mongoose - serveur Web intégré et bibliothèque de réseautage intégrée. Il implémente les API non bloquantes axées sur les événements pour TCP, UDP, HTTP, WebSocket, MQTT.
- Libevhtp - Serveurs HTTP intégrés extrêmement rapides et sécurisés avec facilité.
- LibμHTTPD - Bibliothèque de serveur HTTP très flexible, légère et entièrement asynchrone basée sur LiBev et HTTP-PARSER.
- Sandbird - Tiny (800SLOC) EmbedDable HTTP Server écrit en C89.
MQTT
- LibemQTT 1 - bibliothèque client intégrée C pour le protocole MQTT.
- Libumqtt 2 - Library Client C MQTT C. Lightweight and Full Asynchrone Basé sur LiBev.
- Paho MQTT - C Bibliothèque client pour les systèmes intégrés.
Analyseurs de protocole
Analyseurs d'expressions régulières
- Regexp - Bibliothèque d'expressions régulières pour les systèmes embarqués.
GSM
- LWGSM - Bibliothèque pour les modules GSM SIMCOM pour communiquer avec les commandes et RTOS à partir du périphérique hôte.
- GSM_Engine - Générique à l'analyseur pour les modules basés sur des commandes.
- TINYGSM - petite bibliothèque Arduino pour les modules GSM, qui fonctionne.
GPS
- LWGPS - analyser NMEA GPS léger pour les systèmes intégrés.
- MINMEA - GPS LEGWEMPLE NMEA 0183 Bibliothèque d'analyse en Pure C.
À l'analyseur de commande
- ATAT - LIB pour le traitement des commandes personnalisées en type.
- Cat - Plain C Library pour analyser les commandes à utiliser dans les appareils hôtes.
- GZAT - Portable à la bibliothèque d'analyse de commande dans la langue C ++.
- AtParser - un MBED-OS compatible à l'analyseur de commande.
- ATCOMMANDER - Bibliothèque Portable C ++ pour envoyer des commandes et analyser leurs réponses.
- LWESP - Lightweight ESP at Commandes Parser Library pour communiquer avec le module Wi-Fi ESP8266 ou ESP32 à l'aide de commandes.
Divers protocoles
- LWPKT - Structure du protocole de paquets légers pour la communication multi-appareils axée sur le RS-485.
- LWOW - Bibliothèque de protocole de Wire Lightweight Optimisé pour le matériel UART sur les systèmes embarqués.
- Panstamp-Swap - Protocole abstrait sans fil simple pour toute radio ISM existante.
- PANSTAMP-USWAP - Micro Swap Stack for MCU est connecté via UART.
- MIN - MICROCONTROLLER INTERConnect Network Protocol version 2.0.
- LIBCOAP - C Implémentation d'une application légère-protocole pour les appareils qui ont limité leurs ressources telles que la puissance de calcul, la gamme RF, la mémoire, la bande passante ou les tailles de paquets de réseau. Ce protocole, COAP, est standardisé par l'IETF en tant que RFC 7252.
Informatique
Mathématiques
- Liquid-FPM - bibliothèque mathématique à virgule fixe radio définie par logiciel pour le traitement du signal intégré.
- FPM - bibliothèque mathématique à point fixe C ++ C ++.
- Eigen - Bibliothèque de modèles C ++ pour l'algèbre linéaire: matrices, vecteurs, solveurs numériques et algorithmes connexes.
DSP et filtrage
- Liquide-DSP - bibliothèque de traitement du signal numérique pour les radios définies par logiciel.
- Minfft - bibliothèque de transformés de Fourier discrète petite et rapide.
- IIR1 - DSP IIR Bibliothèque de filtre en temps réel écrit en C ++.
- KALMAN-CLIB - Microcontrôleur a ciblé la mise en œuvre du filtre Kalman naïf dans Pure C.
- Libdspl - bibliothèque algorithme de traitement du signal numérique multiplateforme, écrite en langue C.
- PocketFFT - Implémentation fortement modifiée de FFTPACK.
- Kiss FFT - Fourier rapide de Radix mixte basé sur le principe, "Gardez les choses simples, stupides".
- CMSIS-DSP - bibliothèque de calcul intégrée pour Cortex-M et Cortex-A.
- Siglib - Bibliothèque numérique de traitement du signal et d'apprentissage automatique (X86, Cortex-A et Cortex-M, RISC-V, DSP de Ti, ADI, etc.).
- LSP-DSP-LIB - La bibliothèque DSP pour le traitement du signal numérique fournit un ensemble de fonctions qui effectuent un calcul optimisé SIMD sur plusieurs architectures matérielles. Toutes les fonctions fonctionnent actuellement sur les numéros à point flottant à un seul point de précision IEEE-754.
Compression
- HeatShrink - Bibliothèque de compression des données pour les systèmes intégrés / en temps réel.
- Bibliothèque Shoco - C pour comprimer et décompresser les chaînes courtes. Il est très rapide et facile à utiliser. Le modèle de compression par défaut est optimisé pour les mots anglais, mais vous pouvez générer votre propre modèle de compression.
- SMAZ - Compression pour les très petites cordes.
- La bibliothèque de compression ECL - ECLED n'est pas seulement pour intégrer, elle est principalement orientée pour les petites données et a des modes spéciaux à basse mémoire pour des environnements restreints.
- UNISHOX2 - Encodeur hybride pour les chaînes Unicode courtes (Unishox fournit la meilleure compression pour le texte court et ne pas être comparé à l'algorithme de compression à usage général comme LZ4, Snappy, LZMA, Brottli et ZSTD).
- TCOBS - COMPRESSION DE MESSAGES COURTS AVEC LES COBS FRAMING Utilisation d'un codage implicite de longueur de course, optimisé pour les données contenant statistiquement un peu plus 0 et FF octets dans une ligne, car les données portent souvent des nombres 16, 32 ou 64 bits avec de petites valeurs.
AI ML
Intelligence artificielle et apprentissage automatique
- Cranium - Bibliothèque de réseaux neuronaux artificiels portables, en tête uniquement, écrite en vanille C99.
- μtensor - Bibliothèque d'inférence TinyMl AI.
- FIDO - Bibliothèque d'apprentissage automatique C ++ Lightweight pour l'électronique et la robotique intégrées.
- NNOM - Le réseau neuronal sur le microcontrôleur (NNOM) est une bibliothèque de réseau neuronal de haut niveau spécifiquement pour les microcontrôleurs.
- Bibliothèque optimisée Caffepresso pour l'apprentissage en profondeur sur les plates-formes basées sur l'accélérateur intégré.
- Libonnx - moteur d'inférence C99 Pure C99 léger et portable pour les périphériques intégrés avec support d'accélération matérielle.
- TinyMaix - une bibliothèque de réseaux neuronaux inférieure minuscule spécifiquement pour les microcontrôleurs (TinyML). Conçu pour suivre la règle: facile à utiliser> Portable> Speed> Espace.
Cv
Vision par ordinateur
- Bibliothèque de vision informatique et d'apprentissage machine intégrée intégrée (CPU Optimized & IoT capable).
- QR-IMAGE-ENDDED - FRAIT DE LIBRARY QR pour les systèmes embarqués.
Cryptographie
Général
- Trussed - Façon minimale et modulaire d'écrire des applications cryptographiques sur les plates-formes de microcontrôleur (rouille).
- WOLFSSH - Bibliothèque Client et Server SSHV2 légère écrite dans ANSI C et ciblée pour les environnements intégrés, RTOS et limités de ressources - principalement en raison de sa petite taille, de sa vitesse et de son ensemble de fonctionnalités.
- Libhydrogène - bibliothèque de cryptographie légère, sécurisée et facile à utiliser, adaptée aux environnements limités.
- Krypton - bibliothèque TLS / DTLS embarquée, sous-ensemble OpenSSL de source et binaire compatible.
- WolftPM - bibliothèque TPM 2.0 hautement portable, conçue pour une utilisation intégrée.
- MBEDTLS - Open source, portable, facile à utiliser, lisible et flexible la bibliothèque TLS et implémentation de référence de l'API de cryptographie PSA.
- ? Liblithium - Bibliothèque de cryptographie légère qui est portable par conception. Il ne nécessite que C99 standard et ne suppose pas d'adressage 8 bits, ce qui le rend adapté à une utilisation sur certaines architectures DSP ainsi que sur les architectures grand public.
- ? Trezor-Crypto - Algorithmes de cryptographie fortement optimisés pour les appareils intégrés.
- Poly1305-Donna - Implémentations d'un code d'authentification rapide (8 bits, 16 bits, 32 bits et 64 bits Versions multiples).
- Arduinolibs - Arduino Cryptography Library.
- TLSE - Implémentation TLS 1.2 / 1.3 Single C Fichier, en utilisant TomCrypt comme bibliothèque Crypto.
- Libtomcrypt - boîte à outils cryptographique assez complète, modulaire et portable qui offre aux développeurs une vaste gamme de chiffres de blocs de blocs publiés bien connus, de fonctions de hachage unidirectionnelles, de modes de chaînage, de générateurs de nombres pseudo-aléatoires, de cryptographie par clé publique et d'une pléthore d'autres routines.
- Monocypher - Facile à utiliser, facile à déployer et à la bibliothèque de cryptographie vérifiable écrite en portable C.
- Minicrypt - Library of Crypto Primitives for Embedded Systems.
- Tinycrypt - La bibliothèque d'algorithmes cryptographiques fournit une implémentation pour les dispositifs contraints d'un ensemble minimal de primitives de cryptographie standard.
- Tiny-AES-C - Small portable AES128 / 192/256 en C.
- µAES - Implémentation compatible légère, hautement flexible, portable et compatible ANSI-C des modes de chiffrement AES et de chiffre d'affaires.
- Cycloncrypto - Une boîte à outils cryptographique conçue pour une utilisation dans les systèmes embarqués. Il fournit un ensemble complet de primitives cryptographiques (fonctions de hachage, des chiffres de flux et de bloc, la cryptographie de clé publique) qui peut être utilisée pour ajouter des fonctionnalités de sécurité à votre application intégrée.
Cryptographie de la courbe elliptique
- SALTY - ED25519 Signatures avec optimisations d'assemblage pour Cortex-M4 et Cortex-M33.
- Micro-ECC - ECDH et ECDSA pour les processeurs 8 bits, 32 bits et 64 bits.
- Libuecc - Très petit bibliothèque de cryptographie de courbe elliptique générique compatible avec ED25519.
- C25519 et ED25519 - Curve25519 et ED25519 pour les systèmes à basse mémoire (Curve25519 La multiplication scalaire utilise moins d'un demi-Ko d'utilisation de pile de pointe).
Génération de nombres aléatoires
- PCG-C-Basic - Le code fournit une implémentation minimale d'un membre de la famille PCG de générateurs de nombres aléatoires, qui sont rapides, statistiquement excellents et offrent un certain nombre de fonctionnalités utiles.
- PCG-C - Code fournit une implémentation de la famille PCG de générateurs de nombres aléatoires, qui sont rapides, statistiquement excellents et offrent un certain nombre de fonctionnalités utiles.
OS
- Citrus - Système d'exploitation Bare Metal ARM® Cortex®-A5.
- Vanille - Système d'exploitation Bare Metal ARM® Cortex®-M7.
- ? Chaos - Système d'exploitation Bare Multicore ARM® Cortex®-A basé sur une architecture de micro-nés.
- LK Kernel - Le système d'exploitation intégré au petit noyau est le noyau SMP-Aware conçu pour les petits systèmes portés sur une variété de plates-formes et d'architectures CPU.
- Quarkts - OS pour les applications intégrées qui prennent en charge la planification coopérative prioritaire, le contrôle du temps, les primitives de communication inter-tâches, les machines d'État hiérarchiques et les coroutines.
- Micro-Ros - Micro-Ros met ROS 2 sur les microcontrôleurs.
RTOS
- ? Freertos ™ - Freertos.
- Zephyr - RTOS de nouvelle génération, évolutives, optimisées et sécurisées pour plusieurs architectures matérielles.
- Apache Nuttx - Apache Nuttx est un système d'exploitation embarqué en temps réel et en temps réel (RTOS).
- SCMRTOS - Time système d'exploitation préemptif en temps réel destiné à être utilisé avec des microcontrôleurs à puce unique. SCMRTOS est capable de fonctionner sur de minuscules UC avec une quantité aussi petite de RAM que 512 octets. Le RTOS est écrit sur C ++ et prend en charge diverses plates-formes.
- Chibios / RT - Système d'exploitation compact et rapide en temps réel prenant en charge plusieurs architectures conçues pour les applications intégrées sur des microcontrôleurs de 8, 16 et 32 bits.
- Azure RTOS ThreadX - Système d'exploitation avancé en temps réel (RTOS) conçu spécifiquement pour des applications profondément intégrées.
- ECOS - Système d'exploitation en temps réel destiné aux applications intégrées (source fermée) .
- EMBOX - RTOS configurables conçus pour les systèmes contraints et intégrés des ressources. Embox Main Idea est d'utiliser le logiciel Linux sans Linux.
- RIOT - Système d'exploitation multi-lancement en temps réel qui prend en charge une gamme d'appareils qui se trouvent généralement dans l'Internet des objets (IoT): microcontrôleurs 8 bits, 16 bits et 32 bits. L'émeute est basée sur les principes de conception suivants: efficacité énergétique, capacités en temps réel, petite empreinte mémoire, modularité et accès API uniforme, indépendamment du matériel sous-jacent (cette API offre une conformité POSIX partielle).
- ARM MBED OS - Système d'exploitation de plate-forme conçu pour l'Internet des objets. Il comprend toutes les fonctionnalités dont vous avez besoin pour développer un produit connecté basé sur un microcontrôleur ARM Cortex-M, y compris la sécurité, la connectivité, un RTOS et des pilotes pour les capteurs et les appareils d'E / S.
- RT-thread - RT-thread est né en 2006, il s'agit d'un système d'exploitation en temps réel open source, neutre et communautaire (RTOS). RT-thread a une version standard et une version nano. Pour les systèmes de microcontrôleur limité aux ressources (MCU), la version nano-noyau qui ne nécessite que des ressources de mémoire RAM de 3 Ko et de 1,2 kb peut être adaptée avec des outils faciles à utiliser; Et pour les appareils IoT riches en ressources, RT-Thread peut utiliser l'outil de gestion des packages logiciels en ligne, ainsi que des outils de configuration du système, pour atteindre une coupe modulaire intuitive et rapide, importent de riches packages de logiciels riches, atteignant ainsi des fonctions complexes telles que l'interface graphique d'Android et les effets de glissement tactile, les effets d'interaction vocale intelligente, etc.
- DISTORTOS - RTOS C ++ orientés objet pour les microcontrôleurs.
- R3-OS - RTOS statiques expérimentales (μitron-esque) pour des systèmes profondément intégrés, testant la limite de la const de Rust et des génériques (rouille) .
- Tock Embedded OS - Embedded operating system designed for running multiple concurrent, mutually distrustful applications on low-memory and low-power microcontrollers (Rust) .
- Dandelion - Microkernel Système d'exploitation en temps réel en rouille.
- Muditaos - Système d'exploitation mobile basé sur Freertos optimisé pour les écrans à encre E - développés pour le téléphone minimaliste pur mudita.
- µC / OS-II - grains en temps réel préemptif, hautement portable et évolutif. Conçu pour la facilité d'utilisation sur un grand nombre d'architectures de CPU.
- µC / OS-III - Noyau en temps réel préemptif, hautement portable et évolutif. Conçu pour la facilité d'utilisation sur un grand nombre d'architectures de CPU.
- QP / C - Framework Embedded en temps réel / RTOS pour les systèmes embarqués basés sur des objets actifs (acteurs) et des machines d'état hiérarchiques (FUSA, MISRA-C 2023 Conformité).
- Assez OK RTOS - Tickless, minimal, 500 lignes de code, 7 fonctions.
Planificateur d'événements
- UEVLOOP - boucle d'événements rapides et légère pour les plates-formes intégrées.
- LWEVT - Système de gestion d'événements légers pour les systèmes intégrés.
- Framework asynchrone - asynchrone en C pour les systèmes où une faible utilisation de la mémoire est importante.
- ProtothReads - Fournir une exécution de code linéaire pour les systèmes pilotés par des événements implémentés en C conçus pour des systèmes fortement contraints de la mémoire, tels que de petits systèmes embarqués ou des nœuds de réseau de capteurs sans fil.
- EventOS - Système basé sur des événements conçu pour le cadre Arduino.
- VSF - Versaloon Software Framework - un minuscule cadre logiciel incrémental de préemption des événements pour les systèmes embarqués.
Interface utilisateur
CLI
- CLI - CLI (interface de ligne de commande) Build en pure C. Pure conçu pour MCU, support Block / Mode non block Entrée.
- Terminal - Interface de ligne de commande pour les microcontrôleurs. Les paramètres de terminal flexibles vous permettent de l'intégrer avec n'importe quel microcontrôleur, sans trop d'effort.
- SerialMenu - Bibliothèque Arduino pour créer facilement des menus sur la console série.
- Terminal-Server - Terminal Server pour MCU.
- Microsh - Shell pour petits appareils intégrés.
- CMD-L - gestionnaire de lignes de commande pour les appareils intégrés.
- CLI intégré-CLI - CLI à tête avec histoire et assurance automatique pour les systèmes intégrés.
- MicroShell - Implémentation C purement légère légère de la coque virtuelle, compatible avec le terminal VT100. Prise en charge l'arbre racine, les chemins de montage d'exécution, les commandes globales et bien plus encore.
- Microrl - Micro Read Line Library pour les petits appareils intégrés avec support VT100 de base.
Menu
- ProMenu - Bibliothèque de menu d'application générique avancée. La bibliothèque ProMenu est utilisée pour implémenter rapidement les menus utilisateur avancés. Il prend en charge la nidification, les paramètres numériques, les paramètres de texte, les valeurs et les événements booléens. La bibliothèque est implémentée en C ++ avec le port Arduino Back-In, mais il est facile de porter une architecture différente.
- BBMENU - Menu CLI portable simple pour les tâches Misc (il est basé sur des menus texte, facilement défini dans un fichier).
- Micromenu-V2 - Tiny Bibliothèque de menu orientée texte en C pour une utilisation intégrée.
printf
- LWPRINTF - Bibliothèque PRINTF légère optimisée pour les systèmes intégrés.
- Embedded_printf - version intégrée de la célèbre fonction "printf ()". L'idée est de créer une bibliothèque simple et efficace pour répondre à certains besoins communs dans les systèmes intégrés.
- Tinyprintf - Tiny Printf et Sprintf Library pour de petits systèmes embarqués.
- xprintf-fp - printf pour le système embarqué avec support de points flottants.
- Xprintf-io - Bibliothèque d'E / S de chaîne compacte. Il est idéal pour les minuscules microcontrôleurs qui ont une mémoire de programme insuffisante pour la fonction PRINTF ordinaire. L'utilisation recommandée est: Écrire des chaînes formatées dans l'écran LCD ou UART et pour la console de débogage / maintenance.
- XPRINTF - Implémentation de formatage Fprintf () complète, adaptée à une utilisation intégrée.
- Tiny-Printf - Implémentation de printf minuscule, rapide, non dépendante et entièrement chargée pour les systèmes embarqués. Suite de test étendue passant.
- Tiny-Printf New - Fork amélioré et entretenu de
tiny-printf . Minuscule, rapide (ish), imprimement autonome et entièrement chargé, sprinf etc. - MINI-PRIMTF - Implémentation minimale printf () pour les projets embarqués.
- Nanoprintf - la plus petite implémentation publique PRINTF pour son ensemble de fonctionnalités.
- FMT - Bibliothèque de formatage moderne offrant une alternative rapide et sûre à C STdio et C ++ Iostreams.
- EMIO - Très petite empreinte binaire std :: format comme formatage à l'aide de C ++ 20.
scanf
- ScanF - Implémentation portable des fonctions d'entrée ScanF dans C.
- ft_scanf - Scanf simple% s% c% d.
Enregistrement
- Log intégré - petite et belle bibliothèque de journaux intégrés pour MCU.
- EasyLogger - Ultra-Lightweight (ROM <1,6k, RAM <0,3K), bibliothèque logarithmique C / C ++ haute performance.
- Trice - Super et minuscule périphérique intégré C code de trace de type Crintf (fonctionne également à l'intérieur des interruptions) et la journalisation PC en temps réel (visualisation de l'ID de trace).
- Embedded-diagnostic-logateur - Cadre d'enregistrement léger pour les petits projets basés sur des microcontrôleurs. Transfert de chaînes basées sur le journal et les jetons à plusieurs niveaux.
- SPDLOG - Très rapide, en tête uniquement / compilée, bibliothèque de journalisation C ++.
- Le système ELOG - Log est pensé pour les systèmes intégrés avec une utilisation des ressources minimales. Le système de journal est conçu pour minimiser la composition de la mémoire en flash ou en RAM, activez un tampon Loggin In-Ram EFICIEL avec un stockage très efficace.
Gui
- LVGL - GUI intégrée puissante et facile à utiliser avec de nombreux widgets, effets visuels avancés (opacité, antialiasage, animations) et exigences de mémoire faible (RAM 16K, Flash 64K).
- EasyGui - EasyGui pour les systèmes intégrés (hautement optimisés pour STM32).
- TouchGFX - outil C ++ graphique convivial intégré comme un outil gratuit dans l'écosystème STM32.
- EGUI - une bibliothèque graphique embarquée EGUI.
- ESLOWGRAPHICS - Bibliothèque graphique logicielle de bas niveau par ErrorSoft (ESLGL).
- FTK - bibliothèque GUI pour le système intégré.
- U8Glib - bibliothèque graphique universelle pour les systèmes intégrés 8 bits.
- ? U8G2 - bibliothèque U8Glib pour les écrans monochromes, version 2.
- SGFX - Bibliothèque intégrée légère pour les écrans et les écrans tactiles fournissant tout ce qui est nécessaire pour construire une interface graphique intégrée entièrement en vedette.
- GUIX - Fournit une bibliothèque complete et intégrée d'interface utilisateur graphique (GUI), en facilitant la création et la maintenance de tous les éléments graphiques nécessaires à votre appareil.
- Guilib - bibliothèque GUI pour les systèmes intégrés.
- HMI_LIBRARY - Interface de machine humaine adaptée au système embarqué.
- Afgui - bibliothèque GUI intégrée.
- MakiseGui - Graphiques et bibliothèque d'interface graphique pour les systèmes intégrés.
- EMGUI - Bibliothèque simple C UI pour les plates-formes intégrées.
- Hagl - bibliothèque graphique agnostique matérielle légère pour les appareils intégrés. Il prend en charge les primitives géométriques de base, les bitmaps, le blitage, les polices de largeur fixe. La bibliothèque essaie de rester légère mais cible des micropuces raisonnablement puissantes telles que ESP32. Il n'y a pas d'allocation dynamique.
- Bibliothèque graphique 2D Embedded-Graphics qui se concentre sur les périphériques embarqués contraints de la mémoire pour dessiner des graphiques sans utiliser de tampons (rouille).
- LOVYANGFX - Affichage (LCD / OLED / EPD) Bibliothèque graphique (pour ESP32 SPI, I2C, 8BitParalall / ESP8266 SPI, I2C / RP2040 SPI / ATSAMD51 SPI et plus).
- Ugui (µui) - une bibliothèque graphique. Il prend en charge la couleur, l'éducation des gris, le monochrome et plusieurs écrans, l'écran tactile, les fenêtres et les objets, les primitives géométriques de base, les polices, la console. Il n'y a pas d'allocation et de mémoire dynamiques requises pour le tampon d'écran. Documentation disponible sur le site Web du développeur.
GUI éditeurs
- LV_GUI_DESIGNER - Drag-and-drop, simple GUI Designer construit avec LittleVGL.
- Walv - en ligne, Wysiwyg GUI Designer pour Littlevgl. Pross-plateform pris en charge (même Android et iOS).
Font Utils
- Bitmap-OSD-FONT - Une police bitmap 'C' pour l'affichage de l'écran.
- TTF2Mesh - Bibliothèque pour Truetype Font Tessellation. Permet de convertir les glyphes de polices en objets maillés sans rasterisation.
- SFAM_GEnerator - Scripts simples pour générer des polices de bits pour STM32, AVR, Arduino ou d'autres MCU.
- MCUFONT - Une bibliothèque de rendu de police pour les microcontrôleurs.
Polices et icônes
- PICON - Pico-Icon Set avec ligature piratable (conçu sur une grille à 8: être lisible à 8px 16px 24px 32px 48px).
Outils de manupulation d'images
- LCD-IMAGE-CONVERTER - outil pour créer des bitmaps et des polices pour les applications intégrées; Vous permet de créer des bitmaps et des polices et de les transformer en format source "C" pour les applications intégrées.
Matériel
- Bibliothèque de pilotes intégrés intégrés pour divers périphériques.
Io
- FASTIO - GPIO FAST FORKED à partir de http://os.mbed.com/users/sissors/code/fastio/.
USB
- TinyUSB - pile USB multiplateforme pour le système embarqué.
- libusb_stm32 - pile de périphérique USB léger pour les microcontrôleurs STM32.
- Cherryusb - Hôte USB USB minuscule, beau et portable pour le système intégré avec USB.
Éclair
- SFUD - Serial Flash Universal Driver (utilisant la bibliothèque de pilotes universels Flash (SPI) Flash (SPI) de Jedec).
Bus de boîte
- LibCanard - Implémentation compacte du protocole UAVCAN / CAN en C pour les systèmes embarqués en temps réel à haute intégrité.
- Canbus-Message - CAN Message Assembly and Disassembly Library for Teensy & STM32.
- Canboot - peut Bootloader pour MCU (actuellement les MCU LPC176X, STM32 et RP2040 sont pris en charge).
Autres
Gestion des threads
- C-thread-pool - Pool de fil minimal mais puissant dans ANSI C.
Chargeurs de démarrage
- McUboot - Sécurochez le démarrage pour les microcontrôleurs 32 bits.
- OpenBLT - Open Source Bootloader pour STM32, XMC, HCS12 et d'autres cibles de microcontrôleur. Il prend en charge les interfaces de communication telles que: RS232, CAN, USB, TCP / IP et il est expédié avec l'outil PC Microboot facile à utiliser pour initier et surveiller la mise à jour du micrologiciel. La réalisation des mises à jour du micrologiciel à partir d'une carte SD est également prise en charge.
- Tinyuf2 - chargeur de démarrage basé sur TinyUSB pour les appareils intégrés tels que ESP32, STM32 et IMX RT10XX.
- Wolfboot - Portable, OS-Amnostic, Secure Bootloader pour les microcontrôleurs, prenant en charge l'authentification du micrologiciel et les mécanismes de mise à jour du micrologiciel.
Mises à jour du micrologiciel
- UF2 - Spécification du format de clignotement USB pour les microcontrôleurs clignotants sur MSC (classe de stockage de masse; AKE ROVABLE STODE DRIDE).
- SWUPDATE - Mise à jour logicielle pour les périphériques Linux intégrés pour mettre à jour le système dans le champ. Swupdate prend en charge les mises à jour locales et OTA, les stratégies de mise à jour multiples et elle est conçue avec la sécurité à l'esprit.
Écran tactile
- TSLIB - Bibliothèque d'accès à écran tactile.
Libs de gestion du temps
- TIMELIB - Bibliothèque de gestion du temps pour les appareils intégrés.
- μTZ - Bibliothèque de fuseau horaire pour de minuscules systèmes intégrés.
Scripts et langues intégrés
- Little - un petit langage rapide et facilement intégré implémenté dans un seul fichier .c.
Compilateurs
- 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) et Stmicroelectronics STM8).
- TCC - Tiny C compilateur (~ 100KB pour l'exécutable x86 TCC, y compris le préprocesseur C, compilateur C, assembleur et liaison).
- LCC - compilateur ANSI C recitableable (fourche pour ULP dans ESP32).
- PCC - Compilateur C portable (miroir).
- Tinygo - GO Compiler pour les petites choses: microcontrôleurs, webassembly (wasm / wasi) et outils de ligne de commande (basé sur LLVM).
- CHIBICC - Encore un autre petit compilateur C qui implémente la plupart des caractéristiques C11.
- RVCC - compilateur C bootstrapé pour RISC-V et ARM RISC-V 32 bits (génère des binaires ELF Linux exécutables pour RV32IM et ARMV7).
Non classé
- Apache NuttX Apps - Collection of tools, shells, network utilities, libraries, interpreters and can be used with the NuttX RTOS.
- MODM - Générateur de bibliothèque C ++ 20 embarqué Barebone pour les microcontrôleurs AVR, SAM et ARM Cortex-M (appareils 3534 pris en charge).
- CEMBED - Petite utilité pour intégrer des fichiers dans un en-tête C.
- Incbin - Bibliothèque à tête pour compiler des fichiers binaires et textuels de compilation.
- WTX - Un ensemble d'outils orientés Web.
Contributif
- Vos contributions sont toujours les bienvenues! Veuillez d'abord lire les directives de contribution.
Notes de bas de page
Veuillez suivre ce Root-Repo pour les dernières mises à jour.