개발자를위한 멋진 임베디드 리소스
임베디드 시스템 개발을위한 멋진 소스 및 Libs 목록
이 목록의 소스와 LIB의 구현은 8 비트, 16 비트 및 32 비트 마이크로 컨트롤러와 같은 자원으로 제한 된 임베디드 시스템 (저 메모리 및 저전력)에 특히 적합합니다.
경고이 목록은 Linux 관련 주제 (Raspberry Pi 플랫폼 또는 기타 SBC (단일 보드 컴퓨터))를 다루지 않습니다.
이 목록에 영구 URL : https://github.com/idoka/awesome-embedded-software
내용물
- 흔한
- 메모리
- 저장
- 프로토콜
- 무선 주파수 프로토콜
- 네트워크 프로토콜
- 웹 서버
- MQTT
- 프로토콜 파서
- 데이터 처리
- 암호화
- OS
- 사용자 인터페이스
- 구이
- GUI 편집자
- 글꼴 utils
- 그림 anupulation 도구
- 하드웨어
- 기타
- 스레드 관리
- 부트 로더
- 펌웨어 업데이트
- 터치 스크린
- 시간 관리 libs
- 임베드 가능한 스크립트 및 언어
- 컴파일러
- 분류되지 않은
흔한
- Wiselib- 이종, 분산, 임베디드 시스템 용 일반 알고리즘 라이브러리.
- util.embedded- 임베디드 개발을위한 유용한 지원 코드.
- EMBXX- 내장 된 C ++ 라이브러리.
- 임베디드 - 리브 - 임베디드 소프트웨어 용 라이브러리 (주로 STM32 용).
- ETLCPP- 사용자가 선불 객체의 크기 또는 최대 크기를 선언 할 수있는 내장 템플릿 라이브러리.
- EFLL- 내장 퍼지 로직 라이브러리는 임베디드 시스템을위한 표준 라이브러리입니다.
- 기타 휴대용 C 스 니펫 컬렉션 - 기타 휴대용 C 스 니펫 모음.
- SC- 휴대용, 독립형 C 라이브러리 및 데이터 구조 (C99).
- MicroTBX- 임베디드 소프트웨어 애플리케이션에 일반적으로 필요한 소프트웨어 구성 요소로 구성된 오픈 소스 마이크로 컨트롤러 도구 상자. MicroTBX는 MISRA 준수를 염두에두고 C 프로그래밍 언어 (C99)로 작성되었습니다.
- UMLIBC- 메모리 제한 시스템을위한 베어 본 LIBC.
- µCLIBC -NG- 내장 C 라이브러리.
- 임베디드 아티스트의 LIBC- 마이크로 컨트롤러 기반 임베디드 시스템을 대상으로 한 제거 된 C 표준 라이브러리 구현. 감소 된 기능 세트 (내장 된 특성으로 인해). 휴대 성과 빠른 베팅으로 선택되었습니다.
- HWLIB-C ++ OO 하드웨어 프로그래밍을위한 마이크로 컨트롤러 라이브러리.
- CTL -C 컨테이너 템플릿 라이브러리. ISO C99/C11 용 빠른 컴파일, 타입 안전, 헤더 전용 템플릿 유사 컨테이너 라이브러리가 있습니다.
- FSMLANG- 언어 생성기가있는 상태 머신 설명 언어. 평평하고 계층 적 기계 및 이벤트 서브 시스템을 지원합니다.
메모리
메모리 관리
- libmemory- malloc (), free () 및 기타 유용한 메모리 관리 기능을 구현하는 메모리 관리 라이브러리.
- LWMEM- 메모리 제약 조건이있는 임베디드 시스템을위한 가벼운 동적 메모리 관리자 라이브러리. Malloc, Calloc, Realloc 및 Free Functions를 구현합니다.
- UMM_MALLOC- 작은 (ISH) 마이크로 프로세서의 메모리 관리자.
- O1HEAP- 하드 실시간 고도리 임베디드 시스템을 위해 설계된 매우 결정적인 상수 복합성 메모리 할당 기.
버퍼
- EmbeddedProto -C ++ 프로토콜 버퍼 구현 ARM Cortex -M 마이크로 컨트롤러에 적합합니다. 작고 신뢰할 수 있으며 사용하기 쉽습니다.
- 프로토 비프-엠 베드드 C- C 프로그래밍 언어로 작성된 리소스 제한된 임베디드 애플리케이션을위한 프로토콜 버퍼 생성기.
링 버퍼
- LWRB- 가벼운 일반 링 버퍼 관리자 라이브러리.
- Ringbuffer- 내장 플랫폼 용 간단한 인터럽트 안전 링 (원형) 버퍼 큐 라이브러리.
- LFBB- 자물쇠가없는 양파 파파트 버퍼, 링 버퍼의 변형으로, 버퍼 내부에 항상 데이터를 읽거나 쓰기 또는 수정할 수 있습니다.
FIFO
- FIFFOST- MCU를위한 빠르고 일반적인 FIFO.
저장
파일 시스템
- lwext4- 마이크로 컨트롤러를위한 ext2/ext3/ext4 파일 시스템 라이브러리.
- FATFS- 지방 파일 시스템 구현.
- LevelX- Filex 및 독립형 목적을위한 플래시 마모 레벨링을 제공합니다.
- UFAT- 저 메모리 기능이 완성 된 VFAT 구현.
- FAT_IO_LIB- 작은 발자국, 낮은 의존성, C 코드 구현 FAT16 및 FAT32 드라이버.
- SDFAT -ARDUINO FAT16/FAT32 EXFAT 라이브러리.
- FAT32- 타사 종속성이없는 C로 작성된 Lighweight FAT32 파일 시스템. MSD를 초기화, 읽기 및 쓰기위한 기능을 제공하는 작은 포트가 필요합니다.
- EMFAT -STM32F4 용 FAT32 에뮬레이션 라이브러리.
- OpenFAT- 임베디드 프로세서를위한 FAT FILESYSTEM 구현.
- UC-FS- 마이크로 프로세서, 마이크로 컨트롤러 및 DSPS 용 소형, 신뢰할 수있는, 고성능 및 스레드 안전 내장 파일 시스템. 선택적 저널링 구성 요소는 지방 호환성을 유지하면서 실패 안전 작동을 제공합니다.
- LITTLEFS- 마이크로 컨트롤러 용으로 설계된 Little Fail -Safe 파일 시스템.
- UFFS- 마모 레벨링 및 우수한 결함 공차가있는 NAND 장치 용 파일 시스템.
데이터베이스
- FlashDB- 키 값 및 시계열 데이터를 지원하는 초경량 데이터베이스.
- PUREDB- 일정한 데이터베이스를 작성하고 읽기위한 휴대용 및 작은 라이브러리 세트.
- UNQLITE- 내장 된 NOSQL, 트랜잭션 데이터베이스 엔진.
- VEDIS- Redis의 임베디드 구현 (Redis와 개념에서 비슷한 70 개가 넘는 명령으로 구축되었지만 Vedis가 호스트 애플리케이션의 동일한 프로세스에서 실행 된 이후 네트워킹 계층이없는 구현).
- Microkvs- 마이크로 컨트롤러에 대한 구성 데이터를위한 작은 키 - 값 저장소.
플래시 메모리
- Easyflash- 가벼운 내장 플래시 메모리 라이브러리.
- FlashAlgo- 건축 용 프레임 워크 Cortex -M "FLM"스타일 플래시 프로그래밍 알고리즘.
- FCB- 플래시 원형 버퍼는 FIFO처럼 플래시를 처리 할 수있는 추상화를 제공합니다.
프로토콜
- NANOPB- ANSI C에서의 작은 코드 크기 프로토콜 버퍼 구현 구현은 특히 마이크로 컨트롤러에 사용하기에 적합하지만 메모리 제한 시스템에 적합합니다.
- 교환 - 원자력을 사용하여 임베디드 개발을위한 요청/응답 메커니즘.
- Xmodem -empedded, mobile, ioT 및 데스크탑 시스템을위한 XModem 라이브러리.
- TinyFrame- 직렬 인터페이스를위한 데이터 프레임 (UART / RS232)을위한 데이터 프레임을 구축 및 구문 분석하기위한 간단한 라이브러리.
- NANOMODBUS- 임베디드/마이크로 컨트롤러를위한 소형 MODBUS RTU/TCP C 라이브러리.
- RCOBS -RCOBS (Reverse -Cobs Encoding)는 제로 코딩으로 인코딩을 허용하도록 설계된 COBS의 변형입니다.
무선 주파수 프로토콜
- Radiohead- 임베디드 마이크로 프로세서 용 패킷 라디오 라이브러리.
- Adafruit의 Radiohead- 문서가 포함 된 임베디드 마이크로 프로세서 용 패킷 라디오 라이브러리.
네트워크 프로토콜
- UIP- Adam Dunkels가 작성한 TCP/IP 스택의 매우 작은 구현.
- LWIP- 처음에 Adam Dunkels가 개발 한 TCP/IP 프로토콜 제품군의 소규모 독립 구현. LWIP는 수십 킬로바이트의 무료 램과 약 40 킬로바이트의 코드 ROM을위한 공간이있는 임베디드 시스템에 사용하기에 적합합니다.
- httpclient -http 클라이언트 라이브러리.
- HTTPIO- HTTP 프로토콜의 독립형 크로스 플랫폼 요청 파서 및 응답 생성기.
- PICOTCP- 작은 발자국, 모듈 식 TCP/IP 스택은 임베디드 시스템 및 사물 인터넷 용으로 설계되었습니다.
- Raw Network 소켓이있는 TCP/IP 패킷을 생성하고 사용하기위한 RAWTCP_LIB -C 라이브러리.
- LRNDIS- USB (RNDIS + LWIP)를 통한 이더넷.
- Cyclonetcp- 임베디드 애플리케이션 전용 이중 IPv4/IPv6 스택. 스택은 전체 ANSI C 및 고도로 유지 관리 가능한 소스 코드 (GitHub 소스에 포함되지 않음)로 분산됩니다.
- STATICNET -C ++ TCP/IP 및 SSH 스택은 베어 메탈 (운영 체제 없음)를 위해 설계된 모든 정적 할당이 적용됩니다.
웹 서버
- Mongoose- 내장 된 웹 서버 및 임베디드 네트워킹 라이브러리. TCP, UDP, HTTP, WebSocket, MQTT 용 이벤트 중심 비 블로킹 API를 구현합니다.
- Libevhtp- 매우 빠르고 안전한 임베디드 HTTP 서버.
- LIBμHTTPD- LIBEV 및 HTTP -PARSER를 기반으로 매우 유연하고 가볍고 완전 비동기 HTTP 서버 라이브러리.
- Sandbird -C89로 작성된 작은 (800SLOC) 임베드 가능한 HTTP 서버.
MQTT
- libemqtt 1- MQTT 프로토콜을위한 임베디드 C 클라이언트 라이브러리.
- Libumqtt 2- Libev를 기반으로 한 가벼우면서도 완전 비동기 MQTT 클라이언트 C 라이브러리.
- PAHO MQTT -C 임베디드 시스템 용 클라이언트 라이브러리.
프로토콜 파서
정규 표현 파서
- REGEXP- 임베디드 시스템을위한 정규식 라이브러리.
GSM
- LWGSM- 호스트 장치에서 AT 명령 및 RTO와 통신 할 Simcom GSM 모듈 용 라이브러리.
- GSM_ENGINE- AT 명령 기반 모듈에 대한 구문 분석기의 일반.
- TINYGSM- GSM 모듈 용 소형 Arduino 라이브러리는 작동합니다.
GPS
- LWGPS- 임베디드 시스템을위한 경량 GPS NMEA 파서.
- Minmea- 가벼운 GPS NMEA 0183 PURE CO CARSER 라이브러리.
사령부 파서
- ATAT -LIB와 같은 커스텀 명령 처리를위한 lib.
- Cat -Host Devices에서 사용하기위한 명령에서 구문 분석을위한 일반 C 라이브러리.
- GZAT- C ++ 언어로 명령 구문 분석 라이브러리의 휴대용.
- ATPARSER- 명령 파서에서 호환되는 MBED -OS.
- ATCOMMANDER- 명령을 보내고 응답을 파싱하기위한 휴대용 C ++ 라이브러리.
- LWESP- AT 명령을 사용하여 ESP8266 또는 ESP32 Wi -Fi 모듈과 통신하기 위해 Parser Library의 명령에서 Lightweight ESP.
다양한 프로토콜
- LWPKT- RS-485에 중점을 둔 다중 장치 통신을위한 가벼운 패킷 프로토콜 구조.
- LWOW- 임베디드 시스템의 UART 하드웨어에 최적화 된 가벼운 Onewire 프로토콜 라이브러리.
- Panstamp -Swap- 기존 ISM 라디오를위한 간단한 무선 초록 프로토콜.
- Panstamp -Uswap- UART를 통해 연결된 MCU의 마이크로 스왑 스택.
- Min -MicroController Interconnect 네트워크 프로토콜 버전 2.0.
- LIBCOAP -C 컴퓨팅 파워, RF 범위, 메모리, 대역폭 또는 네트워크 패킷 크기와 같은 리소스를 제한하는 장치에 대한 가벼운 응용 프로그램 프로토콜 구현. 이 프로토콜 인 COAP는 IETF에 의해 RFC 7252로 표준화됩니다.
데이터 처리
수학
- Liquid-FPM- 내장 신호 처리를위한 소프트웨어 정의 무선 고정점 수학 라이브러리.
- FPM-C ++ 헤더 전용 고정점 수학 라이브러리.
- Eigen- 선형 대수를위한 C ++ 템플릿 라이브러리 : 행렬, 벡터, 수치 솔버 및 관련 알고리즘.
DSP 및 필터링
- Liquid-DSP- 소프트웨어 정의 라디오 용 디지털 신호 처리 라이브러리.
- Minfft- 작고 빠른 이산 푸리에 변환 라이브러리.
- IIR1 -DSP IIR 실시간 필터 라이브러리 C ++로 작성되었습니다.
- Kalman -Clib- 마이크로 컨트롤러는 순수한 Calman 필터 구현을 대상으로합니다.
- libdspl- Clanue로 작성된 크로스 플랫폼 디지털 신호 처리 알고리즘 라이브러리.
- PocketFft- FFTPACK의 구현이 크게 수정되었습니다.
- KISS FFT- "간단하고 바보 같은"원칙을 기반으로 한 혼합 라디 딕스 푸리에 변환.
- CMSIS-DSP- Cortex-M 및 Cortex-A를위한 임베디드 컴퓨팅 라이브러리.
- SIGLIB- 디지털 신호 처리 및 기계 학습 라이브러리 (X86, Cortex-A 및 Cortex-M, RISC-V, TI, ADI 등의 DSP).
- LSP-DSP-LIB- 디지털 신호 처리 용 DSP 라이브러리는 여러 하드웨어 아키텍처에서 SIMD-OP 최적화 컴퓨팅을 수행하는 기능 세트를 제공합니다. 모든 기능은 현재 IEEE-754 단일 정밀 플로팅 포인트 숫자에서 작동합니다.
압축
- HeatShrink- 임베디드/실시간 시스템을위한 데이터 압축 라이브러리.
- Shoco -C Library는 짧은 줄을 압축하고 압축합니다. 매우 빠르고 사용하기 쉽습니다. 기본 압축 모델은 영어 단어에 최적화되었지만 자체 압축 모델을 생성 할 수 있습니다.
- smaz- 매우 작은 줄에 대한 압축.
- ECL- 임베디드 압축 라이브러리는 내장을위한 것이 아니라 주로 소형 데이터에 맞춰져 있으며 제한된 환경을위한 특수 최적화 된 저 메모리 모드가 있습니다.
- UNISHOX2- 짧은 유니 코드 스트링을위한 하이브리드 인코더 (UNISHOX는 짧은 텍스트에 가장 적합한 압축을 제공하며 LZ4, Snappy, LZMA, Brottli 및 ZSTD와 같은 범용 압축 알고리즘과 비교되지 않아야합니다).
- TCOBS- 내재적 인 실행 길이 인코딩을 사용하여 코브 프레임을 사용하여 짧은 메시지 압축 압축은 통계적으로 약간 더 많은 데이터를 포함하는 데이터에 최적화되어 있으며, 데이터는 종종 작은 값을 가진 16, 32 또는 64 비트 숫자를 운반하기 때문입니다.
AI ML
인공 지능 및 기계 학습
- 크라늄 - 휴대용, 헤더 전용, 피드 포워드 인공 신경 네트워크 라이브러리 바닐라 C99로 작성되었습니다.
- μtensor -tinyml ai 추론 라이브러리.
- FIDO- 임베디드 전자 및 로봇 공학을위한 가벼운 C ++ 머신 러닝 라이브러리.
- NNOM- 마이크로 컨트롤러 (NNOM)의 신경 네트워크는 마이크로 컨트롤러를위한 높은 수준의 추론 신경망 라이브러리입니다.
- CAFFEPRESSO- 임베디드 가속기 기반 플랫폼에서 딥 러닝을위한 최적화 된 라이브러리.
- Libonnx- 하드웨어 가속 지원이있는 임베디드 장치 용 경량, 휴대용 순수한 C99 ONNX 추론 엔진.
- Tinymaix- 마이크로 컨트롤러 (Tinyml)를위한 작은 추론 신경망 라이브러리. 사용하기 쉬운> 휴대용> 속도> 공간을 따르도록 설계되었습니다.
CV
컴퓨터 비전
- 임베디드 잔디 - 내장 된 컴퓨터 비전 및 머신 러닝 라이브러리 (CPU 최적화 및 IoT 기능).
- QR-IMAGE-EMBEDDED- 임베디드 시스템 용 QR 라이브러리 포크.
암호화
일반적인
- 트러스 - 마이크로 컨트롤러 플랫폼 (Rust)에 암호화 응용 프로그램을 작성하는 최소의 모듈 식 방법.
- WOLFSSH- 가벼운 SSHV2 클라이언트 및 서버 라이브러리는 ANSI C로 작성되고 내장, RTO 및 자원으로 제한된 환경을 대상으로합니다. 주로 크기, 속도 및 기능 세트로 인해 주로.
- Libhydrogen- 가볍고 안전하며 사용하기 쉬운 크립토 라이브러리 제한된 환경에 적합합니다.
- Krypton- 임베디드 TLS/DTLS 라이브러리, 소스 및 이진 호환 OpenSSL 서브 세트.
- WOLFTPM- 내내 용도로 설계된 고도의 휴대용 TPM 2.0 라이브러리.
- MBEDTLS- 오픈 소스, 휴대용, 사용하기 쉽고 읽기 쉽고 유연한 TLS 라이브러리 및 PSA 암호화 API의 참조 구현.
- ? liblithium- 디자인별로 휴대 할 수있는 경량 암호화 라이브러리. 표준 C99 만 필요하며 8 비트 주소성을 가정하지 않으므로 일부 DSP 아키텍처 및 주류 아키텍처에 사용하기에 적합합니다.
- ? Trezor -Crypto- 임베디드 장치에 대한 크게 최적화 된 암호화 알고리즘.
- Poly1305-Donna- 빠른 메시지 확인 코드 구현 (8 비트, 16 비트, 32 비트 및 64 비트를 곱한 버전).
- Arduinolibs- Arduino 암호화 라이브러리.
- TLSE- 단일 C 파일 TLS 1.2/1.3 구현, Tomcrypt를 암호화 라이브러리로 사용합니다.
- LibtomCrypt- 개발자에게 잘 알려진 공개 된 블록 암호, 일방 통행 해시 기능, 체인 모드, 유사 랜덤 번호 생성기, 공개 키 암호화 및 기타 루틴의 광대 한 배열을 제공하는 상당히 포괄적이고 모듈 식 및 휴대용 암호화 툴킷.
- 모노 사이피 - 사용하기 쉽고, 배포하기 쉽고, 감사 가능한 Crypto 라이브러리가 휴대용 C로 작성되었습니다.
- 미니 크립 - 임베디드 시스템을위한 암호화 프리미티브 라이브러리.
- TinyCrypt- 암호화 알고리즘의 라이브러리는 최소한의 표준 암호화 프리미티브 세트의 제한된 장치에 대한 구현을 제공합니다.
- Tiny-AES-C- 작은 휴대용 AES128/192/256 in C.
- µAES- AES 암호화 및 블록 암호 모드의 경량, 유연성, 휴대용 및 ANSI -C 호환 구현.
- CycloneCrypto- 임베디드 시스템에 사용하도록 설계된 암호화 툴킷. 포괄적 인 암호화 프리미티브 세트 (해시 함수, 스트림 및 블록 암호, 공개 키 암호화)를 제공하여 임베디드 애플리케이션에 보안 기능을 추가하는 데 사용할 수 있습니다.
타원 곡선 암호화
- Salty-ED25519 Cortex-M4 및 Cortex-M33에 대한 어셈블리 최적화가있는 서명.
- 8 비트, 32 비트 및 64 비트 프로세서에 대한 Micro-ECC-ECDH 및 ECDSA.
- LIBUECC- 매우 작은 일반적인 목적 타원 곡선 암호화 라이브러리 ED25519와 호환됩니다.
- C25519-and-ED25519- 저 메모리 시스템의 경우 Curve25519 및 ED25519 (Curve25519 스칼라 곱셈은 최대 KB 미만의 피크 스택 사용)를 사용합니다).
무작위 숫자 생성
- PCG-C-Basic-Code는 PCG 패밀리의 임의 번호 생성기 제품군의 한 구성원을 최소한으로 구현할 수 있으며, 이는 빠르고 통계적으로 우수하며 여러 가지 유용한 기능을 제공합니다.
- PCG -C -Code는 PCG 패밀리의 임의 번호 생성기 제품군을 구현하여 빠르고 통계적으로 우수하며 여러 가지 유용한 기능을 제공합니다.
OS
- 감귤 - 베어 메탈 ARM® Cortex® -A5 운영 체제.
- 바닐라 - 베어 메탈 암 ® Cortex® -M7 운영 체제.
- ? 카오스 - 베어 메탈 Multicore Arm® Cortex® -Microkernel 아키텍처를 기반으로 한 운영 체제.
- LK 커널 - 작은 커널 내장 운영 체제는 다양한 플랫폼 및 CPU 아키텍처로 포팅 된 소형 시스템을 위해 설계된 SMP 인식 커널입니다.
- Quarkts- 우선 순위가 높은 협력 스케줄링, 시간 제어, 작업 간 통신 프리미티브, 계층 적 상태 기계 및 코 루틴을 지원하는 임베디드 애플리케이션을위한 OS.
- Micro-Ros-Micro-Ros는 ROS 2를 마이크로 컨트롤러에 넣습니다.
RTOS
- ? Freertos ™ - Freertos.
- Zephyr- 여러 하드웨어 아키텍처를위한 새로운 세대, 확장 가능하고 최적화 된 안전 RTO.
- Apache Nuttx -Apache Nuttx는 성숙하고 실시간 임베디드 운영 체제 (RTO)입니다.
- SCMRTOS- 단일 칩 마이크로 컨트롤러와 함께 사용하기위한 작은 실시간 선제 적 운영 체제. SCMRTOS는 512 바이트만큼 소량의 RAM으로 작은 UC를 실행할 수 있습니다. RTO는 C ++에 작성되었으며 다양한 플랫폼을 지원합니다.
- Chibios/RT- 8-, 16 및 32 비트의 마이크로 컨트롤러에 포함 된 응용 프로그램을 위해 설계된 여러 아키텍처를 지원하는 소형 및 빠른 실시간 운영 체제.
- Azure RTOS ThreadX- 고급 실시간 운영 체제 (RTO)는 깊게 포함 된 응용 프로그램을 위해 특별히 설계되었습니다.
- ECOS- 임베디드 애플리케이션 (폐쇄 소스) 을위한 실시간 운영 체제.
- EMBOX- 자원 제한 및 임베디드 시스템을 위해 설계된 구성 가능한 RTO. Embox Main Idea는 Linux없이 Linux 소프트웨어를 사용하고 있습니다.
- RIOT- 일반적으로 사물 인터넷 (IoT)에서 발견되는 다양한 장치를 지원하는 실시간 멀티 스레딩 운영 체제 : 8 비트, 16 비트 및 32 비트 마이크로 컨트롤러. Riot는 기본 하드웨어와 무관하게 에너지 효율, 실시간 기능, 작은 메모리 발자국, 모듈 식 및 균일 한 API 액세스와 같은 설계 원칙을 기반으로합니다 (이 API는 부분 POSIX 준수를 제공합니다).
- ARM MBED OS- 사물 인터넷을 위해 설계된 플랫폼 운영 체제. 여기에는 보안, 연결성, RTO 및 센서 용 드라이버 및 I/O 장치를 포함하여 ARM Cortex-M 마이크로 컨트롤러를 기반으로 연결된 제품을 개발하는 데 필요한 모든 기능이 포함되어 있습니다.
- RT-STHRED-RT-STHRED는 2006 년에 태어 났으며 오픈 소스, 중립 및 커뮤니티 기반 실시간 운영 체제 (RTO)입니다. RT- 스레드에는 표준 버전과 나노 버전이 있습니다. MCU (Resource-Constrained MicroController) 시스템의 경우 3KB 플래시와 1.2KB RAM 메모리 리소스 만 필요한 나노 커널 버전을 사용하기 쉬운 도구로 맞춤화 할 수 있습니다. 리소스가 풍부한 IoT 장치의 경우 RT-Shread는 시스템 구성 도구와 함께 온라인 소프트웨어 패키지 관리 도구를 사용하여 직관적이고 빠른 모듈 식 절단을 달성하고 풍부한 소프트웨어 패키지를 원활하게 가져 와서 Android의 그래픽 인터페이스와 같은 복잡한 기능을 달성하고 슬라이딩 효과, 스마트 음성 상호 작용 효과 등을 달성 할 수 있습니다.
- Distortos- 마이크로 컨트롤러를위한 객체 지향 C ++ RTO.
- R3-OS- 심하게 내장 된 시스템에 대한 실험 정적 (μitron-esque) RTO, Rust의 Const Eval 및 제네릭 (Rust) 의 한계를 테스트합니다.
- Tock Embedded OS- 저 메모리 및 저전력 마이크로 컨트롤러 (Rust) 에서 다중 동시, 상호 불신의 응용 프로그램을 실행하도록 설계된 임베디드 운영 체제.
- 민들레 - Rust의 Microkernel 실시간 운영 체제.
- Muditaos- e 잉크 디스플레이에 최적화 된 Freertos를 기반으로 한 모바일 운영 체제 - Mudita Pure Minimalist Phone 용으로 개발되었습니다.
- µC/OS-II- 선제 적, 고도의 휴대용 및 확장 가능한 실시간 커널. 수많은 CPU 아키텍처에서 사용하기 쉽도록 설계되었습니다.
- µC/OS-III- 선제 적, 고도의 휴대용 및 확장 가능한 실시간 커널. 수많은 CPU 아키텍처에서 사용하기 쉽도록 설계되었습니다.
- QP/C- 활성 객체 (ACTORS) 및 계층 적 상태 머신 (FUSA, MISRA-C 2023 준수)을 기반으로 임베디드 시스템을위한 실시간 임베디드 프레임 워크/RTO.
- 상당히 OK RTO- 진드기, 최소 500 줄의 코드, 7 개의 기능.
이벤트 기반 스케줄러
- UEVLOOP- 임베디드 플랫폼 용 빠르고 가벼운 이벤트 루프.
- LWEVT- 임베디드 시스템을위한 가벼운 이벤트 관리 시스템.
- 비동기 - 메모리 사용량이 낮은 시스템의 경우 C의 비동기 프레임 워크.
- Protothreads- 작은 임베디드 시스템 또는 무선 센서 네트워크 노드와 같은 심각한 메모리 제한 시스템을 위해 설계된 C로 구현 된 이벤트 중심 시스템에 선형 코드 실행을 제공합니다.
- Eventos- Arduino 프레임 워크 용으로 설계된 이벤트 기반 시스템.
- VSF -Versaloon 소프트웨어 프레임 워크 - 임베디드 시스템을위한 작은 선제 적용 가능한 이벤트 중심 증분 소프트웨어 프레임 워크.
사용자 인터페이스
클리
- CLI -CLI (명령 줄 인터페이스) 예제 MCU 용으로 설계된 CUN CLI의 빌드, 지원 블록/비 블록 모드 입력.
- 터미널 - 마이크로 컨트롤러의 명령 줄 인터페이스. 유연한 터미널 설정을 통해 많은 노력없이 마이크로 컨트롤러와 통합 할 수 있습니다.
- SerialMenu -Arduino 라이브러리 직렬 콘솔에서 메뉴를 쉽게 생성 할 수 있습니다.
- 터미널 서버 - MCU 용 터미널 서버.
- Microsh- 작은 내장 장치 용 쉘.
- CMD -L- 임베디드 장치의 명령 줄 처리기.
- 임베디드 클리-내장 시스템의 히스토리 및 자동 완성 기능이있는 단일 헤더 CLI.
- Microshell- VT100 터미널과 호환되는 가상 쉘의 경량 순수 C 구현. 루트 트리, 런타임 장착 경로, 글로벌 명령 등을 지원합니다.
- Microrl- 기본 VT100 지원을 제공하는 소형 및 임베디드 장치 용 Micro Read Line 라이브러리.
메뉴
- Promenu- 고급 일반 응용 프로그램 메뉴 라이브러리. Promenu 라이브러리는 고급 사용자 메뉴를 빠르게 구현하는 데 사용됩니다. 중첩, 숫자 설정, 텍스트 설정, 부울 값 및 이벤트를 지원합니다. 라이브러리는 빌드 인 Arduino 포트와 함께 C ++에서 구현되지만 다른 아키텍처로 쉽게 포트를 제공 할 수 있습니다.
- BBMENU- 기타 작업을위한 간단한 휴대용 CLI 메뉴 (텍스트 메뉴를 기반으로하며 파일에 쉽게 정의됩니다).
- Micromenu-V2- 내장 된 용도로 C의 작은 텍스트 지향 메뉴 라이브러리.
printf
- LWPRINTF- 임베디드 시스템에 최적화 된 가벼운 Printf 라이브러리.
- Embedded_printf- 유명한 "printf ()"함수의 임베디드 버전. 이 아이디어는 임베디드 시스템에서 몇 가지 일반적인 요구를 충족시키기 위해 간단하고 효율적인 라이브러리를 만드는 것입니다.
- TinyPrintf- 작은 임베디드 시스템 용 Tiny Printf 및 Sprintf 라이브러리.
- XPRINTF -FP- 부동 소수점 지원이 포함 된 임베디드 시스템을위한 printf.
- Xprintf -Io- 소형 문자열 I/O 라이브러리. 일반 printf 기능을위한 프로그램 메모리가 충분하지 않은 작은 마이크로 컨트롤러에 이상적입니다. 권장되는 용도는 다음과 같습니다. LCD 또는 UART 및 디버그/유지 보수 콘솔에 형식의 문자열을 작성합니다.
- XPRINTF- 완전한 fprintf () 포맷 구현, 내장 사용에 적합합니다.
- Tiny-Printf- 임베디드 시스템에 대해 작고 빠르며, 비 의존적이며 완전히로드 된 Printf 구현. 광범위한 테스트 스위트 통과.
- Tiny-Printf New-
tiny-printf 의 포크 향상 및 유지 관리. 작고 빠른 (ISH), 자체 포함 및 완전히로드 된 Printf, Sprinf 등 - 미니 프린트 - 임베디드 프로젝트에 대한 최소 printf () 구현.
- nanoprintf- 기능 세트를위한 가장 작은 공개 printf 구현.
- FMT- 현대식 서식 라이브러리 C Stdio 및 C ++ iOStreams에 대한 빠르고 안전한 대안을 제공합니다.
- Emio- 매우 작은 이진 풋 프린트 std :: 형식 C ++ 20을 사용하여 형식과 같은 형식.
스캔
- SCANF- C에서 SCANF 입력 함수의 휴대용 구현
- FT_SCANF- 간단한 SCANF %S %C %D.
벌채 반출
- 임베디드 로그 - MCU 용 작고 아름다운 임베디드 로그 라이브러리.
- Easylogger- 초경량 중량 (ROM <1.6K, RAM <0.3K), 고성능 C/C ++ 로그 라이브러리.
- TRICE- 매우 빠르고 작은 내장 장치 C printf-like trace 코드 (인터럽트 내에서도 작동) 및 실시간 PC 로깅 (트레이스 ID 시각화).
- 임베디드-진단-로거-소규모 마이크로 컨트롤러 기반 프로젝트를위한 경량 로거 프레임 워크. 다단계 로그 및 토큰 기반 문자열 전송.
- SPDLOG- 매우 빠르고 헤더 전용/컴파일, C ++ 로깅 라이브러리.
- Elog -Log 시스템은 미성년 자원 활용을 갖춘 임베디드 시스템에 대해 생각됩니다. 로그 시스템은 플래시 또는 RAM의 메모리 컴퓨팅을 최소화하도록 설계되었으며 매우 효율적인 스토리지를 갖춘 eficient in-ram loggin 버퍼를 가능하게합니다.
구이
- LVGL- 많은 위젯, 고급 시각 효과 (불투명도, 안티 니아, 애니메이션) 및 낮은 메모리 요구 사항 (16k RAM, 64K Flash)이있는 강력하고 사용하기 쉬운 내장 GUI.
- Easygui -Easygui는 임베디드 시스템을위한 EasyGui (STM32에 대해 최적화).
- T
- EGUI- EGUI 임베디드 그래픽 라이브러리.
- Eslowgraphics- Errorsoft (ESLGL)의 저수준 소프트웨어 그래픽 라이브러리.
- FTK- 임베디드 시스템 용 GUI 라이브러리.
- U8Glib- 8 비트 임베디드 시스템을위한 범용 그래픽 라이브러리.
- ? u8g2- 단색 디스플레이 용 U8Glib 라이브러리, 버전 2.
- SGFX- 디스플레이 및 터치 스크린 용 가벼운 내장 라이브러리가 완전히 포함 된 내장 GUI를 구축하는 데 필요한 모든 것을 제공합니다.
- GUIX- 완전하고 내장 된 그래픽 사용자 인터페이스 (GUI) 라이브러리 및 설계 환경을 제공하여 장치가 필요한 모든 그래픽 요소의 생성 및 유지 관리를 용이하게합니다.
- GUILIB- 임베디드 시스템 용 GUI 라이브러리.
- HMI_LIBRARY- 임베디드 시스템에 적합한 휴먼 머신 인터페이스.
- Afgui- 내장 GUI 라이브러리.
- Makisegui- 임베드 시스템 용 그래픽 및 GUI 라이브러리.
- EMGUI- 임베디드 플랫폼 용 간단한 C UI 라이브러리.
- HAGL- 임베디드 장치를위한 가벼운 하드웨어 아프리티드 그래픽 라이브러리. 기본 기하학적 프리미티브, 비트 맵, 블리팅, 고정 너비 글꼴을 지원합니다. 도서관은 가벼운 상태를 유지하려고하지만 ESP32와 같은 합리적으로 강력한 마이크로 칩을 목표로합니다. 동적 할당은 없습니다.
- 임베디드 그래픽 - 메모리 제한된 임베디드 장치에 중점을 둔 2D 그래픽 라이브러리는 버퍼 (Rust)를 사용하지 않고 그래픽을 그립니다.
- LOVYANGFX- 디스플레이 (LCD / OLED / EPD) 그래픽 라이브러리 (ESP32 SPI, I2C, 8BITPARALLEL / ESP8266 SPI, I2C / RP2040 SPI / ATSAMD51 SPI 등).
- Ugui (µgui) - 그래픽 라이브러리. 색상, 그레이 스케일, 흑백 및 다중 디스플레이, 터치 스크린, 창 및 물체, 기본 기하학적 기본 요소, 글꼴, 콘솔을 지원합니다. 스크린 버퍼에 필요한 동적 할당 및 메모리는 없습니다. 개발자 웹 사이트에서 사용할 수 있습니다.
GUI 편집자
- LV_GUI_DESIGNER- Drag-and Drop, LittleVGL로 제작 된 간단한 GUI 디자이너.
- WALV- 온라인, LittleVGL 용 Wysiwyg Gui 디자이너. 크로스 플랫폼 지원 (안드로이드 및 iOS조차도).
글꼴 utils
- 비트 맵 -OSD-Font- 화면 디스플레이를위한 'C'비트 맵 글꼴.
- TTF2MESH- 트루 타입 글꼴 테셀레이션을위한 라이브러리. 글꼴 글리프를 래스터 화없이 메쉬 물체로 변환 할 수 있습니다.
- SFAM_GENERATOR- STM32, AVR, Arduino 또는 기타 MCU 용 비트 폰트를 생성하기위한 간단한 스크립트.
- MCUFONT- 마이크로 컨트롤러를위한 글꼴 렌더링 라이브러리.
글꼴과 아이콘
- Picon-Pico-ICon은 해킹 가능한 합자로 설정되었습니다 (8 그리드로 설계 : 8px 16px 24px 32px 48px에서 읽을 수 있도록).
그림 anupulation 도구
- LCD-IMAGE-CONVERTER- 임베디드 애플리케이션을위한 비트 맵 및 글꼴을 생성하는 도구; 비트 맵 및 글꼴을 만들고 임베디드 애플리케이션의 "C"소스 형식으로 변환 할 수 있습니다.
하드웨어
- 임베디드 드라이버 - 다양한 주변 장치를위한 내장 된 드라이버 라이브러리.
io
- Fastio -FAST GPIO는 http://os.mbed.com/users/sissors/code/fastio/에서 포크되었습니다.
USB
- TinyUSB- 임베디드 시스템을위한 크로스 플랫폼 USB 스택.
- libusb_stm32- STM32 마이크로 컨트롤러 용 경량 USB 장치 스택.
- Cherryusb- 미식가가있는 작은 시스템 용 작고 아름답고 휴대용 USB 호스트 및 장치 스택.
플래시
- SFUD- 직렬 플래시 범용 드라이버 (Jedec의 SFDP 표준 직렬 (SPI) 사용 사용).
캔 버스
- LIBCANARD- 고 통혈 실시간 임베디드 시스템을위한 UAVCAN/CAN 프로토콜의 소형 구현.
- CANBUS MESSAGE- Temensy & STM32의 메시지 어셈블리 및 분해 라이브러리.
- CANBOOT -MCU 용 부트 로더 (현재 LPC176X, STM32 및 RP2040 MCU가 지원됩니다).
기타
스레드 관리
- C- 스레드-풀-Ansi C의 최소하지만 강력한 스레드 풀
부트 로더
- McUboot- 32 비트 마이크로 컨트롤러를위한 보안 부팅.
- OpenBLT- STM32, XMC, HCS12 및 기타 마이크로 컨트롤러 대상의 오픈 소스 부트 로더. RS232, CAN, USB, TCP/IP와 같은 통신 인터페이스를 지원하며 펌웨어 업데이트를 시작하고 모니터링하기 위해 사용하기 쉬운 마이크로 부트 PC 도구와 함께 제공됩니다. SD 카드에서 직접 펌웨어 업데이트를 수행하는 것도 지원됩니다.
- Tinyuf2- ESP32, STM32 및 IMX RT10XX와 같은 임베디드 장치 용 TinyUSB를 기반으로 한 부트 로더.
- WOLFBOOT- 마이크로 컨트롤러 용 휴대용, OS -Agnostic, Secure Bootloader, 펌웨어 인증 및 펌웨어 업데이트 메커니즘을 지원합니다.
펌웨어 업데이트
- UF2- MSC를 통한 플래시 마이크로 컨트롤러에 대한 USB 플래시 형식 사양 (Mass Storage Class; 일명 탈착식 플래시 드라이브).
- SWUPDATE- 내장 된 Linux 장치를위한 소프트웨어 업데이트는 현장에서 시스템을 업데이트합니다. SWUPDATE는 로컬 및 OTA 업데이트, 여러 업데이트 전략을 지원하며 보안을 염두에두고 설계되었습니다.
터치 스크린
시간 관리 libs
- Timelib- 임베디드 장치 용 시간 관리 라이브러리.
- μTZ- 작은 임베디드 시스템 용 시간대 라이브러리.
임베드 가능한 스크립트 및 언어
- Little- 단일 .C 파일로 구현되는 작고 빠르며 쉽게 포함 할 수있는 언어.
컴파일러
- SDCC- 소형 장치 C 컴파일러 (인텔 MCS51 기반 마이크로 프로세서 (8031, 8032, 8051, 8052 등), Maxim (이전의 Dallas) DS80C390 변이체, 프리 스케일 (이전 모터) HC08 기반 (HC08, S08), ZILOG Z80 (Z80, Z18, SMIUS). Rabbit 2000, 2000a, 3000a, TLCS-90), Padauk (PDK14, PDK15) 및 Stmicroelectronics STM8).
- TCC- 작은 C 컴파일러 (C 프리 프로세서, C 컴파일러, 어셈블러 및 링커를 포함한 X86 TCC 실행 파일의 경우 ~ 100KB).
- LCC- 리 타겟 가능한 ANSI C 컴파일러 (ESP32의 ULP 용 포크).
- PCC- 휴대용 C 컴파일러 (미러).
- Tinygo -Microcontrollers, WebAssembly (WASM/WASI) 및 명령 줄 도구 (LLVM 기반)를위한 작은 물건을위한 GO 컴파일러.
- CHIBICC- 대부분의 C11 기능을 구현하는 또 다른 작은 C 컴파일러.
- RVCC- 32 비트 RISC-V 및 ARM ISA 용 부트 스트랩 C 컴파일러 (RV32IM 및 ARMV7 용 실행 파일 Linux ELF BINARIE를 생성).
분류되지 않은
- Apache Nuttx 앱 - 도구, 쉘, 네트워크 유틸리티, 라이브러리, 통역사 모음 및 Nuttx RTO와 함께 사용할 수 있습니다.
- MODM- AVR, SAM 및 ARM Cortex -M 마이크로 컨트롤러 (3534 장치 지원) 용 BareBone 내장 C ++ 20 라이브러리 생성기.
- Cembed- C 헤더에 파일을 포함시키는 작은 유틸리티.
- INCBIN- 컴파일 타임을위한 원 헤더 라이브러리 바이너리 및 텍스트 파일.
- WTX- 웹 지향적 인 도구 세트.
기여
- 당신의 기여는 항상 환영합니다! 기여 가이드 라인을 먼저 읽으십시오.
각주
최신 업데이트를 위해이 루트 레포를 따르십시오.