单片机打印调试信息的方法有哪些?

这篇具有很好参考价值的文章主要介绍了单片机打印调试信息的方法有哪些?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

打印 log 是调试程序的重要手段,下面我就来介绍一下,开发单片机应用程序时输出调试信息的几种方法:

  • 软件仿真输出
  • UART 输出
  • SWO输出
  • JLink-RTT输出

软件仿真输出

先表明我的观点,正常情况下,不建议使用纯软件的方式仿真单片机程序。

以 Keil 为例,将 printf 函数重定向到串口1,然后通过纯软件方式仿真,在 Keil 仿真界面的 UART#1 窗口中就可以看到 printf 函数打印的调试信息了:

keil打印调试信息,单片机,嵌入式硬件

keil打印调试信息,单片机,嵌入式硬件

纯软件仿真的好处是无需硬件,仅使用 IDE 即可,但缺点是很多项目无法直接进行软件仿真,且软件仿真结果不可靠。


UART 输出

串口输出调试信息这种方式,适用于正式发布运行的产品,无需仿真器,但是需要占用一个串口,打印调试信息时影响 MCU 的实时性。
keil打印调试信息,单片机,嵌入式硬件


SWO输出

SWO输出调试信息依赖内核调试组件中的仪器跟踪宏单元(ITM),但只有 Cortex-M3/M4/M7系列 MCU 支持 ITM,如果你的芯片是 Cortex-M0 或者其他ARM内核,则不支持ITM,无法通过 SWO 方式输出调试信息。

SWO输出调试信息这种方式,不影响 MCU 实时性,但必须使用硬件仿真器, ST-LINK、J-Link等带SWO口的调试器都支持。

使用 SWO 输出调试信息时,除了调试接口必须的接线外,还需要额外将单片机的 SWO 引脚与仿真器的 SWO 硬件连接起来,然后可以在 Keil 仿真界面的 Debug(printf)Viewer 窗口看到 SWO 打印的调试信息:
keil打印调试信息,单片机,嵌入式硬件


JLink-RTT输出

使用 J-Link 仿真器时,可以通过 RTT(Real Time Transfer)打印调试信息,不影响 MCU 实时性,效率很高,但是需要移植 RTT 相关代码。

下载安装好 J-Link 后,在 J-Link 目录的 Samples 文件夹内,有个名为 RTT 的文件夹,这个就是需要移植的 RTT 代码:
keil打印调试信息,单片机,嵌入式硬件
keil打印调试信息,单片机,嵌入式硬件

将 RTT 文件夹内的代码移植到你的工程中后,调用 SEGGER_RTT_printf( ) 函数即可打印调试信息,通过 JLinkRTTViewer 工具查看即可:
keil打印调试信息,单片机,嵌入式硬件


小结

上面介绍了几种常见的单片机调试信息输出方式,都有其各自的优缺点,但是从实时性和效率上来说,RTT > SWO > USRT。文章来源地址https://www.toymoban.com/news/detail-727869.html

输出方式 优点 缺点
纯软件仿真 无需硬件 仿真结果不可靠,很多项目无法仿真
串口 无需仿真器 占用一个串口,打印调试信息时影响实时性
SWO 实时性高 需要仿真器,仅支持Cortex-M3/M4/M7系列 MCU
RTT 实时性高 必须使用 J-Link 仿真器

到了这里,关于单片机打印调试信息的方法有哪些?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于学习单片机keil uvision5的基本使用方法

    单片机是一门非常考验动手实践能力的科目,我们经常会使用到keil5(4也是一样的),而这个软件新手编写程序一般都是用的C语言,对新手小白非常地友好。我推荐大家可以去b站看江科大的单片机教学,讲的非常通俗易懂,我在大学的协会里就经常默默地看视频自学,希望大家

    2024年02月07日
    浏览(42)
  • keil下载程序后,单片机不自动运行, 需要断电重启的解决方法

    如题,在很多时候,我们KEIL下进行程序开发,编绎完成后会下载到单片机中执行程序,看看运行结果。有时候却发现程序下载后单片机不自动运行,需要断电重启才会运行的问题。 经过从网络上多方查找,最后找到解决方案。原因如下: 首先:我们看一下程序下载的配置,

    2024年02月14日
    浏览(69)
  • KEIL仿真时使用printf函数打印调试信息

    在使用Keil仿真时有时想要查看程序的打印信息,主要有两种方法,方法一:使用keil自带的Debug(printf)viewer窗口打印;方法二:使用串口打印。这两种方法其实都是通过将printf函数重定向的方法来打印调试信息。下面简单介绍一下两种方法 Keil进入仿真时,可以看到有一列工

    2024年02月03日
    浏览(45)
  • 单片机之keil软件环境搭建

    Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。     目前软件对中文的支持不友好,不建议安装网上的一些汉化包之类的。另外建立的工程文件路径也尽量

    2024年02月22日
    浏览(56)
  • Keil环境烧写单片机流程

    要把编写好的c代码程序烧录到单片机,需要两个平台 第一个是开发环境Keil,第二个是烧写平台ISP 下载完Keil,可能需要注册,首先以管理员身份运行,然后点击File,License Management,拷贝Computer ID,然后以管理员身份打开注册机文件KEIL_Lic.exe,将Computer ID粘贴到对应位置,ge

    2024年02月16日
    浏览(43)
  • KEIL5编辑STC单片机程序

    1、keil5软件正常安装完成。 2、打开STC-ISP软件 3、 下载C51的芯片包(直接安装能编译stc芯片的keil软件,安装后直接把安装目录中的C51拷贝过来),放在keil_v5目录下面 4、新建工程 5、打开老已有工程需要确保C51路径正确,否则编译报错 编译还是报错,清除下,再编译

    2024年01月17日
    浏览(45)
  • 51单片机入门(1)环境搭建(Keil+ISP)

    在学习51单片机之前,环境搭建是必不可少的一步,本文主要介绍Keil软件和STC-ISP软件的安装 本人只是一个普通的嵌入式低级(初级)玩家,文章主要针对新手,所以大佬要是发现文中有何不妥之处,还请口下留情,若能指出,我一定虚心改正 Keil C51是美国Keil Software公司出品

    2023年04月09日
    浏览(65)
  • Keil uvision5安装——51单片机篇

    目录 一、Keil uvsion5-下载安装 二、Keil uvsion5-软件破解 三、STC官方库添加 四、Keil相关配置 1.中文显示配置 2.消除定义但未被使用函数的警告配置(针对51单片机) 五、程序烧入软件的使用 步骤1:点击下方链接,将文件下载到电脑上。 链接:https://pan.baidu.com/s/1HI-URr7KCL2bHxK5

    2023年04月09日
    浏览(57)
  • keil和proteus联手实操单片机

    学习单片机这部分实践课时,遇到代码保存和格式转换问题,下面,我们针对这个问题进行傻瓜式教学灯塔的实践操作,keil用的是Keil uVision2 软件,proteus用到是8.6版。 第一步,先打开keil,就会发现有file大图标,  打开file,单击file下的new..,出现下面的新界面 然后再这个编

    2024年02月04日
    浏览(56)
  • 成功解决keil识别不到单片机芯片,下载不了程序

    我的芯片是STM32F429,正点原子的阿波罗。 今天使用开发板做实验,突然找不到芯片了, 以前下载的PWM波也运行不了 。查找了好久,原来是芯片锁了,终于解决了。 我是第二种办法实现给芯片解锁的,第一种是我猜测的。 解决办法: 第一种: 先给驱动板上电,boot0接到3.3

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包