前言
protobuf
Protocol Buffers
,是Google公司开发的一种数据格式,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。
下载链接:
https://github.com/protocolbuffers/protobuf
相关使用笔记:
Protobuf:一种更小、更快、更高效的协议
干货 | protobuf-c之嵌入式平台使用
干货 | 项目乏力?nanopb助你一臂之力
nanomsg
nanomsg是一个实现了几种“可扩展协议”的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。当前版本nanomsg支持以下协议:
- 请求/回复模式:支持组建大规模的集群服务来处理用户请求;
- 调查模式:允许在一个单一的请求里检查多个应用的状态;
可扩展协议是在网络通信协议之上实现的,当前版本nanomsg支持一下网络协议:
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数据
Unity
Unity 是一个轻量级的测试框架,它使用 C 语言实现, 代码本身很小 。其代码中大多数是宏定义,所以实际编译后的代码会更小, 比较适合在嵌入式测试应用
。
下载链接:
https://github.com/ThrowTheSwitch/Unity/releases
相关使用笔记:
你写的程序很健壮?不妨测一下?
CmBacktrace
CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下:
- 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)
故障原因 自动诊断 :可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无需再手动分析繁杂的故障寄存器;
适配 Cortex-M0/M3/M4/M7 MCU;
下载链接:
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:///idea4good/GuiLite
相关使用笔记:
基于GUILite的简易万年历
LittlevGL
LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。
特点:
- 可裁剪 用于小内存(80 KB FLASH,12 KB RAM)操作
- 模拟器 无需嵌入式硬件就可以在电脑上开始GUI设计
下载链接:
https://github.com/lvgl/lvgl
相关使用笔记:
lvgl最新版本在STM32上的移植使用
基于vs2019的lvgl模拟器使用
实用工具 | GUI-Guider的使用分享
EasyLogger
EasyLogger是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的C/C++日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。
- 支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、Flash...);
- 日志内容可包含级别、时间戳、线程信息、进程信息等;
- 日志输出被设计为线程安全的方式,并支持异步输出及缓冲输出模式;
- 支持多种操作系统(RT-Thread、UCOS、Linux、Windows...),也支持裸机平台;
下载链接:
https:///Armink/EasyLogger?_from=gitee_search#easylogger
相关使用笔记:
bug解决不了?使用日志法
MultiTimer
MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。
下载链接:
https://github.com/0x1abin/MultiTimer
相关使用笔记:
分享一个简单易用的软件定时器模块
OpenBLT
OpenBLT是一种开源引导加载程序,可以在任何微控制器上运行并使用任何类型的通信接口来执行软件更新,而无需专用的调试器硬件。
下载链接:
https:///projects/openblt/files/
相关使用笔记:
OpenBLT Bootloader的使用分享
温馨提示