0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式软件的打印调试信息的方法

汽车玩家 来源:嵌入式大杂烩 作者:嵌入式大杂烩 2020-04-04 17:35 次阅读

一、前言

在我们的嵌入式开发中,常常把printf重定向到MCU的串口外设,再配合上位机界面软件,通过打印调试信息的方式来调试我们的嵌入式软件

此处,我们介绍另一种打印调试的方法——SEGGER 的RTT 。RTT全称是Real Time Transmit(实时传输),是Segger公司推出的,是配合J-link使用的一种调试手段。其框图如下:

可见,我们的MCU通过J-Link,凭借RTT就可往电脑打印调试信息,电脑端这边用的是J-LINK 的小软件 RTT Viewer (不能是别的软件哦)。这样,我们就可以把MCU的串口资源释放出来了,特别对于一些串口资源不那么充足的MCU来说就可以省出一个串口去与其它外围芯片进行串口通讯。

二、SEGGER_RTT的使用

所需准备,J-Link及SEGGER_RTT源码。下面演示在Keil-MDK环境下使用SEGGER_RTT:

1、安装J-Link驱动

嵌入式软件的打印调试信息的方法

安装完之后就可在看到如图所示的J-Link RTT Viewer V6.44b,我们待会要把调试信息传输到这个软件上。

2、SEGGER_RTT的收发测试

(1)把SEGGER_RTT_V640添加到我们的工程文件夹中

嵌入式软件的打印调试信息的方法

SEGGER_RTT_V640中的内容如下:

嵌入式软件的打印调试信息的方法

(2)把SEGGER_RTT_V640下的RTT下的所有文件添加到我们的工程中

嵌入式软件的打印调试信息的方法

(3)添加文件路径

嵌入式软件的打印调试信息的方法

(4)在main.c中添加如下测试代码

嵌入式软件的打印调试信息的方法

需要注意的是:记得添加头文件SEGGER_RTT.h,范例工程可在聊天界面回复关键词RTT进行获取。

(5)编译下载到flash中,并启动RTT Viewer软件

嵌入式软件的打印调试信息的方法

嵌入式软件的打印调试信息的方法

这个测试程序是对SEGGER_RTT进行收发测试,其中SEGGER_RTT_printf与我们平时用的printf差不多。

三、最后

SEGGER_RTT基本上可以替换掉我们的串口打印调试,关于SEGGER_RTT还有其他可以学习的地方,比如输出颜色设置、多任务调度等,有需要的朋友可以自己进行学习使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16009

    浏览量

    343518
  • 嵌入式
    +关注

    关注

    4981

    文章

    18271

    浏览量

    288271
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74498
收藏 人收藏

    评论

    相关推荐

    嵌入式软件开发应该掌握哪些知识?

    知识点学习 熟悉 Linux 的基本使用对于嵌入式软件开发至关重要。包括文件系统的管理、用户权限的控制、软件包管理等。嵌入式开发人员需要能够在 Linux 环境下进行开发、
    发表于 02-19 11:23

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得
    发表于 02-02 15:24

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧!
    发表于 12-05 15:17

    嵌入式开发为什么需要输出调试信息

    嵌入式开发为什么需要输出调试信息? 因为输出调试信息嵌入式开发中一项非常重要的实践,它有助于保
    发表于 11-28 16:46

    嵌入式软件的问题分析

    需要实际开发中除完成既定的项目外,预留部分人力进行架构升级维护,持续小改动,不定期根据业务的需求进行架构的重构,未雨绸缪。 3 软件问题的分析与解决嵌入式软件由于调试手段的限制、部署场
    发表于 11-17 09:29

    嵌入式软件设计和单片机软件设计的区别是什么?

    嵌入式软件设计和单片机软件设计目前的应用很多,这两者有什么区别? 嵌入式主要说的什么?结构是啥!
    发表于 11-10 07:46

    如何成为一名优秀的嵌入式工程师?

    使用调试器、打印调试信息、分析日志等。 7.关注代码质量和可维护性:作为嵌入式工程师,你需要编写高质量、可维护的代码。这意味着你需要遵循良好
    发表于 11-07 15:36

    什么是嵌入式Linux?

    之有运行程序的能力与作用。在很多智能家电开发,智能产品的研究上有着主导的作用。(对个人、团队开发产品有兴趣的朋友一定要看看嵌入式!) linux的嵌入式系统开发,涵盖了从硬件到软件设计的多个领域,并且
    发表于 10-11 13:47

    嵌入式软件好还是硬件好?

    架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具、设计原理图
    发表于 09-18 15:31

    如何提高嵌入式软件单元测试效率

    在本指南中,您将学习如何通过在更短的时间内运行更多的测试来增加您的单元测试吞吐量。 这种效率的提高来自于使用虚拟平台而不是物理硬件作为开发平台。 本指南对任何开发或运行嵌入式软件单元测试的人都很
    发表于 08-28 06:31

    嵌入式开发输出调试信息的几种方法

    《论语》有云:“工欲善其事,必先利其器”。输出调试信息软件开发中必不可少的调试利器,在出现bug时如果没有调试
    发表于 07-21 10:28 750次阅读
    <b class='flag-5'>嵌入式</b>开发输出<b class='flag-5'>调试</b><b class='flag-5'>信息</b>的几种<b class='flag-5'>方法</b>

    嵌入式C开发中段错误的3种调试方法

    相信大家在嵌入式C开发中,或多或少都会遇到段错误(segmentation fault )。昨天分享了一个总线错误的例子:嵌入式软件中,关于总线错误,我帮你们踩了这些坑!相比总线错误,段错误是一种更为常见的错误。
    发表于 07-11 09:42 137次阅读
    <b class='flag-5'>嵌入式</b>C开发中段错误的3种<b class='flag-5'>调试</b><b class='flag-5'>方法</b>

    硬件简单的日志打印方法

    相信大多数嵌入式开发者都会碰到对程序进行调试或者查找BUG的情况,常见的两种方法都是仿真和通过日志进行的。 有条件仿真的是更好,单是在编写嵌入式软件
    的头像 发表于 06-22 10:08 370次阅读
    硬件简单的日志<b class='flag-5'>打印方法</b>

    什么人适合学习嵌入式开发?

    嵌入式开发又分为两类,这两类各有特点,当然需要的资质也完全不同: 一类是学电子工程、通信工程等偏硬件专业出身的人,主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader
    发表于 06-07 15:55

    嵌入式软件调试中的打印开关及打印等级

    今天来分享下项目中经常使用到的打印,应该是每个嵌入式软件工程师在日常调试项目中都需要的必备技能(并不是什么很难或者不常见的方法,其实是今天公
    的头像 发表于 05-14 16:38 823次阅读