Recursos incorporados incríveis para desenvolvedores
Lista incrível de fontes e biblions para desenvolvimento de sistemas incorporados
A implementação de fontes e LIBs nesta lista é especificamente adequada para sistemas incorporados com restrição de recursos (baixa memória e baixa potência), como microcontroladores de 8 bits, 16 e 32 bits.
AVISO Esta lista não cobre nenhum tópico relacionado ao Linux (como a plataforma Raspberry Pi ou qualquer outro SBCS (computador de placa única)).
URL permanente para esta lista: https://github.com/idoka/awesome-Embedded-software
Conteúdo
- Comum
- Memória
- Gerenciamento de memória
- Buffers
- Buffer de anel
- FIFO
- Armazenar
- FileSystems
- Bases de dados
- Memória flash
- Protocolos
- Protocolos de radiofrequência
- Protocolos de rede
- Servidor da web
- Mqtt
- Analisadores de protocolo
- Processamento de dados
- Matemática
- DSP e filtragem
- Compressão
- Ai ml
- cv
- Criptografia
- Em geral
- Criptografia da curva elíptica
- Geração de números aleatórios
- OS
- Rtos
- Agendador baseado em eventos
- Interface do usuário
- CLI
- Menu
- printf
- scanf
- Log
- GUI
- Editores da GUI
- Utilos de fonte
- Ferramentas de manupulação da imagem
- Hardware
- Io
- USB
- Clarão
- Pode barramento
- Outros
- Gerenciamento de threads
- Carregadores de botas
- Atualizações de firmware
- Tela de toque
- Time Management Libs
- Scripts e idiomas incorporáveis
- Compiladores
- Sem categoria
Comum
- Wiselib - Biblioteca de algoritmos genéricos para sistemas heterogêneos, distribuídos e incorporados.
- Util.Embedded - Código de suporte útil para desenvolvimento incorporado.
- Embxx - biblioteca C ++ incorporada.
- Libs incorporadas - bibliotecas para software incorporado (principalmente para STM32).
- ETLCPP - Biblioteca de modelos incorporados, onde o usuário pode declarar o tamanho ou o tamanho máximo de qualquer objeto antecipadamente.
- EFLL - Biblioteca lógica difusa incorporada é uma biblioteca padrão para sistemas incorporados.
- Coleção de trechos C portáteis diversos - Coleção de trechos C portáteis diversos.
- SC - Bibliotecas C portáteis e autônomas e estruturas de dados (C99).
- Microtbx - Caixa de ferramentas de microcontrolador de código aberto que consiste em componentes de software geralmente necessários em aplicativos de software incorporados. O microtbx está escrito na linguagem de programação C (C99) com a conformidade com Misra em mente.
- UMLIBC - Um LIBC nua para sistemas restritos de memória.
- µCLIBC -NG - Biblioteca C incorporada.
- LIBC da arte incorporada-uma implementação de biblioteca padrão C destinada direcionada para sistemas incorporados baseados em microcontroladores. Conjunto reduzido de funcionalidade (devido à natureza incorporada). Escolhido para portabilidade e trazer rápido.
- HWLIB-C ++ OO Micro-controller Library para programação próxima ao hardware.
- Biblioteca de modelo de contêiner CTL - C. Existe uma biblioteca de contêiner de compilação rápida, segura, apenas para cabeçalho, semelhante a um modelo para ISO C99/C11.
- FSMLANG - Idioma de descrição da máquina de estado com o gerador de idiomas C. Suporta máquinas planas e hierárquicas e subsistema de eventos.
Memória
Gerenciamento de memória
- LibMemory - Biblioteca de Gerenciamento de Memória com implementações para funções de Maloc (), Free () e outras funções úteis de gerenciamento de memória.
- LWMEM - Biblioteca de gerenciador de memória dinâmica leve para sistemas incorporados com restrições de memória. Ele implementa funções MaiC, Calloc, RealLoc e Grátis.
- Umm_malloc - gerenciador de memória para microprocessadores pequenos (ish).
- O1HEAP-Um alocador de memória de complexidade constante altamente determinístico, projetado para sistemas incorporados de alta integridade em tempo real.
Buffers
- Implementação incorporada de buffers de protocolo C ++ especificamente adequado para microcontroladores de córtex -m do ARM. É pequeno, confiável e fácil de usar.
- Protobuf-Embetbedded-C-Buffers de protocolo Gerador para aplicações incorporadas restringidas por recursos escritos na linguagem de programação C.
Buffer de anel
- LWRB - Biblioteca de gerente de buffer de anel genérico leve.
- Ringbuffer - Biblioteca de fila de tampão de tampão de interrupção simples de interrupção (circular) para plataformas incorporadas.
- LFBB-Buffer bipartido sem bloqueio, uma variante do buffer de anel que sempre pode fornecer espaço contigizado dentro do buffer para ler, escrever ou modificar os dados no local.
FIFO
- FIFOFAST - Um FIFO rápido e genérico para MCUs.
Armazenar
FileSystems
- LWEXT4 - Biblioteca de arquivos Ext2/Ext3/Ext4 para microcontroladores.
- GAFS - Implementação do sistema de arquivos FAT.
- Levelx - fornece nivelamento de desgaste do flash para fins FILEX e Stand Alone.
- UFAT-Implementação VFAT completa de recurso de baixa memória.
- FAT_IO_LIB - Pequena pegada, baixa dependência, C CÓDIGO COMPLEMAGEM DE UM DRITOR FAT16 e FAT32.
- SDFAT - Biblioteca Arduino FAT16/FAT32 EXFAT.
- FAT32 - Sistema de arquivos FAT32 do Lighweight, escrito em C, sem dependências de terceiros. Requer uma pequena porta que forneça funções para inicializar, ler e escrever para o MSD.
- EMFAT - Biblioteca de emulação FAT32 para STM32F4.
- OpenFat - Implementação do sistema de arquivos FAT para processadores incorporados.
- UC-FS-Sistema de arquivos incorporado, confiável, de alto desempenho e seguro de rosca para microprocessadores, microcontroladores e DSPs. Um componente de diário opcional fornece operação à prova de falhas, mantendo a compatibilidade de gordura.
- Littlefs - Little Fail -Safe FileSystem projetado para microcontroladores.
- UFFs - sistema de arquivos para dispositivos NAND com nivelamento de desgaste e boa tolerância a falhas.
Bases de dados
- FlashDB-Banco de dados Ultra-Lightweight que suporta dados de valores-chave e séries temporais.
- PuredB - Portátil e minúsculo conjunto de bibliotecas para criar e ler bancos de dados constantes.
- UNQLITE - NOSQL incorporado, mecanismo de banco de dados transacional.
- VEDIS - Implementação incorporada do Redis (uma biblioteca C do DataStore incorporável, construída com mais de 70 comandos semelhantes em conceito aos redis, mas sem a camada de rede desde que os Vedis são executados no mesmo processo do aplicativo host).
- Microkvs - Minúsculo armazenamento de valor -chave para dados de configuração persistentes em microcontroladores.
Memória flash
- EasyFlash - Biblioteca de memória flash incorporada leve.
- Flashalgo - Framework para a construção de algoritmos de programação do estilo Cortex -M "FLM".
- FCB - O tampão circular flash fornece uma abstração através da qual você pode tratar o flash como um FIFO.
Protocolos
- NanopB - Implementação de buffers de protocolo de tamanho pequeno em ANSI C. É especialmente adequado para uso em microcontroladores, mas se encaixa em qualquer sistema restrito de memória.
- Intercâmbio - mecanismo de solicitação/resposta para desenvolvimento incorporado, usando atomics.
- Xmodem - Biblioteca Xmodem para sistemas incorporados, móveis, IoT e desktop.
- TinyFrame - Biblioteca simples para construir e analisar quadros de dados para interfaces seriais (como UART / RS232).
- Nanomodbus - uma biblioteca compact modbus rtu/tcp c para microcontroladores incorporados/incorporados.
- RCOBS - A codificação reversa -COBS (RCOBS) é uma variante da codificação de espigas projetada para permitir a codificação com zero lookahead.
Protocolos de radiofrequência
- Radiohead - Biblioteca de rádio de pacotes para microprocessadores incorporados.
- Radiohead da Adafruit - Biblioteca de rádio de pacotes para microprocessadores incorporados com documentos.
Protocolos de rede
- UIP - Implementação muito pequena da pilha TCP/IP que é escrita por Adam Dunkels.
- LWIP - Pequena implementação independente do conjunto de protocolos TCP/IP que foi desenvolvido inicialmente por Adam Dunkels. LWIP adequado para uso em sistemas incorporados com dezenas de kilobytes de aríete e espaço livre por cerca de 40 kilobytes de código ROM.
- HTTPClient - Biblioteca de clientes HTTP.
- HTTPIO - Analisador de solicitação de plataforma cruzada independente e gerador de resposta para o protocolo HTTP.
- PICOTCP - pilha TCP/IP modular, projetada para sistemas incorporados e a Internet das Coisas.
- Biblioteca Rawtcp_lib - C para criar e usar pacotes TCP/IP com soquetes de rede bruta.
- Lrndis - Ethernet sobre USB (rndis + lwip).
- CYCLONETCP - Uma pilha dupla IPv4/IPv6 dedicada a aplicativos incorporados. A pilha é distribuída como um código fonte completo e altamente sustentável (exemplos não incluídos nas fontes do Github).
- StaticNet - C ++ TCP/IP e SSH Stack com alocações estáticas projetadas para aplicações incorporadas de metal nu (sem sistema operacional) com pegada mínima.
Servidor da web
- Mongoose - servidor web incorporado e biblioteca de rede incorporada. Ele implementa APIs sem bloqueio orientadas por eventos para TCP, UDP, HTTP, WebSocket, MQTT.
- libevhtp - servidores HTTP incorporados extremamente rápidos e seguros com facilidade.
- LibμHTTPD - Biblioteca HTTP muito flexível, leve e totalmente assíncrona HTTP com base em Libev e Http -Parser.
- Sandbird - servidor HTTP incorporado minúsculo (800sloc) escrito em C89.
Mqtt
- Libemqtt 1 - Biblioteca de clientes C incorporada para o protocolo MQTT.
- Libumqtt 2 - Biblioteca C Cliente MQTT C leve e totalmente assíncrona com base no Libev.
- PAHO MQTT - C Biblioteca de clientes para sistemas incorporados.
Analisadores de protocolo
Expressões regulares analisadores
- Regexp - Biblioteca de expressões regulares para sistemas incorporados.
GSM
- LWGSM - Biblioteca para módulos SIMCOM GSM para se comunicar com comandos AT e RTOs do dispositivo host.
- Gsm_engine - genérico no analisador para módulos baseados em comando.
- Tinygsm - Biblioteca Arduino pequena para módulos GSM, que apenas funciona.
GPS
- LWGPS - analisador NMEA GPS leve para sistemas incorporados.
- Minmea - Lightweight GPS NMEA 0183 Biblioteca de analisador em Pure C.
ACOMERAÇÃO AT COMMAND
- ATAT - LIB para processamento de comandos personalizados do tipo ATM.
- Biblioteca CAT - Plain C para analisar com os comandos para uso em dispositivos host.
- GZAT - Biblioteca portátil de análise de comando em comando em idioma C ++.
- ATPARSER - Um analisador de comando de comando compatível com MBED -OS.
- ATCOMMANDER - Biblioteca C ++ portátil para enviar comandos AT e analisar suas respostas.
- LWESP - Biblioteca Lightweight ESP AT Command Parser para se comunicar com o módulo Wi -Fi ESP8266 ou ESP32 usando comandos AT.
Vários protocolos
- LWPKT-Estrutura de protocolo de pacotes leves para comunicação com vários dispositivos focados no RS-485.
- LWOW - Biblioteca de Protocolo Onewire leve otimizada para hardware UART em sistemas incorporados.
- PANSTAMP -SWAP - Protocolo abstrato sem fio simples para qualquer rádio ISM existente.
- PANSTAMP -USWAP - Micro Swap Stack para o MCU's conectado via UART.
- Min - Microcontrolador Interconexão Protocolo de Rede Versão 2.0.
- LibCoAP - C Implementação de um protocolo de aplicativo leve para dispositivos que são restringidos seus recursos, como poder de computação, intervalo de RF, memória, largura de banda ou tamanhos de pacotes de rede. Este protocolo, ROAP, é padronizado pelo IETF como RFC 7252.
Processamento de dados
Matemática
- Liquid-FPM-Biblioteca de matemática de Rádio Fixo definida por software para processamento de sinal incorporado.
- FPM-Biblioteca de matemática de ponto fixo somente para cabeçalho C ++.
- Biblioteca de modelos Eigen - C ++ para álgebra linear: matrizes, vetores, solucionadores numéricos e algoritmos relacionados.
DSP e filtragem
- Liquid-DSP-Biblioteca de processamento de sinal digital para rádios definidos por software.
- Minfft - Biblioteca de transformação de Fourier pequena e rápida e discreta.
- IIR1 - Biblioteca de filtro em tempo real do DSP IIR escrita em C ++.
- Kalman -Clib - Microcontrolador direcionado a implementação de filtro Kalman ingênuo em puro C.
- LIBDSPL - Biblioteca de algoritmo de processamento de sinal digital de plataforma cruzada, escrita no idioma C.
- Pocketfft - Implementação fortemente modificada do FFTPACK.
- KISS FFT - Transformação rápida de Fourier da Radix misto baseado no princípio, "Mantenha -o simples, estúpido".
- CMSIS-DSP-Biblioteca de computação incorporada para Cortex-M e Cortex-A.
- Siglib-Biblioteca de processamento de sinal digital e aprendizado de máquina (X86, Cortex-A e Cortex-M, RISC-V, DSPs de TI, ADI etc).
- Biblioteca LSP-DSP-LIB-DSP para processamento de sinal digital fornece um conjunto de funções que executam a computação otimizada para SIMD em várias arquiteturas de hardware. Atualmente, todas as funções operam nos números de ponto flutuante IEEE-754 de precisão única.
Compressão
- Biblioteca de compactação de dados - Biblioteca de compressão de dados para sistemas incorporados/em tempo real.
- Biblioteca Shoco - C para comprimir e descomprimir seqüências curtas. É muito rápido e fácil de usar. O modelo de compactação padrão é otimizado para palavras em inglês, mas você pode gerar seu próprio modelo de compactação.
- SMAZ - Compressão para cordas muito pequenas.
- A biblioteca de compressão ECL - incorporada não é apenas para incorporada, mas também é orientada para pequenos dados e possui modos especiais de baixa memória otimizados para ambientes restritos.
- UNISHOX2 - Codificador híbrido para seqüências de unicode curtas (o UNISHOX fornece a melhor compressão para texto curto e não deve ser comparado com o algoritmo de compressão de uso geral como LZ4, Snappy, Lzma, Brottli e Zstd).
- TCOBS-Compressão de mensagens curtas com enquadramento de espigas usando o codificação implícito de run-comprimento, otimizado para dados que contêm estatisticamente um pouco mais 0 e FF bytes em uma linha, pois os dados geralmente carregam números de 16, 32 ou 64 bits com valores pequenos.
Ai ml
Inteligência artificial e aprendizado de máquina
- CRANIUM - Biblioteca neural artificial portátil, somente para cabeçalho, escrita em baunilha C99.
- μtensor - Biblioteca de inferência de Tinyml AI.
- FIDO - Biblioteca leve de aprendizado de máquina C ++ para eletrônicos e robótica incorporados.
- NNOM - Rede Neural no Microcontrolador (NNOM) é uma biblioteca de rede neural de inferência de alto nível especificamente para microcontroladores.
- Cafepresso - Biblioteca otimizada para aprendizado profundo em plataformas incorporadas baseadas em acelerador.
- LIBONNX - MOTOR DE INFERÊNCIA PURO C99 PURO PULHO E PULHO PORTÁVEL para dispositivos incorporados com suporte de aceleração de hardware.
- TinyMAix - Uma pequena biblioteca de rede neural de inferência especificamente para microcontroladores (TINYML). Projetado para seguir a regra: fácil de usar> Portable> Speed> Space.
cv
Visão computacional
- SOD incorporado - Visão computacional incorporada e biblioteca de aprendizado de máquina (CPU otimizada e IoT capaz).
- QR-Image-Encedded-QR Biblioteca Fork para sistemas incorporados.
Criptografia
Em geral
- Trussed - maneira mínima e modular de escrever aplicativos criptográficos em plataformas de microcontrolador (ferrugem).
- Wolfssh - Biblioteca de clientes e servidores leves SSHV2, escrita em ambientes ANSI C e direcionados para ambientes incorporados, RTOs e com restrição de recursos - principalmente devido ao seu pequeno tamanho, velocidade e conjunto de recursos.
- Lib-hidrogênio-Biblioteca criptográfica leve, segura e fácil de usar, adequada para ambientes restritos.
- KRYPTON - Biblioteca TLS/DTLS incorporada, subconjunto de origem e compatível binário.
- Wolftpm - Biblioteca TPM 2.0 altamente portátil, projetada para uso incorporado.
- MBEDTLS - Biblioteca TLS de código aberto, portátil, fácil de usar, legível e flexível e referência da implementação da API de criptografia PSA.
- ? Liblithium - Biblioteca de criptografia leve que é portátil por design. Requer apenas o padrão C99 padrão e não assume a endereçamento de 8 bits, tornando-o adequado para uso em algumas arquiteturas DSP, bem como em arquiteturas convencionais.
- ? Trezor -Crypto - algoritmos de criptografia fortemente otimizados para dispositivos incorporados.
- Poly1305-Donna-implementações de um código de autenticação de mensagem rápido (8 bits, 16 bits, 32 bits e 64 bits multiplica as versões).
- Arduinolibs - Biblioteca de Criptografia Arduino.
- TLSE - FILO C único TLS 1.2/1.3 Implementação, usando TomCrypt como biblioteca criptográfica.
- LibtomCrypt-Kit de ferramentas criptográfico bastante abrangente, modular e portátil que fornece aos desenvolvedores uma vasta gama de cifras de bloco publicadas bem conhecidas, funções de hash unidirecional, modos de encadeamento, generadores de números de random pseudo-random, criptografia de chave pública e uma pletora de outras rotinas.
- Monocifador - Biblioteca de criptografia fácil de usar, fácil de implantar, escrita em portátil C.
- Minicrypt - Biblioteca de primitivas criptográficas para sistemas incorporados.
- Tinycrypt - Biblioteca de algoritmos criptográficos fornece uma implementação para dispositivos restritos de um conjunto mínimo de primitivas de criptografia padrão.
- Tiny-AES-C-Pequeno portátil AES128/192/256 em C.
- µAES - Implementação leve, altamente flexível, portátil e compatível com ANSI -C dos modos de criptografia AES e bloqueio de cifra.
- CYCLONECRYPTO - Um kit de ferramentas criptográfico projetado para uso em sistemas incorporados. Ele fornece um conjunto abrangente de primitivas criptográficas (funções de hash, cifras de fluxo e bloqueio, criptografia pública) que podem ser usadas para adicionar recursos de segurança ao seu aplicativo incorporado.
Criptografia da curva elíptica
- Salty-ED25519 Assinaturas com otimizações de montagem para Cortex-M4 e Cortex-M33.
- Micro-ECC-ECDH e ECDSA para processadores de 8 bits, 32 bits e 64 bits.
- LIBUECC - Biblioteca de criptografia de curva elíptica muito pequena de propósito genérico compatível com ED25519.
- C25519-A-ED25519-CURVE25519 e ED25519 para sistemas de baixa memória (CURVE25519 A multiplicação escalar usa menos de meio kb de uso de pilha de pico).
Geração de números aleatórios
- O código PCG-C-Basic-fornece uma implementação mínima de um membro da família PCG de geradores de números aleatórios, que são rápidos, estatisticamente excelentes e oferecem vários recursos úteis.
- O código PCG -C - fornece uma implementação da família PCG de geradores de números aleatórios, que são rápidos, estatisticamente excelentes e oferecem vários recursos úteis.
OS
- Sistema operacional Citrus - Bare Metal Arm® Cortex® -A5.
- Vanilla - Bare Metal Arm® Cortex® -M7 Sistema operacional.
- ? Caos - Bare Metal Multicore Arm® Cortex® -A Sistema operacional com base em uma arquitetura de microkernel.
- LK KERNEL - O pequeno sistema operacional incorporado do kernel é o kernel com reconhecimento de SMP projetado para pequenos sistemas portados para uma variedade de plataformas e arquiteturas da CPU.
- Quarkts - OS para aplicações incorporadas que suportam programação cooperativa priorizada, controle de tempo, primitivas de comunicações entre tarefas, máquinas de estado hierárquico e coroutinas.
- Micro-Ros-Micro-Ros coloca o ROS 2 nos microcontroladores.
Rtos
- ? Freertos ™ - Freertos.
- Zephyr - RTOs de nova geração, escaláveis, otimizadas e seguras para arquiteturas de hardware múltiplas.
- Apache Nuttx - Apache Nuttx é um sistema operacional incorporado em tempo real (RTOs).
- SCMRTOS-Sistema operacional preventivo em tempo real, destinado ao uso com microcontroladores de chip único. O SCMRTOS é capaz de executar em pequenos UCs com uma quantidade tão pequena de RAM quanto 512 bytes. O RTOS é escrito em C ++ e suporta várias plataformas.
- Chibios/RT-sistema operacional compacto e rápido em tempo real, que suporta várias arquiteturas projetadas para aplicativos incorporados em microcontroladores de 8, 16 e 32 bits.
- Azure RTOS Threadx - Sistema operacional avançado em tempo real (RTOs) projetado especificamente para aplicativos profundamente incorporados.
- ECOS - Sistema operacional em tempo real destinado a aplicativos incorporados (de código fechado) .
- EMBox - RTOs configuráveis projetados para sistemas restritos e incorporados a recursos. A ideia principal do embox é usar o software Linux sem Linux.
- RIOT-Sistema operacional de threading em tempo real que suporta uma variedade de dispositivos que normalmente são encontrados na Internet das Coisas (IoT): microcontroladores de 8 bits, 16 bits e 32 bits. O Riot é baseado nos seguintes princípios de design: eficiência energética, recursos em tempo real, pegada de memória pequena, modularidade e acesso uniforme à API, independentemente do hardware subjacente (esta API oferece conformidade parcial do POSIX).
- Arm MBED OS - Sistema operacional de plataforma projetado para a Internet das Coisas. Ele inclui todos os recursos necessários para desenvolver um produto conectado com base em um microcontrolador de córtex-m do ARM, incluindo segurança, conectividade, RTOs e drivers para sensores e dispositivos de E/S.
- RT-Thread-RT-Thread nasceu em 2006, é um sistema operacional em tempo real de código aberto, neutro e comunitário (RTOs). RT-Thread possui versão padrão e versão nano. Para sistemas de microcontrolador com restrição de recursos (MCU), a versão nano-kernel que requer apenas 3KB Flash e os recursos de memória RAM de 1,2kb podem ser adaptados com ferramentas fáceis de usar; E para dispositivos IoT ricos em recursos, o RT-Thread pode usar a ferramenta de gerenciamento de pacotes de software on-line, juntamente com as ferramentas de configuração do sistema, para obter um corte modular intuitivo e rápido, importar perfeitamente pacotes de software ricos, alcançando assim funções complexas, como a interface gráfica do Android e os efeitos deslizantes do Android.
- Distortos - C ++ RTOs orientados a objetos para microcontroladores.
- R3-OS-RTOs estática experimental (μitron-esque) para sistemas profundamente incorporados, testando o limite de const avaliador e genéricos da ferrugem (ferrugem) .
- TOCK OS incorporado-sistema operacional incorporado projetado para executar vários aplicativos simultâneos e mutuamente desconfiados em microcontroladores de baixa memória e baixa potência (ferrugem) .
- Dandelion - MicroKernel Sistema operacional em tempo real em ferrugem.
- Muditaos - sistema operacional móvel com base em Freertos otimizados para exibições de tinta E - desenvolvidas para o telefone minimalista puro da Mudita.
- µC/OS-II-kernels preventivos, altamente portáteis e escaláveis em tempo real. Projetado para facilitar o uso em um grande número de arquiteturas da CPU.
- µC/OS-III-kernel preventivo, altamente portátil e escalável em tempo real. Projetado para facilitar o uso em um grande número de arquiteturas da CPU.
- QP/C-Estrutura incorporada em tempo real/RTOs para sistemas incorporados com base em objetos ativos (atores) e máquinas de estado hierárquico (FUSA, MISRA-C 2023 Compliance).
- RTOs bastante OK - Tickless, mínimo, 500 linhas de código, 7 funções.
Agendador baseado em eventos
- Uevloop - Loop de eventos rápido e leve para plataformas incorporadas.
- LWEVT - Sistema de gerenciamento de eventos leves para sistemas incorporados.
- ASYNC - estrutura assíncrona em C para sistemas onde o baixo uso da memória é importante.
- Protothreads - Forneça execução linear de código para sistemas orientados a eventos implementados em C projetados para sistemas severamente restritos à memória, como pequenos sistemas incorporados ou nós de rede de sensores sem fio.
- Eventos - Sistema baseado em eventos projetado para a estrutura do Arduino.
- VSF - Estrutura de software Versaloon - Uma pequena estrutura de software incremental orientada a eventos com capacidades preventivas para sistemas incorporados.
Interface do usuário
CLI
- CLI - CLI (interface da linha de comando) Exemplo de construção em C. puro projetado para MCU, entrada de bloqueio de suporte/entrada de modo não -bloco.
- Terminal - Interface da linha de comando para microcontroladores. As configurações flexíveis do terminal permitem integrá -lo a qualquer microcontrolador, sem muito esforço.
- Serialmenu - Biblioteca Arduino para criar facilmente menus no console serial.
- Terminal -Server - Servidor de Terminal para MCU.
- Microh - Shell para pequenos dispositivos incorporados.
- CMD -L - manipulador de linha de comando para dispositivos incorporados.
- CLI incorporada-CLI de um único cabeçalho com história e conclusão automática para sistemas incorporados.
- MicroShell - Implementação leve do CELO CELO VIRTUAL PULHELL, compatível com o terminal VT100. Apoie a árvore raiz, os caminhos de montagem em tempo de execução, os comandos globais e muito mais.
- Microrl - Micro Read Line Library para dispositivos pequenos e incorporados com suporte básico ao VT100.
Menu
- PROMENU - Biblioteca de menu de aplicativos genéricos avançados. A Biblioteca Promenu é usada para implementar rapidamente menus de usuários avançados. Ele suporta nidificação, configurações numéricas, configurações de texto, valores booleanos e eventos. A biblioteca é implementada em C ++ com a porta Arduino de construção, mas é fácil portar para diferentes arquiteturas.
- BBMENU - Menu CLI portátil simples para tarefas Misc (é baseado em menus de texto, facilmente definidos em um arquivo).
- Micromenu-V2-Minúscula biblioteca de menus orientada a texto em C para uso incorporado.
printf
- LWPRINTF - Biblioteca PrintF leve otimizada para sistemas incorporados.
- Embedded_printf - versão incorporada da famosa função "printf ()". A idéia é criar uma biblioteca simples e eficiente para atender às necessidades comuns em sistemas incorporados.
- TinyPrintf - Biblioteca Printf e Sprintf para pequenos sistemas incorporados.
- XPRINTF -FP - Printf para sistema incorporado com suporte de ponto flutuante.
- XPRINTF -IO - Biblioteca compacta de E/S de string. É ideal para pequenos microcontroladores que não têm memória de programa insuficiente para a função PrintF regular. O uso recomendado é: escrevendo seqüências formatadas no LCD ou UART e para console de depuração/manutenção.
- XPRINTF - Formatação completa FPRINTF () Implementação, adequada para uso incorporado.
- Printf minúsculo-implementação PrintF pequena, rápida, não dependente e totalmente carregada para sistemas incorporados. Passa de teste extensa.
- Printf NOVO-FILHO APRESENDADO E MANEIDADO DE PRIMEIRA DE
tiny-printf . Pequeno, rápido (ish), independente e totalmente carregado Printf, sprinf etc. - MINI -PRINTF - Minimal Printf () Implementação para projetos incorporados.
- Nanoprintf - A menor implementação pública de impressão para seu conjunto de recursos.
- FMT - Biblioteca de formatação moderna, fornecendo uma alternativa rápida e segura ao C Stdio e C ++ iostreams.
- EMIO - Formato Binária muito pequeno Pegada STD :: Formato como formatação usando C ++ 20.
scanf
- Scanf - Implementação portátil das funções de entrada do SCANF em C.
- ft_scanf - scanf simples %s %c %d.
Log
- Log incorporado - Biblioteca de madeira embutida pequena e bonita para MCU.
- EasyLogger-Ultra-Lightweight (ROM <1,6k, RAM <0,3k), biblioteca de log C/C ++ de alto desempenho.
- TRICE-Código de rastreamento do tipo CRICE SUPER RÁPIDO E TINY INCORDIDO C PrintF (também funciona dentro de interrupções) e o log de PC em tempo real (Visualização de ID do Trace).
- Logador de diagnóstico incorporado-estrutura de madeireiro leve para pequenos projetos baseados em microcontroladores. Transferência de string baseada em log e token multinível.
- SPDLOG - Biblioteca de log muito rápida, somente para cabeçalho/compilada, C ++.
- ELOG - O sistema de log é considerado para sistemas incorporados com utilização de recursos mininmais. O sistema de log foi projetado para minimizar a composição da memória no Flash ou na RAM, ativar um buffer de loggin em ram eficiente com armazenamento muito eficiente.
GUI
- LVGL-GUI incorporada poderosa e fácil de usar com muitos widgets, efeitos visuais avançados (opacidade, antialiasing, animações) e requisitos baixos de memória (16K RAM, 64K Flash).
- Easygui - Easygui para sistemas incorporados (altamente otimizado para STM32).
- TouchGFX - Ferramenta gráfica C ++ amigável para uso integrada como uma ferramenta gratuita no ecossistema STM32.
- EGUI - uma biblioteca gráfica incorporada EGUI.
- EslowGraphics - Biblioteca de gráficos de software de baixo nível pela ErRsoft (ESLGL).
- Biblioteca FTK - GUI para sistema incorporado.
- U8GLIB - Biblioteca Graphics Universal para sistemas incorporados de 8 bits.
- ? U8G2 - Biblioteca U8GLIB para displays monocromáticos, versão 2.
- SGFX - Biblioteca incorporada leve para exibições e telas sensíveis ao toque, fornecendo tudo o que é necessário para criar uma GUI incorporada totalmente em destaque.
- Guix - Fornece uma biblioteca gráfica completa e incorporada da biblioteca e ambiente de design, facilitando a criação e manutenção de todos os elementos gráficos necessários ao seu dispositivo.
- Guilib - Biblioteca GUI para sistemas incorporados.
- HMI_Library - Interface de máquina humana adequada para o sistema incorporado.
- Afgui - Biblioteca GUI incorporada.
- Makisegui - Biblioteca Gráfica e GUI para sistemas de incorporação.
- EMGUI - Biblioteca simples da UI para plataformas incorporadas.
- HAGL - Biblioteca de gráficos agnóticos de hardware leve para dispositivos incorporados. Ele suporta primitivas geométricas básicas, bitmaps, fontes de largura fixa. A biblioteca tenta permanecer leve, mas tem como alvo microchips razoavelmente poderosos, como o ESP32. Não há alocação dinâmica.
- Biblioteca de gráficos incorporados - 2D, focada em dispositivos incorporados restritos à memória para desenhar gráficos sem usar buffers (ferrugem).
- Lovyangfx - Library de gráficos de exibição (LCD / OLED / EPD) (para ESP32 SPI, I2C, 8bitparallel / esp8266 SPI, I2C / RP2040 SPI / ATSAMD51 SPI e muito mais).
- UGUI (µGUI) - Uma biblioteca gráfica. Ele suporta cores, escala de cinza, monocromáticas e múltiplas exibições, tela de toque, janelas e objetos, primitivas geométricas básicas, fontes, console. Não há alocação e memória dinâmica necessárias para buffer de tela. Documentação disponível no site do desenvolvedor.
Editores da GUI
- lv_gui_designer-arrastar e soltar, designer de GUI simples construído com LittleVGL.
- Walv - Online, Wysiwyg GUI Designer para LittleVgl. Plataforma cruzada suportada (até Android e iOS).
Utilos de fonte
- Bitmap-OSD-Font-A 'C' Bitmap Font para exibição na tela.
- TTF2Mesh - Biblioteca para TrueType Font Tessellation. Permite converter glifos de fonte em objetos de malha sem rasterização.
- SFAM_Generator - Scripts simples para gerar fontes de bits para STM32, AVR, Arduino ou outro MCU.
- MCUFONT - Uma biblioteca de renderização de fontes para microcontroladores.
Fontes e ícones
- Picon-Pico-icon Conjunto com ligadura hackeable (projetada em uma grade de 8: para ser legível a 8px 16px 24px 32px 48px).
Ferramentas de manupulação da imagem
- Ferramenta LCD-Image Converter-para criar bitmaps e fontes para aplicativos incorporados; Permite criar bitmaps e fontes e transformá -los em formato de origem "C" para aplicativos incorporados.
Hardware
- Biblioteca de driver incorporada - Driver incorporado para vários periféricos.
Io
- FASTION - GPIO FAST foi bifurcado em http://os.mbed.com/users/sissess/code/fastio/.
USB
- TinyUSB - pilha USB de plataforma cruzada para sistema incorporado.
- libusb_stm32 - pilha de dispositivos USB leve para microcontroladores STM32.
- CHERRYUSB - Host USB pequeno, bonito e portátil, pilha de dispositivos para sistema incorporado com USB.
Clarão
- SFUD - Driver universal do Flash Serial Flash (usando a Biblioteca de Driver Universal do Flash Universal Standard Serial (SPI) da JEDEC).
Pode barramento
- LIBCANARD-Implementação compacta do protocolo UAVCAN/CAN em C para sistemas incorporados em tempo real de alta integridade.
- CANBUS -MESSAGE - pode enviar mensagens para montagem e desmontagem da biblioteca para adolescentes & stm32.
- CanBoot - Can Bootloader para MCUS (atualmente são suportados LPC176X, STM32 e RP2040).
Outros
Gerenciamento de threads
- C-Thread-Pool-Pool de threads mínimos, mas poderoso em Ansi C.
Carregadores de botas
- McUBOOT - Botagem segura para microcontroladores de 32 bits.
- OpenBlT - Open Source Bootloader para alvos STM32, XMC, HCS12 e outros microcontroladores. Ele suporta interfaces de comunicação como: RS232, CAN, USB, TCP/IP e é enviado com a ferramenta de PC de microbotos de fácil uso para iniciar e monitorar a atualização do firmware. A execução de atualizações de firmware diretamente de um cartão SD também é suportada.
- TinyUf2 - Bootloader com base no TinyUSB para dispositivos incorporados, como ESP32, STM32 e IMX RT10XX.
- Wolfboot - Portátil, OS -Agnóstico, Secure Bootloader para microcontroladores, suportando mecanismos de autenticação de firmware e atualização de firmware.
Atualizações de firmware
- UF2 - Especificação de formato piscante USB para microcontroladores piscantes sobre o MSC (classe de armazenamento em massa; AKA Removable Flash Drive).
- Swupdate - Atualização de software para dispositivos Linux incorporados para atualizar o sistema no campo. A Swupdate suporta atualizações locais e OTA, várias estratégias de atualização e foi projetado com a segurança em mente.
Tela de toque
- TSLIB - Biblioteca de acesso à tela sensível ao toque.
Time Management Libs
- Timelib - Biblioteca de gerenciamento de tempo para dispositivos incorporados.
- μTZ - Biblioteca de fuso horário para pequenos sistemas incorporados.
Scripts e idiomas incorporáveis
- Little - um idioma pequeno, rápido e facilmente incorporado implementado em um único arquivo .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) e Stmicroelectronics STM8).
- TCC - Tiny C Compiler (~ 100kb para executável x86 TCC, incluindo pré -processador C, compilador C, assembler e ligante).
- LCC - compilador ANSI C retargetável (garfo para ULP no ESP32).
- PCC - compilador C portátil (espelho).
- Tinygo - GO compilador para pequenas coisas: microcontroladores, WebAssembly (WASM/WASI) e ferramentas de linha de comando (com base no LLVM).
- Chibicc - Mais um pequeno compilador C que implementa a maioria dos recursos do C11.
- RVCC-Compilador C Bootstrapado para ISAs RISC-V e ARM de 32 bits (gera binários executáveis de elfo linux para Rv32IM e ARMV7).
Sem categoria
- Apache Nuttx Apps - Coleção de ferramentas, conchas, utilitários de rede, bibliotecas, intérpretes e pode ser usado com os RTOs Nuttx.
- MODM - Generador de biblioteca C ++ 20 incorporado de BareBone para microcontroladores AVR, SAM e ARM Cortex -M (3534 dispositivos suportados).
- CEMBED - Pequena utilidade para incorporar arquivos em um cabeçalho C.
- Incbin-Biblioteca de um cabeçalho para incitar os arquivos binários e textuais.
- WTX - Um conjunto de ferramentas orientadas para a Web.
Contribuindo
- Suas contribuições são sempre bem -vindas! Leia as diretrizes de contribuição primeiro.
Notas de rodapé
Siga esta raiz-repo para obter as atualizações mais recentes.