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

简介: 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日志并进行多维度分析。
目录
相关文章
|
25天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
81 1
|
2月前
|
数据库
什么是计算机软件开发领域的 verbose 代码和日志
什么是计算机软件开发领域的 verbose 代码和日志
31 0
|
3月前
|
监控 Android开发 C语言
深度解读Android崩溃日志案例分析2:tombstone日志
深度解读Android崩溃日志案例分析2:tombstone日志
86 0
|
3月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
80 0
|
3月前
|
缓存 固态存储 关系型数据库
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
|
4月前
|
Web App开发 JavaScript
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
308 0
|
3月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
203 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
3月前
|
机器学习/深度学习 自然语言处理 数据可视化
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
|
3天前
|
机器学习/深度学习 前端开发 数据挖掘
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
74 11
|
4月前
|
存储 监控 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)