使用Jlink打印单片机的调试信息

news2024/11/16 3:25:11

1.在工程中添加6个文件
在这里插入图片描述
除去RTT_Debug.h外的其他几个文件在jlink安装目录
在这里插入图片描述
在这里插入图片描述

RTT_Debug.h的内容如下

#ifndef _RTT_H_
#define _RTT_H_

#include "SEGGER_RTT.h"

#define STR_DEBUG
//#define USART_DEBUG

#define DBGLOG
#define DBGWARNING
#define DBGERROR

#if defined(STR_DEBUG)
#define _S_LINE(x) #x
#define __S_LINE(x) _S_LINE(x)
#define __S_LINE__ __S_LINE(__LINE__)

#if defined(DBGLOG)
#define DBG_log(format, ...) SEGGER_RTT_printf(0,RTT_CTRL_TEXT_GREEN"[log]"RTT_CTRL_RESET format"["__FILE__ ":" __S_LINE__ "]\r\n",##__VA_ARGS__)
#else
#define DBG_log(format, ...)
#endif

#if defined(DBGWARNING)
#define DBG_Warning(format, ...) SEGGER_RTT_printf(0,RTT_CTRL_TEXT_YELLOW"[Warning!]"RTT_CTRL_RESET format"["__FILE__ ":" __S_LINE__ "]\r\n",##__VA_ARGS__)
#else
#define DBG_Warning(format, ...)
#endif

#if defined(DBGERROR)
#define DBG_Error(format, ...) SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"[!Error!]"RTT_CTRL_RESET format"["__FILE__ ":" __S_LINE__ "]\r\n",##__VA_ARGS__)
#else
#define DBG_Error(format, ...)
#endif

#else
#if defined(USART_DEBUG)

#if defined(DBGLOG)
#define DBG_log(format, ...) printf("[log]"format"["__FILE__ ":" __S_LINE__ "]\r\n",##__VA_ARGS__)
#else
#define DBG_log(format, ...)
#endif

#if defined(DBGWARNING)
#define DBG_Warning(format, ...) printf("[Warning!]"format"["__FILE__ ":" __S_LINE__ "]\r\n",##__VA_ARGS__)
#else
#define DBG_Warning(format, ...)
#endif

#if defined(DBGERROR)
#define DBG_Error(format, ...) printf("[!Error!]"format"["__FILE__ ":" __S_LINE__ "]\r\n",##__VA_ARGS__)
#else
#define DBG_Error(format, ...)
#endif

#else
#define DBG_log(format, ...)
#define DBG_Warning(format, ...)
#define DBG_Error(format, ...)

#endif

#endif

#endif


2.添加头文件
在这里插入图片描述
3.调用API
在这里插入图片描述

4.编译,烧录

5.打开jlink rtt viewer
在这里插入图片描述

可以观察到调试信息
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习笔记(7)文本标注与NER

深度学习笔记(7)文本标注与NER 文章目录 深度学习笔记(7)文本标注与NER一、文本标注1.1文本标注工具doccano1.2 标注处理,bio标注 二、训练模型1.引入库2. 定义数据集3.建模4,模型训练5.评估6.训练 三.测试…

均衡功能,保障安全丨基于极海 G32A1445 汽车通用 MCU 的 BMU 应用方案

BMS电池管理系统是每个电动汽车车企不断优化改进的应用产品,其组成中的BMU用于实现电流检测、绝缘检测、SOC估算、容量累积、报警功能、充放电管理、远程监控等功能。BMU组成包括微控制器系统、充放电管理单元、CAN通信网络单元(采集所有从控单体电池信息…

Python近红外光谱数据分析

ChatGPT4.0在近红外光谱数据分析、定性/定量分析模型代码自动生成等方面的强大功能,同时更加系统地学习人工智能(包括传统机器学习、深度学习等)的基础理论,以及具体的代码实现方法掌握ChatGPT4.0在科研工作中的各种使用方法与技巧…

YOLOv10改进 | 特征融合篇,YOLOv10添加iAFF(多尺度通道注意力模块),二次创新C2f结构,提升小目标检测能力

摘要 特征融合,即来自不同层或分支的特征的组合,是现代网络架构中无处不在的一部分。虽然它通常通过简单的操作(如求和或拼接)来实现,但这种方式可能并不是最佳选择。在这项工作中,提出了一种统一且通用的方案,即注意力特征融合(Attentional Feature Fusion),适用于…

轻掺杂漏极(LDD)技术

轻掺杂漏极(LDD)是一种低能量、低电流的注入工艺,通过该工艺在栅极附近形成浅结,以减少靠近漏极处的垂直电场。对于亚微米MOSFET来说,LDD是必需的,以便抑制热电子效应,这种效应会导致器件退化并…

blender设置背景图怎么添加?blender云渲染选择

Blender是一款功能强大的3D建模软件,它以流畅的操作体验和直观的用户界面而闻名。使用Blender,你可以轻松地为你的3D模型添加背景图片。 以下是具体的操作步骤: 1、启动Blender:首先,打开Blender软件。访问添加菜单&a…

从头开始:构建一个基于C/C++的线程池

手搓线程池 线程池工作原理和实现线程池工作原理1. 线程池的基本组成:2. 线程池的基本执行流程:3. 线程池的核心参数:4. 线程池的生命周期:5. 线程池的执行策略: 相关知识点线程与进程的比较读写锁互斥锁 基于C语言的线…

【云原生安全篇】Trivy助力离线Harbor漏洞扫描实践

【云原生安全篇】Trivy助力离线Harbor漏洞扫描实践 目录 1 概念 1.1 为什么需要离线漏洞扫描1.2 Trivy和Harbor 简介1.3 实现离线漏洞扫描的技术方案 2 实践:Trivy 为Harbor提供离线漏洞扫描 2.1 环境准备2.2 安装Trivy作为数据库离线包下载代理 2.2.1 通过包管理…

MySQL_连接查询

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

【大数据】数据中台怎么样助力企业创新和客户实践

在当今数字化时代,数据成为了企业竞争的关键因素。企业拥有大量的数据,但如何高效地利用这些数据,实现创新和提升客户体验,成为了一项重要的挑战。数据中台作为一种重要的数据管理和分析工具,发挥着关键的作用。本文将…

Maven 学习整理

1. Maven 简介 Maven 是 Apache 基金会推出的一个用于管理和构建 Java 项目的工具。它基于项目对象模型 (Project Object Model , 简 称: POM) 的概念,通过描述项目的依赖、结构、生命周期等,简化项目管理。 官网: https://maven.apache.org…

Spring、SpringBoot 框架功能学习

目录 一. Spring核心功能 二. Spring与SpringBoot区别 三. Spring与SpringMVC区别 四. SpringBoot与SpringCloud区别 五. 微服务组件 一. Spring核心功能 依赖注入(DI):Spring的核心功能是通过依赖注入来管理对象之间的依赖关系。依赖注…

第L4周:机器学习-KNN总结-分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 概念: 在第L4周:机器学习-K-邻近算法模型(KNN)-CSDN博客中学习了KNN的基本概念,本次主要加深印象&a…

scrapy 爬取微博(四)【最新超详细解析】: 设计篇

一、功能设计 开始开发之前我们先对本文的scrapy微博爬虫工程进行一个功能的设计,包含的功能模块如下: 功能模块具体描述微博文章爬取根据关键词、时间范围等参数爬取微博文章,获取用户名、ID、微博mid、微博内容、点赞、转发、评论等数据微…

全国各省市生产总值指数-工业增加值指数(1999-2020年)

工业增加值指的是工业企业在一定时期内通过生产活动创造的新增价值,它等于工业总产值减去工业中间投入的差额。这一指标的计算可以采用生产法和收入法两种方式。生产法通过计算工业总产值与中间消耗的差额来得到,而收入法则将工业增加值视为固定资产折旧…

HarmonyOS Next(纯血鸿蒙)它到底像谁

前言 24年的第1天有写过一篇关于鸿蒙的文章:不吹不黑,辩证看待开发者是否需要入坑鸿蒙 后续再也没有写关于鸿蒙的文章。 没错,我确实入坑了鸿蒙,并且成功上架了几款App和元服务,虽然当前的用户量还比较少&#xff0c…

微信小程序——引入 iconfont 矢量图标,如何使用引用阿里巴巴矢量图标

本文介绍如何在小程序中加入图标,效果如下图: 1、访部iconfont-阿里巴巴矢量图标库 找到需要的图标,然后添加入库 将增加好的图标添加到项目中 2、点击更新生成代码 生成后如下图 3、打开生成的css样式文件 4、在小程序中新建/static/iconfon…

利士策分享,如何在有限的时间内过上富足的生活?

利士策分享,如何在有限的时间内过上富足的生活? 在快节奏的现代生活中,追求富足不仅仅是物质上的丰盈,更是心灵的满足与生活的平衡。 如何在有限的时间内实现这一目标,是许多人心中的疑问。 以下是一些实用建议&#…

Ubuntu 20.04 内核升级后网络丢失问题的解决过程

在 Ubuntu 系统中,内核升级是一个常见的操作,旨在提升系统性能、安全性和兼容性。然而,有时这一操作可能会带来一些意外的副作用,比如导致网络功能的丧失。 本人本来是想更新 Nvidia 显卡的驱动,使用 ubuntu-drivers …

postman中使用Pre-request Script

一、get方法 get请求时 ,有多个params,并且有一个参数为sign,这个参数是有其他params拼接之后md5加密得到的,如何通过js语句获取params参数并生成sign。 const CryptoJS require(crypto-js); // 引入 CryptoJS 库进行 MD5 加密…