推荐⼀些嵌⼊式、CC++的开源库和项⽬
前⾔
想⽤代码实现⼀个功能时,我们可以先看看是否有前辈已经实现了该功能,并且开源分享在⽹上。⼀般我们⾃⼰造出来的轮⼦的可⽤性基本上是很难和⼤神们造的轮⼦相⽐的。
因此多了解⼀下优秀的开源库的使⽤,可以让我们编码的时候少⾛很多弯路。
之前我就做了⼀个系列博客,关于分享C、C++的开源库。⽂章如下:
很多其实都是浅尝辄⽌,但阅读使⽤这些开源库可以让我们学习优秀的编码习惯和编码⽅式,可以为我们⽤代码实现需求积累武器库。
推荐⼀些嵌⼊式、C/C++的开源库和项⽬
本⼈最近在学习数据结构的课程,在过程中发现⽤C语⾔来实现各种数据结构类型的时候很难做到真正意义上的通⽤的数据结构,于是在⽹上搜罗了⼀些所谓的C语⾔通⽤数据结构库,在此也将这些数据结构库⼀⼀罗列,⽅便⼤家查和使⽤。C语⾔没有像C++那样的STL库,语⾔本⾝并不是⼀种真正意义上的⾼级语⾔,实现项⽬中真正⽤到的算法中的C语⾔的数据结构也很少,要么是按照⾃⼰的需求来实现,
要么⼀般都⽤C++来完成⼤型的项⽬⼯程,C++有现成的库来开发,可以缩短⼯程的时间和提⾼效率。但是C语⾔仍然保持在编程语⾔占有率的前列,这其实依赖于在底层系统级开发应⽤中扮演着不可替代的作⽤。最新的开发者编程语⾔的情况可以查看这篇⽂章:
⽐较⼤型的C语⾔通⽤数据结构的库有(数据结构只是其中的⼀⼩部分):
1. Gnulib - The GNUPortability Library相关的链接:
2.ApachePortable Runtime (APR) project相关的链接:
3. Glib相关链接: /glib/unstable/
下⾯是⼀些相对⽐较⼩的C语⾔数据结构和算法的库
4.
5.
6. GDSL - The Generic Data Structures Library 相关链接:
7. BSD Library 相关链接:
1、OS
鸿蒙OS:⼀款⾯向全场景的开源分布式操作系统。
RT-Thread:⼀款⼩⽽美的物联⽹操作系统。
TencentOS tiny:⼀款⾯向物联⽹领域开发的实时操作系统。
freertos:⼀个轻量级的操作系统。
µC/OS :⼀个功能齐全的嵌⼊式操作系统。
mbed-os :ARM⾃⼰打造、主打IoT的⼀整套软件解决⽅案 。
BabyOS:专为MCU项⽬开发提速的代码框架 。
LuatOS :LuatOS是运⾏在嵌⼊式硬件的实时操作系统,只需要少量内存的flash空间就能运⾏,⽤户编写lua代码就可完成各种功能。
Contiki-OS:⼀个⼩型的,开源的,极易移植的多任务操作系统。
DJYOS:都江堰操作系统。
klite :简洁易⽤的嵌⼊式操作系统内核。
lmosem :⼀个完全从第⼀⾏引导代码开始编写,基于ARM平台,⽀持多进程、多CPU、内存管理、⽂件与设备管理的全32位操作系统内核。
freenos:FreeNOS微内核操作系统。
2、实⽤库/框架
cJSON:⼀个基于C语⾔的轻量级的JSON解析库。
jsmn:⼀个⼩巧的基于C语⾔的JSON解析库。
MultiTimer :⼀个软件定时器扩展模块。
MultiButton:⼀个⼩巧简单易⽤的事件驱动型按键驱动模块。
SmartTimer :⼀个轻量级的基于STM32的定时器调度器 。
CmBacktrace :⼀款针对 ARM Cortex-M 系列 MCU 的错误代码⾃动追踪库。
EasyLogger:⼀款超轻量级、⾼性能的 C/C++ ⽇志库。
二维数组的下标怎么理解EasyFlash:⼀款开源的轻量级嵌⼊式Flash存储器库 。
SFUD:⼀款开源的串⾏ SPI Flash 通⽤驱动库。
lw_oopc:轻量级的C语⾔⾯向对象编程框架。
PLOOC:受保护的低开销⾯向对象编程。
cmd-parser:⼀个⾮常简单好⽤的命令解析器。
mqttclient:⼀个省资源、⾼稳定的MQTT客户端。
NorthFrame :⼀个单⽚机极简图形化状态机框架 。
letter-shell:⼀个功能强⼤的嵌⼊式shell。
pigweed:⾕歌开源的嵌⼊式⽬标库(模块)集合。
lwrb:⼀个轻量级通⽤环缓冲区管理器库。
cQueue :使⽤ANSI C 编写的消息队列功能函数。
Unity:⼀个轻量级的、适合嵌⼊式的测试框架。
Embedded Unit:是个纯标准c构建的单元测试框架。
CuTest :⼀款微⼩的C语⾔单元测试框, 全部代码加起来不到⼀千⾏。
cmockery:⾕歌C单元测试框架。
googletest:⾕歌C++测试框架。
znfat :振南fat,国产嵌⼊式⽂件系统⽅案 。
libu:⼀个C语⾔写的多平台⼯具库。
LWIP:⼀个⼩型开源的TCP/IP协议栈 。
SQLite :⼀个开源的嵌⼊式关系数据库。
OpenBLT:⼀种开源引导加载程序。
Linux Lab :Linux 内核实验室,基于 Docker/Qemu 的极速 Linux 内核学习、开发和测试环境。airkissOpen :腾讯airkiss协议解析库 。
nr_micro_shell :shell for MCU,单⽚机命令⾏交互。
FlexibleButton:FlexibleButton 是⼀个基于标准 C 语⾔的⼩巧灵活的按键处理库。
mbedtls :⼀个开源、便携,易于使⽤,可读的和灵活的SSL库。
mosquitto或mosquitto(下载速度快):⼀个开源的MQTT代理。
inih:C 语⾔编写的 INI ⽂件解析器。
QP:QP实时嵌⼊式框架。
MS-RTOS:Micro Safe RTOS 。
protobuf-c:protobuf-c。
eepromfs:基于EEPROM的简易类⽂件的数据读写库 。
gear-lib :适⽤于IOT/嵌⼊式/⽹络服务开发的C库 。
mult_timer :⼀个Linux下的超级精简的多重定时器 。
EFSM :是⼀个基于事件驱动的有限状态机 。
3、GUI相关
GuiLite:⼤道⾄简 - 5千⾏/仅头⽂件/全平台GUI库 。
yoxios:基于Linux开发的轻量级物联⽹系统和硬件平台。
ToughGFX:⼀个C++编写的GUI软件框架 。
vba进阶看什么书
emwin:⼀个⽼牌GUI库。
littlevGL :⼀个免费的开源图形库。
野⽜ LittlevGL demo:基于野⽜开发板的 LittlevGL demo 程序 。
MonoGUI :⼀个⿊⽩图形⽤户接⼝系统 。
MiniGUI:⼀个快速、稳定、跨操作系统的GUI。
QT:跨平台的应⽤程序和⽤户界⾯框架。
Gtk:⼀个⽤于创造图形⽤户接⼝的图形库。
极简python快速入门教程AWTK:是 ZLG 倾⼼打造的⼀套基于 C 语⾔开发的 GUI 框架 。
4、物联⽹、智能家居
HomeAssistant :⼀款基于 Python 的智能家居开源系统。
Domoticz :⼀个开源的智能家居系统 。
Kaa IoT Platform:功能丰富的开放和⾼效的物联⽹云平台。
RT-Thread IoT SDK :基于RT-Thread IOT开发板的各类例程。
从零打造物联⽹:⼀份适合嵌⼊式开发⼈员学习的web开发教程。
5、实例/项⽬/软硬结合
qt_2019_ncov:基于Qt/C++实现的新冠肺炎疫情监控平台。
H7-TOOL_STM32H7_App :H7-TOOL 多功能开发⼯具。
DAPLink/CMSIS DAP:⼀个调试器, 集成下载、调试和USB虚拟串⼝。
mcush:MCU shell。
安装控件DoST:Linux 下开发 STM32 。
Crazepony:Crazepony开源四轴飞⾏器。
MiniQ :⼀个迷你四轴飞⾏器。
LiPow-Firmware:基于STM32G0采⽤USB type-C供电的开源锂电池充电器。
Avem:⼀个轻量级⽆⼈机飞控。
SoftWareSerial:⼀个STM32 IO⼝模拟实现软件串⼝程序。
串⼝ISP程序:⼀个stm32串⼝ISP程序。
DSO_Nano :⼀个⼿持⽰波器。
DSView:⼀个跨平台的逻辑分析仪。
MCU-Development:基于51、430、STM32F10X、STM32F407X、T4MC123G平台的各常见硬件模块demo。Arduino :开源电⼦原型平台。
EWAHBoolArray:bitmap算法。
6、学习资料/资源/⼯具/⽹站
100ask download:百⽂⽹资料下载中⼼。poweroff是安全关机吗
armfly:安富莱/硬汉嵌⼊式论坛。
fire download:野⽕资料下载中⼼。
openedv download:正点原⼦资料下载中⼼。
野⽕:野⽕电⼦论坛。
正点:正点原⼦论坛。
ST:ST中⽂社区。
NXP社区:恩智浦论坛。
Linux:Linux内核官⽹。
Linux源码:可在线阅读Linux内核源码。
Buildroot:buildroot源码。
Debian:Debian官⽹。
Ubuntu:Ubuntu官⽹。
荔枝派:荔枝派指南。
清华镜像站:清华⼤学开源软件镜像站。
中科⼤镜像站:中国科技⼤学镜像站。
u-boot:u-boot源码下载页⾯。
bear-pi:⼩熊派demo。
宅学部落:⼀个Linux、编程语⾔、内核、驱动开发学习⽹站。
单⽚机教程⽹:单⽚机基础、设计实例、论坛。
GNU:GNU官⽹。
ChinaUnix:Linux/Unix相关。
PyQt5:PyQt5教程。
qter:QT开源社区。
git⼿册:git学习⼿册。
开源项⽬风格:Google 开源项⽬风格指南 (中⽂版)。
电⼦世家:⼀个电⼦类导航⽹站。
21ic:21IC中国电⼦⽹。
芯路恒电⼦:⼩梅哥博客、FPGA论坛。
嵌⼊式开发者社区:创龙论坛。
micropython:micropython中⽂⽹。
泰晓科技:Linux相关。
电堂科技:STM32相关。如何生成sqlite数据库文件
源代码使⽤⽰例聚合器:从超过100万个开源项⽬搜索CPP代码⽰例。KST-51 :《⼿把⼿教你学51单⽚机》 。
原⼦哥:专注电⼦技术教学。。
digoboy:地⽠派视频⽹。
c.biancheng:C语⾔中⽂⽹。
open-c-book :《C语⾔编程透视》。
PyQt5:PyQt5在线教程。
open-shell-book:《Shell 编程范例》 。
software_unit_test:《软件单元测试⼊门与实践》。
kerneltravel:Linux内核之旅。
蜗窝科技:慢下来,享受技术。
bookstack:书栈⽹。
wireshark:抓包⼯具下载链接。
MobaXterm:⼀个好⽤的终端软件。
Stduino:⼀款⾯向32位处理器快速⼊门学习的集成开发平台 。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。