3D打印Marlin2.0固件源代码分析之如何使用LOG接口调试代码

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 3D打印Marlin2.0固件源代码分析之如何使用LOG接口调试代码

640.png

调用打印接口可以用:

#define SERIAL_ECHOLNPGM(str)    Serial.println(F(str))
#define SERIAL_ECHOPGM(str)     Serial.print(F(str))
#define SERIAL_ECHO_MSG(str)    Serial.println(str)
#define SERIAL_ECHOLNPAIR(str,val) \
  do{ Serial.print(F(str)); Serial.println(val); }while(0)
#define SERIAL_ECHOPAIR(str,val) \
  do{ Serial.print(F(str)); Serial.print(val);}while(0)


如何使用?以Marlin2.0setup()函数里,有对应的使用方法:

#if defined(STRING_DISTRIBUTION_DATE) && defined(STRING_CONFIG_H_AUTHOR)
  SERIAL_ECHO_MSG(
   " Last Updated: " STRING_DISTRIBUTION_DATE
   " | Author: " STRING_CONFIG_H_AUTHOR
 );
#endif
SERIAL_ECHO_MSG("Compiled: " __DATE__);


其中STRING_DISTRIBUTION_DATE是一个宏,它在Marlin/src/inc/Version.h这个文件中被定义, 原型如下:

/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
 #define STRING_DISTRIBUTION_DATE "2021-04-29"
#endif


它可以用来指定当前固件被修改的日期。 STRING_CONFIG_H_AUTHOR也是一个宏,它在Marlin/Configuration.h这个文件中被定义,原型如 下:

// Author info of this build printed to the host during boot and M115
#define STRING_CONFIG_H_AUTHOR "(Yangyuanxin For AC firmware)" // Who made the
changes.


它可用来指定当前固件的修改者,意思就是如果定义了以上的宏,那么就调用SERIAL_ECHO_MSG接口将这些固件信息打印出来。

往期精彩

开源Marlin2.x源代码架构学习笔记


步进电机驱动在3D打印应用的学习笔记(一)


光固化3D打印悬空和支撑讲解


3D打印过程与最近的学习成果


两个最常用的3D打印机切片软件


3D打印机marlin固件框架与GCode命令总结


3D打印机Marlin固件串口功能解析和程序移植


让野火F103开发板支持Marlin2.0固件是什么体验?3D打印主控板成员+1


C语言映射表在嵌入式串口解析、UI设计中的应用(值得收藏并实践的精华帖)

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
25 7
|
10天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
29天前
|
监控 测试技术 开发者
一行代码改进:Logtail的多行日志采集性能提升7倍的奥秘
一个有趣的现象引起了作者的注意:当启用行首正则表达式处理多行日志时,采集性能出现下降。究竟是什么因素导致了这种现象?本文将探索Logtail多行日志采集性能提升的秘密。
110 23
|
1月前
|
运维 监控 Cloud Native
一行代码都不改,Golang 应用链路指标日志全知道
本文将通过阿里云开源的 Golang Agent,帮助用户实现“一行代码都不改”就能获取到应用产生的各种观测数据,同时提升运维团队和研发团队的幸福感。
|
1月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
41 5
|
2月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
57 8
|
2月前
|
存储 SQL 监控
|
2月前
|
运维 监控 安全
|
2月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
52 3