Impresionantes recursos integrados para desarrolladores
Impresionante lista de fuentes y libs para el desarrollo de sistemas integrados
La implementación de fuentes y LIB en esta lista es específicamente adecuada para sistemas integrados con recursos limitados (baja memoria y baja potencia) como microcontroladores de 8 bits, 16 y 32 bits.
Advertencia Esta lista no cubre ningún tema relacionado con Linux (como la plataforma Raspberry Pi o cualquier otro SBC (computadora de una sola computadora)).
URL permanente a esta lista: https://github.com/idoka/awesome-embedded-software
Contenido
- Común
- Memoria
- Gestión de la memoria
- Buffers
- Búfer de anillo
- FIFO
- Almacenamiento
- Sistemas de archivos
- Bases de datos
- Memoria flash
- Protocolos
- Protocolos de radiofrecuencia
- Protocolos de red
- Servidor web
- Mqtt
- Analgésicos
- Proceso de datos
- Matemáticas
- DSP y filtrado
- Compresión
- Ai ml
- CV
- Criptografía
- General
- Criptografía de curva elíptica
- Generación de números aleatorios
- Sistema operativo
- RTOS
- Planificador basado en eventos
- Interfaz de usuario
- CLI
- Menú
- printf
- escaneo
- Explotación florestal
- Guía
- Editores de GUI
- Font Utils
- Herramientas de manupulación de imágenes
- Hardware
- Otros
- Gestión de hilos
- Cargador de arranque
- Actualizaciones de firmware
- Pantalla táctil
- Libra de gestión del tiempo
- Scripts e idiomas integrables
- Compiladores
- Sin categoría
Común
- Wiselib - Biblioteca de algoritmos genéricos para sistemas heterogéneos, distribuidos e integrados.
- Util.embedded: código de soporte útil para el desarrollo integrado.
- EMBXX - Biblioteca C ++ incrustada.
- Libras incrustadas: bibliotecas para software integrado (principalmente para STM32).
- ETLCPP - Biblioteca de plantillas integradas donde el usuario puede declarar el tamaño o el tamaño máximo de cualquier objeto por adelantado.
- EFLL: la biblioteca de lógica difusa integrada es una biblioteca estándar para sistemas integrados.
- Colección de fragmentos de C portátiles varios - Colección de fragmentos de C portátiles misceláneos.
- SC - Bibliotecas y estructuras de datos de C Portables, independientes (C99).
- MicroTBX: caja de herramientas de microcontrolador de código abierto que consta de componentes de software que comúnmente se necesitan en aplicaciones de software integradas. MicroTBX está escrito en el lenguaje de programación C (C99) con el cumplimiento de Misra en mente.
- UMLIBC: un LIBC básico para los sistemas restringidos de memoria.
- µCLIBC -NG - Biblioteca C incrustada.
- Libc de Artistry integrado: una implementación de biblioteca estándar de C despojada dirigida a sistemas integrados basados en microcontroladores. Conjunto reducido de funcionalidad (debido a la naturaleza integrada). Elegido para portabilidad y traza rápida.
- HWLIB-Biblioteca de microcontrolador C ++ OO para programación cercana al hardware.
- Biblioteca de plantilla de contenedores CTL - C. Hay una compilación rápida, tipo seguro, solo encabezado, biblioteca de contenedores en forma de plantilla para ISO C99/C11.
- FSMLANG - Lenguaje de descripción de la máquina de estado con generador de lenguaje C. Admite máquinas planas y jerárquicas y subsistema de eventos.
Memoria
Gestión de la memoria
- LibMemory - Biblioteca de gestión de memoria con implementaciones para MALLOC (), Free () y otras funciones útiles de gestión de memoria.
- LWMEM - Biblioteca de administrador de memoria dinámica ligera para sistemas integrados con restricciones de memoria. Implementa las funciones MALLOC, CALLOC, REALELOC y LIBRE.
- UMM_MALLOC - Administrador de memoria para pequeños microprocesadores.
- O1HEAP: un asignador de memoria de complejidad constante altamente determinista diseñado para sistemas integrados de alta integridad en tiempo real.
Buffers
- Implementación de protocolo de protocolo C ++ incrustado específicamente adecuada para microcontroladores de corteza M ARM. Es pequeño, confiable y fácil de usar.
- ProtoBuf-Embedded-C-Generador de buffers de protocolo para aplicaciones integradas limitadas por recursos escritos en el lenguaje de programación C.
Búfer de anillo
- LWRB - Biblioteca de administrador de búfer de anillo genérico ligero.
- RingBuffer - Biblioteca de cola de tampón seguro de interrupción simple (circular) para plataformas integradas.
- LFBB: búfer bipartito sin bloqueo, una variante del búfer de anillo que siempre puede proporcionar un espacio contigo dentro del búfer para leer, escribir o modificar los datos en el lugar.
FIFO
- FIFOFAST - Un FIFO rápido y genérico para MCU.
Almacenamiento
Sistemas de archivos
- LWEXT4: una biblioteca de sistema de archivos ext2/ext3/ext4 para microcontroladores.
- FATFS - Implementación del sistema de archivos FAT.
- Levelx: proporciona nivelación de desgaste flash para fines FILEX y independientes.
- UFAT-Implementación de VFAT de características de baja memoria.
- FAT_IO_LIB - huella pequeña, baja dependencia, implementación del código C de un controlador FAT16 y FAT32.
- SDFAT - Biblioteca Arduino FAT16/FAT32 EXFAT.
- FAT32 - Sistema de archivos FAT32 de peso ligero escrito en C sin dependencias de terceros. Requiere un pequeño puerto que proporcione funciones para inicializar, leer y escribir en el MSD.
- EMFAT - Biblioteca de emulación FAT32 para STM32F4.
- OpenFAT - Implementación del sistema de archivos FAT para procesadores integrados.
- UC-FS: sistema de archivos integrado compacto, confiable, de alto rendimiento y seguro de hilo para microprocesadores, microcontroladores y DSP. Un componente de diario opcional proporciona una operación a prueba de fallas mientras se mantiene la compatibilidad de grasa.
- LittleFS: pequeño sistema de archivos a prueba de fallas diseñado para microcontroladores.
- UFFS - Sistema de archivos para dispositivos NAND con nivelación de desgaste y buena tolerancia a fallas.
Bases de datos
- FlashDB-Base de datos de peso ultra ligero que admite datos clave de valor y series de tiempo.
- PUREDB - Conjunto portátil y pequeño de bibliotecas para crear y leer bases de datos constantes.
- UNQLITE - NOSQL integrado, motor de base de datos transaccional.
- VEDIS - Implementación integrada de Redis (una biblioteca de DataStore C integrable construida con más de 70 comandos similares en concepto a Redis pero sin la capa de red ya que Vedis se ejecuta en el mismo proceso de la aplicación host).
- MICROKVS: un pequeño almacén de valor clave para persistir datos de configuración en microcontroladores.
Memoria flash
- Easyflash - Ligera de memoria flash incrustada ligera.
- Flashalgo - Marco para construir algoritmos de programación de flash de estilo Cortex -M "FLM".
- FCB - Flash Circular Buffer proporciona una abstracción a través de la cual puede tratar el flash como un FIFO.
Protocolos
- NANOPB - Implementación de buffers de protocolo de tamaño de código pequeños en ANSI C. Es especialmente adecuado para su uso en microcontroladores, pero se ajusta a cualquier sistema restringido de memoria.
- Intercambio: mecanismo de solicitud/respuesta para el desarrollo integrado, utilizando Atomics.
- XMODEM - Biblioteca XModem para sistemas integrados, móviles, IoT y de escritorio.
- TinyFrame - Biblioteca simple para construir y analizar marcos de datos para interfaces en serie (como UART / RS232).
- Nanomodbus: una biblioteca compacta Modbus RTU/TCP C para incrustados/microcontroladores.
- RCOBS: la codificación de cabras inversas (RCOBS) es una variante de la codificación de COBS diseñada para permitir la codificación con cero LookAhead.
Protocolos de radiofrecuencia
- Radiohead: biblioteca de radio de paquetes para microprocesadores integrados.
- Radiohead de AdaFruit - Biblioteca de radio de paquetes para microprocesadores integrados con documentos.
Protocolos de red
- UIP - Implementación muy pequeña de la pila TCP/IP que está escrita por Adam Dunkels.
- LWIP: pequeña implementación independiente de la suite de protocolo TCP/IP que ha sido desarrollada inicialmente por Adam Dunkels. LWIP adecuado para su uso en sistemas integrados con decenas de kilobytes de carnero libre y espacio para alrededor de 40 kilobytes de ROM de código.
- HttpClient - Biblioteca de clientes HTTP.
- HTTPIO - Parser de solicitud de plataforma cruzada independiente y generador de respuesta para el protocolo HTTP.
- PICOTCP: pila TCP/IP modular de los pies pequeños diseñada para sistemas integrados e Internet de las cosas.
- RAWTCP_LIB - C Biblioteca para crear y usar paquetes TCP/IP con sockets de red RAW.
- LRNDIS - Ethernet sobre USB (RNDIS + LWIP).
- CYCLONETCP: una pila dual IPv4/IPv6 dedicada a aplicaciones integradas. La pila se distribuye como un Ansi C completo y un código fuente altamente mantenible (ejemplos no incluidos en las fuentes de GitHub).
- StaticNet - C ++ TCP/IP y SSH Stack con asignaciones estatales diseñadas para aplicaciones integradas de metal desnudo (sin sistema operativo) con una huella mínima.
Servidor web
- Mongoose: servidor web integrado y biblioteca de redes integradas. Implementa API sin bloqueo impulsadas por eventos para TCP, UDP, HTTP, WebSocket, MQTT.
- LibevHTP: servidores HTTP incrustados extremadamente rápidos y seguros con facilidad.
- Libμhttpd: biblioteca de servidor HTTP muy flexible, ligera y totalmente asíncrona basada en Libev y HTTP -Parser.
- Sandbird - Tiny (800SLOC) servidor HTTP integrable escrito en C89.
Mqtt
- Libemqtt 1 - Biblioteca de cliente C incrustada para el protocolo MQTT.
- Libumqtt 2: biblioteca MQTT Client C liviana y totalmente asincrónica basada en Libev.
- Paho MQTT - C Biblioteca de clientes para sistemas integrados.
Analgésicos
Persiadores de expresiones regulares
- REGEXP - Biblioteca de expresiones regulares para sistemas integrados.
GSM
- LWGSM: biblioteca para módulos SIMCOM GSM para comunicarse con los comandos AT y RTO desde el dispositivo host.
- GSM_Engine: genérico en los módulos basados en el comando AT.
- TinyGSM: pequeña biblioteca Arduino para módulos GSM, que simplemente funciona.
GPS
- LWGPS - Parser NMEA GPS ligero para sistemas integrados.
- MINMEA - Biblioteca liviana GPS NMEA 0183 en puro C.
At Command Parser
- ATAT - LIB para el procesamiento de comandos personalizados en AT.
- Cat - Biblioteca C Plain para analizar los comandos AT para su uso en dispositivos host.
- GZAT - Biblioteca Portable AT de análisis de comandos en lenguaje C ++.
- Atparser: un analizador de comando compatible con MBed -OS.
- AtCommander - Biblioteca C ++ portátil para enviar comandos AT y analizar sus respuestas.
- LWESP: la biblioteca PARSer de los comandos AT livianos AT para comunicarse con el módulo Wi -Fi ESP8266 o ESP32 usando los comandos AT.
Varios protocolos
- LWPKT-Estructura de protocolo de paquetes livianos para la comunicación de dispositivos múltiples centrados en RS-485.
- LWOW - Biblioteca liviana de protocolo de un cable de un cable optimizada para hardware UART en sistemas integrados.
- Panstamp -swap: protocolo de abstracto inalámbrico simple para cualquier radio ISM existente.
- Panstamp -USWAP - Micro Swap Stack para MCU conectado a través de UART.
- Min - Protocolo de red de interconexión de microcontroladores Versión 2.0.
- Libcoap - C Implementación de un protocolo de aplicación ligero para dispositivos que están restringidos sus recursos, como la potencia informática, el rango de RF, la memoria, el ancho de banda o los tamaños de paquetes de red. Este protocolo, COAP, está estandarizado por el IETF como RFC 7252.
Proceso de datos
Matemáticas
- Liquid-FPM-Biblioteca de matemáticas de punto fijo definido por software para el procesamiento de señales integradas.
- FPM-Biblioteca de matemáticas de punto fijo de solo encabezado C ++.
- Eigen - Biblioteca de plantilla C ++ para álgebra lineal: matrices, vectores, solucionadores numéricos y algoritmos relacionados.
DSP y filtrado
- Liquid-DSP-Biblioteca de procesamiento de señal digital para radios definidos por software.
- MINFFT - Biblioteca de transformación de Fourier pequeña y rápida y rápida.
- IIR1 - DSP IIR Biblioteca de filtros en tiempo real escrita en C ++.
- Kalman -Clib - Microcontrolador Dirigido a la implementación de filtros de Kalman en puro C.
- LibDSPL - Biblioteca de algoritmo de procesamiento de señal digital de plataforma cruzada, escrita en lenguaje C.
- PocketFFT - Implementación muy modificada de FFTPack.
- KISS FFT - Transformación de Fourier rápida de radio mixto basado en el principio, "Mantenerlo simple, estúpido".
- CMSIS-DSP-Biblioteca de cómputo integrada para Cortex-M y Cortex-A.
- Siglib-Library Digital Signal Processing and Machine Learning (X86, Cortex-A y Cortex-M, RISC-V, DSP de TI, ADI, etc.).
- LSP-DSP-LIB-La biblioteca DSP para el procesamiento de señales digitales proporciona un conjunto de funciones que realizan computación optimizada SIMD en varias arquitecturas de hardware. Todas las funciones operan actualmente en los números de punto flotante de una sola precisión IEEE-754.
Compresión
- HeatShrink - Biblioteca de compresión de datos para sistemas integrados/en tiempo real.
- Biblioteca Shoco - C para comprimir y descomprimir cadenas cortas. Es muy rápido y fácil de usar. El modelo de compresión predeterminado está optimizado para palabras en inglés, pero puede generar su propio modelo de compresión.
- SMAZ - Compresión para cuerdas muy pequeñas.
- ECL: la biblioteca de compresión integrada no es solo para incrustados, sino que está orientada principalmente para datos pequeños y tiene modos especiales de baja memoria optimizados para entornos restringidos.
- UNISHOX2: codificador híbrido para cadenas de unicodos cortos (Unishox proporciona la mejor compresión para texto corto y no se comparará con el algoritmo de compresión de propósito general como LZ4, Snappy, LZMA, BROTTLI y ZSTD).
- TCOBS: compresión de mensajes cortos con enmarcado de mazorcas utilizando codificación de longitud de ejecución implícita, optimizado para datos que contienen estadísticamente un poco más de bytes 0 y FF en una fila, ya que los datos a menudo llevan 16, 32 o 64 números de bits con valores pequeños.
Ai ml
Inteligencia artificial y aprendizaje automático
- Cranium - Biblioteca de redes neuronales artificiales portátiles, solo de encabezado, escritura escrita en Vanilla C99.
- μTensor - Biblioteca de inferencia Tinyml AI.
- FIDO - Biblioteca de aprendizaje automático C ++ Ligero para Electrónica y Robótica Incrustada.
- NNOM - La red neuronal en microcontrolador (NNOM) es una biblioteca de red neuronal de inferencia de alto nivel específicamente para microcontroladores.
- Caffepresso: biblioteca optimizada para el aprendizaje profundo en plataformas basadas en aceleradores integrados.
- LIBONNX - Motor de inferencia ONNX Pure C99 ONNX Pure C99 ligero para dispositivos integrados con soporte de aceleración de hardware.
- TinMaix: una pequeña biblioteca de red neuronal de inferencia específicamente para microcontroladores (TinyML). Diseñado para seguir la regla: fácil de usar> portátil> velocidad> espacio.
CV
Visión por computadora
- Biblioteca de Visión de Visión y Machine Learning y Machine Learning de Computer SOD incrustado (CPU optimizado y capaz de IoT).
- QR-IMAGE-Embedded-Hifor de la biblioteca QR para sistemas integrados.
Criptografía
General
- Camisco: una forma mínima y modular de escribir aplicaciones criptográficas en plataformas de microcontroladores (Rust).
- WolfSSH - Biblioteca de cliente y servidor SSHV2 ligero escrita en ANSI C y dirigida a entornos integrados, RTO y limitados por recursos, principalmente debido a su pequeño tamaño, velocidad y conjunto de características.
- Libhidrógeno: biblioteca criptográfica ligera, segura y fácil de usar adecuada para entornos restringidos.
- Krypton - Biblioteca TLS/DTLS incrustada, subconjunto OpenSSL compatible y compatible binario.
- WOLFTPM - Biblioteca TPM 2.0 altamente portátil, diseñada para uso integrado.
- MBedTLS: código abierto, portátil, fácil de usar, legible y flexible Biblioteca TLS e implementación de referencia de la API de criptografía de PSA.
- ? Liblithium - Biblioteca de criptografía liviana que es portátil por diseño. Se requiere solo C99 estándar y no asume la directabilidad de 8 bits, lo que lo hace adecuado para su uso en algunas arquitecturas DSP, así como a las arquitecturas convencionales.
- ? Trezor -Crypto: algoritmos de criptografía muy optimizados para dispositivos integrados.
- Poly1305-Donna: implementaciones de un código rápido de autorización de mensajes (8 bits, 16 bits, 32 bits y 64 bits versiones de multiplica).
- Arduinolibs - Biblioteca de criptografía Arduino.
- TLSE - Implementación de un solo archivo C TLS 1.2/1.3, utilizando Tomcrypt como biblioteca criptográfica.
- LIBTOMCRYPT: un kit de herramientas criptográfico bastante integral, modular y portátil que proporciona a los desarrolladores una amplia gama de cifrados de bloques publicados bien conocidos, funciones de hash unidireccional, modos de encadenamiento, generadores de números pseudo-aleatorios, criptografía de clave pública y una plethora de otras rutinas.
- Monocypher: fácil de usar, fácil de implementar y biblioteca de cripto auditable escrita en portátil C.
- Minicrypt - Biblioteca de primitivas criptográficas para sistemas integrados.
- TinyCrypt: la biblioteca de algoritmos criptográficos proporciona una implementación para dispositivos restringidos de un conjunto mínimo de primitivas de criptografía estándar.
- Tiny-AES-C-AES128/192/256 portátil pequeño en C.
- µAES: implementación compatible con el cifrado AES y altamente flexible, altamente flexible y ANSI -C de los modos de cifrado AES y cifrado de bloque.
- Cyclonecrypto: un conjunto de herramientas criptográfico diseñado para su uso en sistemas integrados. Proporciona un conjunto integral de primitivas criptográficas (funciones hash, secuentes de transmisión y cifras de bloque, criptografía de clave pública) que se puede utilizar para agregar características de seguridad a su aplicación integrada.
Criptografía de curva elíptica
- Salty-ED25519 firmas con optimizaciones de ensamblaje para Cortex-M4 y Cortex-M33.
- Micro-ECC-ECDH y ECDSA para procesadores de 8 bits, 32 bits y 64 bits.
- LIBUECC - Biblioteca de criptografía de curva elíptica genérica muy pequeña compatible con ED25519.
- C25519 y ED25519-Curve25519 y ED25519 para sistemas de baja memoria (Curve25519 La multiplicación escalar usa menos de medio kb de uso de pico de pico).
Generación de números aleatorios
- PCG-C-Basic: el código proporciona una implementación mínima de un miembro de la familia PCG de generadores de números aleatorios, que son rápidos, estadísticamente excelentes y ofrecen una serie de características útiles.
- El código PCG -C proporciona una implementación de la familia PCG de generadores de números aleatorios, que son rápidos, estadísticamente excelentes y ofrecen una serie de características útiles.
Sistema operativo
- Citrus - Sistema operativo Bare Metal Arm® Cortex® -A5.
- Vanilla - Sistema operativo Bare Metal Arm® Cortex® -M7.
- Chaos - Sistema operativo Bare Metal Multicore ARM® Cortex® -A basado en una arquitectura de microkernel.
- LK Kernel: el pequeño sistema operativo integrado del kernel es el núcleo consciente de SMP diseñado para pequeños sistemas portados a una variedad de plataformas y arquitecturas de CPU.
- Quarkts - OS para aplicaciones integradas que admite programación cooperativa priorizada, control de tiempo, primitivas de comunicaciones entre tareas, máquinas estatales jerárquicas y corutinas.
- Micro-ROS: Micro-RoS pone ROS 2 en microcontroladores.
RTOS
- ? Freertos ™ - Freertos.
- Zephyr - RTOS de nueva generación, escalable, optimizado y seguro para múltiples arquitecturas de hardware.
- Apache NutTX - Apache NutTX es un sistema operativo integrado maduro y en tiempo real (RTO).
- SCMRTOS: pequeño sistema operativo preventivo en tiempo real destinado a su uso con microcontroladores de un solo chip. SCMRTOS es capaz de funcionar con pequeños UC con tan pequeña cantidad de RAM como 512 bytes. El RTOS está escrito en C ++ y admite varias plataformas.
- Chibios/RT-Sistema operativo compacto y rápido que admite múltiples arquitecturas diseñadas para aplicaciones integradas en microcontroladores de 8, 16 y 32 bits.
- Azure RTOS ThreadX - Sistema operativo avanzado en tiempo real (RTO) diseñado específicamente para aplicaciones profundamente integradas.
- ECOS: sistema operativo en tiempo real destinado a aplicaciones integradas (código cerrado) .
- EMBOX - RTOS configurables diseñados para sistemas limitados e integrados de recursos. La idea principal de Embox es usar el software Linux sin Linux.
- Riot: sistema operativo múltiple en tiempo real que admite una gama de dispositivos que generalmente se encuentran en Internet de las cosas (IoT): microcontroladores de 8 bits, 16 y 32 bits. Riot se basa en los siguientes principios de diseño: eficiencia energética, capacidades en tiempo real, huella de memoria pequeña, modularidad y acceso uniforme de API, independientemente del hardware subyacente (esta API ofrece cumplimiento parcial de Posix).
- ARM MBed OS - Sistema operativo de plataforma diseñado para Internet de las cosas. Incluye todas las características que necesita para desarrollar un producto conectado basado en un microcontrolador Cortex-M ARM, que incluye seguridad, conectividad, un RTOS y controladores para sensores y dispositivos de E/S.
- RT-Thread-RT-Thread nació en 2006, es un sistema operativo (RTOS) de código abierto, neutral y basado en la comunidad. RT-Thread tiene versión estándar y versión nano. Para los sistemas de microcontrolador (MCU) con restricciones de recursos, la versión Nano Kernel que requiere solo 3KB Flash y 1,2 kb de recursos de memoria RAM se pueden adaptar con herramientas fáciles de usar; Y para los dispositivos IoT ricos en recursos, RT-Thread puede usar la herramienta de administración de paquetes de software en línea, junto con las herramientas de configuración del sistema, para lograr un corte modular intuitivo y rápido, importar sin problemas paquetes de software ricos, logrando así funciones complejas como la interfaz gráfica y los efectos de interacción de voz inteligente de Android, efectos de interacción de voz inteligente, y así sucesivamente.
- Distortos - RTO C ++ orientado a objetos para microcontroladores.
- R3-OS-RTO estatales experimentales (μitron-esque) para sistemas profundamente incrustados, probando el límite de la evaluación constante y los genéricos (óxido) .
- OS integrado de TOCK-Sistema operativo integrado diseñado para ejecutar múltiples aplicaciones concurrentes y desconfiadas de baja memoria y de baja potencia (Rust) .
- Dandelion - Sistema operativo en tiempo real de Microkernel en Rust.
- Muditaos - Sistema operativo móvil basado en fretos optimizados para pantallas de tinta E - desarrollado para el teléfono minimalista puro Mudita.
- µC/OS-II: núcleos preventivos, altamente portátiles y escalables en tiempo real. Diseñado para facilitar el uso en una gran cantidad de arquitecturas de CPU.
- µC/OS-III: núcleo en tiempo real preventivo, altamente portátil y escalable. Diseñado para facilitar el uso en una gran cantidad de arquitecturas de CPU.
- QP/C-Marco integrado en tiempo real/RTOS para sistemas integrados basados en objetos activos (actores) y máquinas de estado jerárquicas (FUSA, Cumplimiento de Misra-C 2023).
- Muy bien RTOS: sin garrapatas, mínimas, 500 líneas de código, 7 funciones.
Planificador basado en eventos
- UEVLOOP: bucle de evento rápido y liviano para plataformas incrustadas.
- LWEVT - Sistema de gestión de eventos liviano para sistemas integrados.
- Async - Marco asíncrono en C para sistemas donde el uso de bajo uso es importante.
- ProtoThreads: proporcione ejecución de código lineal para sistemas basados en eventos implementados en C diseñados para sistemas limitados de memoria severamente, como pequeños sistemas integrados o nodos de red de sensores inalámbricos.
- Eventos - Sistema basado en eventos diseñado para Arduino Framework.
- VSF - Marco de software de versanoon - Un pequeño marco de software incremental impulsado por eventos con capacidad preventiva para sistemas integrados.
Interfaz de usuario
CLI
- CLI - CLI (interfaz de línea de comandos) Build en puro C. diseñado para MCU, entrada de bloque de bloque/modo no bloqueo.
- Terminal - Interfaz de línea de comando para microcontroladores. La configuración de terminal flexible le permite integrarlo con cualquier microcontrolador, sin mucho esfuerzo.
- SerialMenu - Biblioteca Arduino para crear fácilmente menús en la consola serie.
- Terminal -server - Terminal Server para MCU.
- Microsh - Shell para pequeños dispositivos incrustados.
- CMD -L - Manejador de línea de comandos para dispositivos incrustados.
- CLI incrustado: CLI de cabeza única con historia y autocompleto para sistemas integrados.
- Microshell: implementación liviana de C pura de la carcasa virtual, compatible con el terminal VT100. Apoya el árbol de la raíz, las rutas de montaje en tiempo de ejecución, los comandos globales y mucho más.
- Microrl - Biblioteca de línea Micro Read para dispositivos pequeños e integrados con soporte básico de VT100.
Menú
- Promenu - Biblioteca de menú de aplicaciones genéricas avanzadas. La biblioteca Promenu se utiliza para implementar rápidamente los menús avanzados de usuarios. Admite anidación, configuración numérica, configuración de texto, valores y eventos booleanos. La biblioteca se implementa en C ++ con el puerto Arduino construido, pero es fácil portar a una arquitectura diferente.
- BBMenu - Menú de CLI portátil simple para tareas MISC (se basa en menús de texto, fácilmente definido en un archivo).
- Micromenu-V2: pequeña biblioteca de menú orientada al texto en C para uso integrado.
printf
- LWPRINTF - Biblioteca PRINTF ligera optimizada para sistemas integrados.
- Incredded_printf - versión incrustada de la famosa función "printf ()". La idea es crear una biblioteca simple y eficiente para satisfacer algunas necesidades comunes en los sistemas integrados.
- TinyPrintf - Library Tiny Printf y Sprintf para pequeños sistemas integrados.
- XPRINTF -FP - Printf para el sistema integrado con soporte de punto flotante.
- XPRINTF -IO - Biblioteca de E/S de cadena compacta. Es ideal para pequeños microcontroladores que tienen una memoria de programa insuficiente para la función de impresión regular. El uso recomendado es: escribir cadenas formateadas en LCD o UART y para la consola de depuración/mantenimiento.
- XPRINTF - Implementación completa de formato fprintf (), adecuado para uso integrado.
- Tiny-Printf-Implementación de impresión Pequeña, rápida, no dependiente y completamente cargada para sistemas integrados. Extenso paso de prueba.
- Tiny-Printf Nuevo: horquilla mejorada y mantenida de
tiny-printf . Pequeño, rápido (ish), autónomo y completamente cargado, sprinf, etc. - Mini -Printf - Implementación mínima printf () para proyectos integrados.
- NanoPrintf: la implementación pública de impresión pública más pequeña para su conjunto de características.
- FMT: biblioteca de formato moderna que proporciona una alternativa rápida y segura a los iOStreams de C STDIO y C ++.
- EMIO - Muy pequeña huella binaria Std :: Formato como formatear usando C ++ 20.
escaneo
- ScanF - Implementación portátil de funciones de entrada de ScanF en C.
- ft_scanf - scanf scanf simple s %c %d.
Explotación florestal
- LOG INCRIVIDADO - Pequeña y hermosa biblioteca de registro incrustado para MCU.
- Easylogger: ultra ligera (ROM <1.6k, RAM <0.3k), biblioteca de registro C/C ++ de alto rendimiento.
- TRICE: el dispositivo de traza de tipo TRICE súper rápido y pequeño C-tipo de impresión (también funciona dentro de las interrupciones) y el registro de PC en tiempo real (visualización de ID de traza).
- Logger de diagnóstico integrado: marco de registrador liviano para pequeños proyectos basados en microcontroladores. Transferencia de cadena basada en el registro multinivel y token.
- SPDLOG - Muy rápido, solo encabezado/compilado, biblioteca de registro de C ++.
- ELOG - El sistema de registro se considera para sistemas integrados con utilización de recursos mininmales. El sistema de registro está diseñado para minimizar la composición de la memoria en Flash o RAM, habilitar un búfer de registro en Ram de Eficiente con un almacenamiento muy eficiente.
Guía
- LVGL: GUI integrada potente y fácil de usar con muchos widgets, efectos visuales avanzados (opacidad, antialiasing, animaciones) y requisitos de memoria baja (16k RAM, 64k flash).
- EasyGui - EasyGui para sistemas integrados (altamente optimizado para STM32).
- TouchGFX: herramienta C ++ gráfica fácil de usar integrada como una herramienta gratuita en el ecosistema STM32.
- EGUI - Una biblioteca gráfica incrustada EGUI.
- Eslowgraphics - Biblioteca de gráficos de software de bajo nivel por ErrorSoft (ESLGL).
- FTK - Biblioteca GUI para el sistema integrado.
- U8GLIB - Biblioteca de gráficos Universal para sistemas integrados de 8 bits.
- ? U8G2 - Biblioteca U8GLIB para pantallas monocromáticas, versión 2.
- SGFX: biblioteca integrada ligera para pantallas y pantallas táctiles que proporcionan todo lo necesario para construir una GUI integrada totalmente destacada.
- GUIX: proporciona una biblioteca completa de la interfaz gráfica de usuario (GUI) de la interfaz gráfica (GUI), facilitando la creación y el mantenimiento de todos los elementos gráficos que necesitan su dispositivo.
- GUILIB - Biblioteca GUI para sistemas integrados.
- HMI_Library - Interfaz de máquina humana adecuada para el sistema integrado.
- AFGUI - Biblioteca GUI incrustada.
- MakiseGui - Biblioteca de gráficos y GUI para sistemas de inserción.
- EMGUI - Biblioteca simple de C UI para plataformas incrustadas.
- HAGL - Biblioteca de gráficos agnósticos de hardware liviano para dispositivos integrados. Admite primitivas geométricas básicas, mapas de bits, fontas de ancho fijo, de ancho fijo. La biblioteca trata de mantenerse liviano, pero se dirige a microchips razonablemente potentes como ESP32. No hay asignación dinámica.
- Graphics incrustados: biblioteca de gráficos 2D que se centra en los dispositivos incrustados restringidos de memoria para dibujar gráficos sin usar ningún búfer (óxido).
- LOVYANGFX - Biblioteca de gráficos Pantalla (LCD / OLED / EPD) (para ESP32 SPI, I2C, 8BITPARALLELA / ESP8266 SPI, I2C / RP2040 SPI / ATSAMD51 SPI y más).
- Ugui (µGui) - una biblioteca gráfica. Admite color, escala de grises, monocromo y múltiples pantallas, pantalla táctil, ventanas y objetos, primitivas geométricas básicas, fuentes, consola. No se requiere asignación dinámica y memoria para el búfer de pantalla. Documentación disponible en el sitio web del desarrollador.
Editores de GUI
- lv_gui_designer-Diseñador de GUI simple de arrastrar y soltar construido con Littlevgl.
- Walv - En línea, Wysiwyg GUI Designer para Littlevgl. Soporte de la plataforma cruzada (incluso Android e iOS).
Font Utils
- Bitmap-OSD-Font-A 'C' Fuente de mapa de bits para la pantalla en la pantalla.
- TTF2Mesh - Biblioteca para TrueType Font Tessellation. Permite convertir los glifos de fuentes en objetos de malla sin rasterización.
- SFAM_GENERATOR - Scripts simples para generar fuentes de bits para STM32, AVR, Arduino u otro MCU.
- McUfont: una biblioteca de representación de fuentes para microcontroladores.
Fuentes e iconos
- Picon-Pico-icon Conjunto con ligadura pirateable (diseñada en una red de 8: para ser legible a 8px 16px 24px 32px 48px).
Herramientas de manupulación de imágenes
- LCD-Image-Converter: herramienta para crear mapas de bits y fuentes para aplicaciones integradas; Le permite crear mapas de bits y fuentes, y transformarlos en formato de origen "C" para aplicaciones integradas.
Hardware
- Biblioteca de conductor integrado de conductor integrado para varios periféricos.
IO
- Fastio - Fast GPIO bifurcado desde http://os.mbed.com/users/sissors/code/fastio/.
USB
- TinyusB - Pila USB de plataforma cruzada para el sistema integrado.
- LibUSB_STM32 - Pila de dispositivos USB livianos para microcontroladores STM32.
- CHERRYUSB - Pila de dispositivos y de dispositivos USB pequeños, hermosos y portátiles para un sistema integrado con USB.
Destello
- SFUD - Conductor universal Flash Serial (usando la Biblioteca de controlador SFDP Standard Serial (SPI) de SFDP (SPI) de JEDEC).
Can Bus.
- Libcanard: implementación compacta del protocolo UAVCAN/CAN en C para sistemas integrados en tiempo real de alta integridad.
- CANBUS -MESSAGE - Biblioteca de ensamblaje de mensajes de lata y desmontaje para adolescentes y STM32.
- CANBOOT: se admite un cargador de arranque para MCU (actualmente se admiten LPC176X, STM32 y RP2040 MCU).
Otros
Gestión de hilos
- Pool C-Thread: grupo de hilos mínimo pero potente en Ansi C.
Cargador de arranque
- Mcuboot: asegurar el arranque para microcontroladores de 32 bits.
- OpenBLT: abre a cargador de arranque de origen para STM32, XMC, HCS12 y otros objetivos de microcontrolador. Admite interfaces de comunicación como: RS232, CAN, USB, TCP/IP y se envía con la herramienta Microboot PC fácil de usar para iniciar y monitorear la actualización del firmware. También se admite realizar actualizaciones de firmware directamente desde una tarjeta SD.
- TinyUf2: cargador de arranque basado en TinyusB para dispositivos incrustados como ESP32, STM32 e IMX RT10XX.
- WolfBoot: cargador de arranque puerto, agnóstico de OS Secure para microcontroladores, admitiendo la autenticación de firmware y los mecanismos de actualización de firmware.
Actualizaciones de firmware
- UF2 - Especificación de formato de flasheo USB para microcontroladores intermitentes sobre MSC (clase de almacenamiento de masa; también conocido como unidad flash extraíble).
- SWUPDATE - Actualización de software para dispositivos Linux integrados para actualizar el sistema en el campo. SWUPDATE admite actualizaciones locales y OTA, múltiples estrategias de actualización y está diseñada teniendo en cuenta la seguridad.
Pantalla táctil
- TSLIB - Biblioteca de acceso de pantalla táctil.
Libra de gestión del tiempo
- TIMELIB - Biblioteca de gestión del tiempo para dispositivos integrados.
- μTZ - Biblioteca de zona horaria para pequeños sistemas integrados.
Scripts e idiomas integrables
- Little: un lenguaje pequeño, rápido y fácilmente integrable implementado en un solo archivo .c.
Compiladores
- 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) y STMicroelectronics STM8).
- TCC - Tiny C Compiler (~ 100kb para ejecutable X86 TCC, incluido el preprocesador C, el compilador C, el ensamblador y el enlazador).
- LCC - Compilador ANSI C retargetable (horquilla para ULP en ESP32).
- PCC - compilador C portátil (espejo).
- Tinygo - Compilador GO para cosas pequeñas: microcontroladores, WebAssembly (WASM/WASI) y herramientas de línea de comandos (basadas en LLVM).
- CHIBICC: otro compilador C pequeño que implementa la mayoría de las características de C11.
- RVCC: compilador C de arranque para RISC-V y ARM ISAS de 32 bits (genera binarios de ELF Linux ejecutables para RV32IM y ARMV7).
Sin categoría
- Apache Nuttx Apps: colección de herramientas, conchas, utilidades de red, bibliotecas, intérpretes y se pueden usar con los RTO NUTTX.
- MODM: generador de biblioteca C ++ 20 incrustado Barebone para microcontroladores AVR, SAM y ARM Cortex -M (dispositivos 3534 compatibles).
- Cembed: pequeña utilidad para incrustar archivos en un encabezado C.
- Incbin: biblioteca de un cabeza de cabeza para el tiempo de compilación que incrusta los archivos binarios y textuales.
- WTX: un conjunto de herramientas orientadas a la web.
Que contribuye
- ¡Tus contribuciones siempre son bienvenidas! Lea primero las pautas de contribución.
Notas al pie
Siga este Root-Repo para obtener las últimas actualizaciones.