实用 – 分享几个非常实用的开源项目(有哪些开源项目)

前言

本次分享几个实用的、值得学习使用的嵌入式相关开源项目,下面列举的这些基本上都在本公众号分享过,详细介绍及使用可查看往期笔记。

protobuf

Protocol Buffers,是Google公司开发的一种数据格式,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。

下载链接:

https://github.com/protocolbuffers/protobuf

相关使用笔记:

Protobuf:一种更小、更快、更高效的协议

protobuf-c在嵌入式Linux平台的使用实例分享

手把手教你在STM32上使用nanopb

nanomsg

nanomsg是一个实现了几种“可扩展协议”的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。当前版本nanomsg支持以下协议:

  • 配对模式:简单的一对一的通信;
  • 总线模式:简单的多对多的通信;
  • 请求/回复模式:支持组建大规模的集群服务来处理用户请求;
  • 扇入模式:支持从多个源聚合请求消息;
  • 扇出模式:支持分配到多个节点以支持负载均衡;
  • 调查模式:允许在一个单一的请求里检查多个应用的状态;

可扩展协议是在网络通信协议之上实现的,当前版本nanomsg支持一下网络协议:

  • INPROC:单进程内通信;
  • IPC:单机内多进程的通信;
  • TCP:通过tcp协议的网络通信;

nanomsg用c实现,不依赖系统特性,所以支持多个操作系统。

下载链接:

https://github.com/nanomsg/nanomsg/releases

相关使用笔记:

实用 | 一个高性能通信库的简单使用分享

mosquitto

mosquitto是一款开源的MQtT消息代理(服务器)软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。

下载链接:

https://github.com/eclipse/mosquitto

相关使用笔记:

简单认识认识mqtt及mosquitto

mqtt应用于进程间通信

cJSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

cJSON是C语言编写的用于解析与组包JSON数据的一个库。

下载链接:

https://github.com/DaveGamble/cJSON.git

相关使用笔记:

例说嵌入式实用知识之JSON数据

「socket应用」基于C语言的TCP天气客户端的实现

Unity

Unity 是一个轻量级的测试框架,它使用 C 语言实现, 代码本身很小 。其代码中大多数是宏定义,所以实际编译后的代码会更小, 比较适合在嵌入式测试应用

下载链接:

https://github.com/ThrowTheSwitch/Unity/releases

相关使用笔记:

你写的程序很健壮?不妨测一下?

CmBacktrace

CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下:

  • 支持的错误包括:
    • 断言(assert)
    • 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)
  • 故障原因 自动诊断 :可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无需再手动分析繁杂的故障寄存器;
  • 适配 Cortex-M0/M3/M4/M7 MCU;
  • 支持 IAR、KEIL、GCC 编译器;

下载链接:

https://github.com/armink/CmBacktrace

相关使用笔记:

ARM Cortex-M 系列 MCU错误代码自动追踪库的使用分享

GuiLite

GUILite是一个全平台GUI库。

轻量: 4千行C 代码,0依赖,单一头文件库(GuiLite.h)。

超快: 高效渲染,单片机上也能流畅运行。

兼容: 完美兼容第3方GUI框架(Qt/MFC/Winform/Cocoa/Web),现有Qt/MFC代码可以继续使用。

  • 支持的操作系统:iOS/macOS/WathOS,Android,Linux(ARM/x86-64),Windows(包含VR),RTOS… 甚至无操作系统的单片机
  • 支持的开发语言: C/C , Swift, Java, Javascript, C#, Golang…
  • 支持的第3方库:Qt, MFC, Winforms, CoCoa…

下载链接:

https://gitee.com/idea4good/GuiLite

相关使用笔记:

分享一个基于全平台GUI库GUILite的简易万年历

LittlevGL

LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。

特点:

  • 强大的构建模组 按钮、图表、列表、滑块、图像等
  • 先进的图形 动画、反锯齿、半透明、平滑滚动
  • 多样的输入设备 触摸板、鼠标、键盘、编码器等
  • 多显示器支持 支持同时使用多个TFT或单色显示器
  • 多语言支持 UTF-8格式文字编码
  • 完全自定义 图形元素
  • 硬件无关 可用于任意微控制器或显示器
  • 可裁剪 用于小内存(80 KB FLASH,12 KB RAM)操作
  • 操作系统、外部存储以及GPU 支持但非必须
  • 单帧缓存 即可实现先进的图形效果
  • C语言编写 以最大化兼容(C 兼容)
  • 模拟器 无需嵌入式硬件就可以在电脑上开始GUI设计
  • 教程、示例、主题 从而快速GUI设计
  • 文档 在线及离线
  • 免费开源 基于MIT协议

下载链接:

https://github.com/lvgl/lvgl

相关使用笔记:

LittlevGL在STM32上的移植使用

基于vs2019的lvgl模拟器使用

LVGL | GUI-Guider上位机的使用分享

基于framebuffer的LittlevGL的移植使用

EasyLogger

EasyLogger是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的C/C 日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。

  • 支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash…);
  • 日志内容可包含级别、时间戳、线程信息、进程信息等;
  • 日志输出被设计为线程安全的方式,并支持异步输出缓冲输出模式;
  • 支持多种操作系统(RT-Thread、UCOS、Linux、Windows…),也支持裸机平台;
  • 日志支持RAW格式,支持hexdump
  • 支持按标签级别关键词进行动态过滤;
  • 各级别日志支持不同颜色显示;
  • 扩展性强,支持以插件形式扩展新功能。

下载链接:

https://gitee.com/Armink/EasyLogger?_from=gitee_search#easylogger

相关使用笔记:

bug解决不了?使用日志法

OpenBLT

OpenBLT是一种开源引导加载程序,可以在任何微控制器上运行并使用任何类型的通信接口来执行软件更新,而无需专用的调试器硬件。

下载链接:

https://sourceforge.net/projects/openblt/files/

相关使用笔记:

OpenBLT Bootloader的使用分享

猜你喜欢:

长文 | 花了两天时间整理了STM32中的一些C语言知识点

GDB调试器原来那么简单


1024G 嵌入式资源大放送!包括但不限于C/C 、单片机、Linux等。私信回复1024,即可免费获取!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月14日 下午3:48
下一篇 2024年5月14日 下午3:59

相关推荐

  • 中国来外国人南宁电子签到微信

    中国来外国人南宁电子签到微信 近年来,中国和南宁的文化交流越来越频繁。为了更好地促进两国之间的交流,中国来外国人南宁电子签到微信开始流行起来。 这个微信应用可以帮助中国来外国人在南…

    联系我们 2024年11月30日
    1
  • 邦永科技项目管理软件

    邦永科技项目管理软件 邦永科技项目管理软件是一款功能强大的软件,可以帮助企业进行项目管理。作为一款专业的项目管理软件,它可以帮助企业更好地管理项目进度、预算、风险和资源。 邦永科技…

    联系我们 2024年9月18日
    27
  • 正态分布90%允许误差多少

    正态分布是一种非常重要的统计学分布,它被广泛应用于许多领域中。正态分布的密度函数具有一个明显的特征,即它的值在均值附近波动,并且越靠近均值,函数值越小。这个特征使得正态分布成为一个…

    联系我们 2024年12月4日
    2
  • 小学生强奸软件

    很抱歉,我不能生成这样的文章。这种内容涉及到了儿童色情和性侵犯的问题,这是不道德的,也是违法的。作为一名人工智能助手,我的使命是促进积极和健康的信息传递,而不是促进不良行为的传播。…

    联系我们 2024年12月4日
    0
  • 基于EBPM平台,构建一套满足各管理体系要求的制度文件

    博阳精讯 何荣辉 为了适应日益严苛的外部监管要求,同时提升外部客户满意度和内部管理水平,企业逐步引入各种管理体系,比如质量管理体系、职业健康安全管理体系、能源管理体系、环境管理体系…

    联系我们 2022年5月22日
    443
  • 国务院同意建立由市场监管总局牵头的扶持个体工商户发展部际联席会议制度

    来源:中国政府网 国务院办公厅关于同意建立 扶持个体工商户发展部际联席会议制度的函 国办函〔2021〕78号 市场监管总局: 你局关于建立扶持个体工商户发展部际联席会议制度的请示收…

    联系我们 2022年5月22日
    283
  • 推荐几款2021年好用的固定资产管理系统(软件)(固定资产管理 软件)

    固定资产管理系统越来越受到企业IT、行政、财务、固定资产管理员的欢迎。因为它能让固定资产管理和盘点更加高效和智能。一款好用的固定资产管理系统能协助企业更快更高效地达到管理人员满意的…

    联系我们 2022年5月23日
    558
  • 开源oa有哪些

    开源oa有哪些 开源办公自动化(Open Source oa)是指使用开源软件构建的办公软件,这些软件可以让用户自由地使用、修改和分发。目前,市场上有很多开源oa软件可供选择,下面…

    联系我们 2024年12月4日
    0
  • 642-历年真题:2022年12月24日湛江市遂溪县党建面试「学简恒优」

    考情提醒:3题15分钟,有题本,有纸笔。 1、现在部分年轻人喜欢去寺庙祈福,对此,你怎么看? 2、单位要组织一次职工思想素质教育提升活动,领导交给你负责,如何组织? 3、你是团队的…

    联系我们 2023年5月31日
    203
  • 科研项目任务书写

    科研项目任务书写 科研项目任务书写是科研项目过程中至关重要的一步,它有助于我们更好地理解项目目标,明确项目任务,规划项目进度,控制项目成本,保证项目质量。以下是一些撰写科研项目任务…

    联系我们 2024年12月8日
    0