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

嵌入式ARM 2022-03-07 12:00
日志系统在系统开发和调整过程中的重要性,想必大家应该都清楚。特别是项目出问题之后,却没有日志可以帮忙定位问题,就非常令人痛苦。

因为我们不可能一直通过调试器去单步调试程序,所以设备的运行日志显得尤为重要。

通常我们对日志有这些要求:

  • 不同的日志级别(Debug,Warning, Info, Error, Fatal);
  • 日志打印要和printf一样简单易用;
  • 能够设置日志级别;
  • 占用空间小;
  • 可配置,甚至可以禁用日志;
  • 基于不同日志级别,支持颜色高亮;
  • 可以自定义配置,时间戳;
  • 支持RTOS;

以上是比较基本的功能,但是在嵌入式设备中,有的时候我们希望可以保存设备的运行日志,我们需要以下的一些功能;

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

以上这些需求不一定会全部实现。

除了常用的log4clog4cpp,下面给大家推荐3个非常不错的开源日志库,比较适合用在单片机的项目中。从开始的轻量,到后面的功能丰富,最后一个很强大,所以请耐心看到最后。

rxi_log

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

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

image-20211204142024466

具体用法

将源码中的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 文件。
color coding

EasyLogger

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

TextColor

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

特点如下:

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

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

summary

希望大家在平常的开发中,重视日志的使用,每一个开发阶段设置不同级别的日志,不同的模块也分别设置模块的日志,这样方便定位出现一些问题,快速解决,提高效率。


END

来源:小麦大叔

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
为什么俄罗斯不担心芯片禁运?
偷偷盘点一下各大公司的实习薪资
一位嵌入式工程师,硬核单片机编程思想

→点关注,不迷路←
嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  •   北京华盛恒辉机场保障能力评估系统软件深度解析   在航空运输业快速发展的背景下,机场保障任务愈发复杂,传统人工评估方式已无法满足高效精准的管理需求。机场保障能力评估系统软件作为提升机场运行效率、保障飞行安全的关键工具,其重要性日益凸显。   应用案例   目前,已有多个机场保障能力评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润机场保障能力评估系统。这些成功案例为机场保障能力评估系统的推广和应用提供了有力支持。   一、系统功能模块   数据采集与整合模块  
    华盛恒辉l58ll334744 2025-04-22 10:28 116浏览
  •   电磁兼容故障诊断系统平台深度解析   北京华盛恒辉电磁兼容(EMC)故障诊断系统平台是解决电子设备在复杂电磁环境下性能异常的核心工具。随着电子设备集成度提升与电磁环境复杂化,EMC 问题直接影响设备可靠性与安全性。以下从平台架构、核心功能、技术实现、应用场景及发展趋势展开全面剖析。   应用案例   目前,已有多个电磁兼容故障诊断系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁兼容故障诊断系统。这些成功案例为电磁兼容故障诊断系统的推广和应用提供了有力支持。  
    华盛恒辉l58ll334744 2025-04-22 14:29 136浏览
  •   电磁兼容(EMC)故障诊断系统软件解析   北京华盛恒辉电磁兼容故障诊断系统软件是攻克电子设备电磁干扰难题的专业利器。在电子设备复杂度攀升、电磁兼容问题频发的背景下,该软件于研发、测试、生产全流程中占据关键地位。以下为其详细介绍:   应用案例   目前,已有多个电磁兼容故障诊断系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁兼容故障诊断系统。这些成功案例为电磁兼容故障诊断系统的推广和应用提供了有力支持。   一、软件核心功能   干扰与敏感分析:深度剖析电磁干
    华盛恒辉l58ll334744 2025-04-22 14:53 111浏览
  •   卫星通信效能评估系统平台全面解析   北京华盛恒辉卫星通信效能评估系统平台是衡量卫星通信系统性能、优化资源配置、保障通信服务质量的关键技术工具。随着卫星通信技术的快速发展,特别是低轨卫星星座、高通量卫星和软件定义卫星的广泛应用,效能评估系统平台的重要性日益凸显。以下从技术架构、评估指标、关键技术、应用场景及发展趋势五个维度进行全面解析。   应用案例   目前,已有多个卫星通信效能评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润卫星通信效能评估系统。这些成功案例为卫
    华盛恒辉l58ll334744 2025-04-22 16:34 101浏览
  • 引言:工业安全与智能化需求的双重驱动在工业安全、环境保护及家庭安防领域,气体泄漏引发的安全事故始终是重大隐患。随着传感器技术、物联网及语音交互的快速发展,气体检测报警器正朝着智能化、低成本、高可靠的方向演进。WT588F02B-8S语音芯片,以“离在线语音更换+多协议通信”为核心优势,为气体检测报警器提供了一套高效、灵活的低成本语音解决方案,助力开发者快速响应市场需求。产品功能与市场需求1. 核心功能:从监测到预警的全流程覆盖实时气体监测:支持一氧化碳、臭氧、硫化氢等多种气体浓度检测,精度可达p
    广州唯创电子 2025-04-22 09:14 89浏览
  • 据国际精益六西格玛研究所(ILSSI)成员大卫·哈钦斯(David Hutchins)的回忆,在“六西格玛”名称出现前,摩托罗拉组建了约100个质量改进团队,接受朱兰博士制作的16盘录像带培训,名为《朱兰论质量改进》(Juran on Quality Improvement),为了推广这种严谨的分析方法(朱兰博士视频中的核心内容),摩托罗拉前首席执行官鲍勃·加尔文创造了“六西格玛”这一标签,用以表彰这种“最顶尖"的方法。大卫·哈钦斯(David Hutchins)是朱兰博士的好友,也为他的工作做
    优思学院 2025-04-22 12:03 102浏览
  • 4 月 19 日,“增长无界・智领未来” 第十六届牛商大会暨电子商务十大牛商成果报告会在深圳凤凰大厦盛大举行。河南业之峰科技股份有限公司总经理段利强——誉峰变频器强哥凭借在变频器领域的卓越成就,荣膺第十六届电子商务十大牛商,携誉峰变频器品牌惊艳亮相,以十几年如一日的深耕与创新,书写着行业传奇。图 1:誉峰变频器强哥在牛商大会领奖现场,荣耀时刻定格牛商大会现场,誉峰变频器强哥接受了多家媒体的专访。面对镜头,他从容分享了自己在变频器行业二十年的奋斗历程与心路感悟。谈及全域营销战略的成功,誉峰变频器强
    电子与消费 2025-04-22 13:22 118浏览
  •   电磁干扰抑制系统平台深度解析   一、系统概述   北京华盛恒辉电磁干扰抑制系统在电子技术快速发展、电磁环境愈发复杂的背景下,电磁干扰(EMI)严重影响电子设备性能、稳定性与安全性。电磁干扰抑制系统平台作为综合性解决方案,通过整合多元技术手段,实现对电磁干扰的高效抑制,确保电子设备稳定运行。   应用案例   目前,已有多个电磁干扰抑制系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁干扰抑制系统。这些成功案例为电磁干扰抑制系统的推广和应用提供了有力支持。   二
    华盛恒辉l58ll334744 2025-04-22 15:27 129浏览
  •   北京华盛恒辉基于GIS的电磁态势可视化系统软件是将地理空间信息与电磁态势数据相结合,通过图形化手段直观展示电磁环境态势的系统。这类软件在军事、通信、无线电管理等领域具有广泛应用,能够辅助用户进行电磁频谱分析、干扰监测、态势研判和决策支持。以下是关于此类系统的详细介绍:   应用案例   目前,已有多个电磁态势可视化系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁态势可视化系统。这些成功案例为电磁态势可视化系统的推广和应用提供了有力支持。   一、系统功能   电磁
    华盛恒辉l58ll334744 2025-04-22 11:44 90浏览
  • 近期,金融界消息称,江西万年芯微电子有限公司申请一项名为“基于预真空腔体注塑的芯片塑封方法及芯片”的专利。此项创新工艺的申请,标志着万年芯在高端芯片封装领域取得重要突破,为半导体产业链提升注入了新动能。专利摘要显示,本发明公开了一种基于预真空腔体注塑的芯片塑封方法,方法包括将待塑封的大尺寸芯片平铺于下模盒腔体内的基板并将大尺寸芯片的背向表面直接放置于基板上以进行基板吸附;将上模盒盖合于下模盒形成塑封腔,根据基板将塑封腔分为上型腔以及下型腔;将下型腔内壁与大尺寸芯片间的空隙进行树脂填充;通过设置于
    万年芯 2025-04-22 13:28 82浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦