良许Linux教程网 干货合集 高手常用的3个开源库,让单片机开发事半功倍

高手常用的3个开源库,让单片机开发事半功倍

大家都很清楚,特别是在项目出现问题时,如果没有可用的日志记录帮助我们定位问题,那将会非常令人痛苦。

由于我们无法一直通过调试器进行单步调试程序,因此设备的运行日志变得尤为重要。

通常,我们对日志有以下要求:

  • 支持不同的日志级别(例如DebugWarningInfoErrorFatal);

  • 日志打印应简单易用,类似于printf的使用方式;

  • 允许设置日志级别;

  • 占用空间较小;

  • 可配置性良好,甚至可以禁用日志功能;

  • 根据不同日志级别支持颜色高亮显示;

  • 可以根据需要自定义配置和时间戳;

  • 支持嵌入式实时操作系统 (RTOS);
    以上是一些基本功能的要求,在嵌入式设备中,有时我们希望还能保存设备的运行日志,因此我们需要以下一些功能:

  • 支持多种访问方式,如通过串口终端或保存到嵌入式文件系统中;

  • 支持通过shell命令行通过串口终端访问日志;

并不是所有需求都需要一一满足。

除了常见的日志库log4clog4cpp,我在下面给大家推荐了3个非常出色的开源日志库,它们非常适合用于单片机项目。这些库从轻量级开始,逐渐丰富功能,最后一个是功能非常强大的,所以请耐心阅读直到最后。

rxi_log

项目地址:https://github.com/rxi/log.c

基于 C99 实现的简单日志库,具体输出如下所示;

image-20231013215036772
image-20231013215036772

具体用法

将源码中的log.clog.h集成到你的项目中即可,需要打印日志的话,调用下面的API即可,如下所示;

log_trace(const char *fmt, ...);
log_debug(const char *fmt, ...);
log_info(const char *fmt, ...);
log_warn(const char *fmt, ...);
log_error(const char *fmt, ...);
log_fatal(const char *fmt, ...);

除了这些API,还有log_set_quietlog_set_lockLOG_USE_COLOR等等,详情请看原项目。

ulog

项目地址:https://github.com/rdpoor/ulog

uLog 为嵌入式微控制器或任何资源有限的系统提供结构化的日志记录机制。它继承了流行的 Log4cLog4j 平台背后的一些概念,但开销更低。

uLog 的一些特点:

  • uLog 易于集成到几乎任何环境中,由一个头文件和一个源文件组成,并且是用纯 C 编写的。
  • uLog 提供熟悉的严重级别(CRITICAL、ERROR、WARNING、INFO、DEBUG、TRACE)。
  • uLog 支持多个用户定义的输出(控制台、日志文件、内存缓冲区等),每个输出都有自己的报告阈值级别。
  • uLog 是具有最小依赖性的“积极独立”,仅需要 stdio.h、string.h 和 stdarg.h。
  • 当您不使用 uLog 时,它不会妨碍您:如果 ULOG_ENABLED 在编译时未定义,则不会生成日志记录代码。
  • uLog 已经过很好的测试。有关详细信息,请参阅随附的 ulog_test.c 文件。
image-20231013215030034
image-20231013215030034

color coding

EasyLogger

项目地址:https://github.com/armink/EasyLogger

image-20231013215024730
image-20231013215024730

TextColor

这个项目我用了很长时间,强烈推荐,是RT-Thread大佬的作品,已经集成到RTOS的内部了,支持的功能非常丰富,基本满足各种开发的需求。

特点如下:

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

以上只是这个项目的其中一部分,具体可以参考项目地址。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部