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

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

3天内不再提示

单片机调试时的那些技术

jf_pJlTbmA9 来源:strongerHuang 作者:strongerHuang 2023-10-18 17:56 次阅读

单片机如果缺少调试功能,就好比失去了灵魂。

如今众多Cortex-M处理器能这么方便调试,在于有一项基于Arm Cortex-M处理器设备的CoreSight技术,该技术引入了强大的新调试(Debug)和跟踪(Trace)功能。

下面就来重点讲讲关于CoreSight中调试和跟踪的相关内容。

调试和跟踪功能

CoreSight两个主要功能就是调试和跟踪功能。

1.调试功能

运行处理器的控制,允许启动和停止程序

单步调试源码和汇编代码

在处理器运行时设置断点

即时读取/写入存储器内容和外设寄存器

编程内部和外部FLASH存储器

2.跟踪功能

串行线查看器(SWV)提供程序计数器(PC)采样,数据跟踪,事件跟踪和仪器跟踪信息

指令(ETM)跟踪直接流式传输到您的PC,从而实现历史序列的调试,软件性能分析和代码覆盖率分析

一张图了解整体内容:

wKgaomUD3NCAIFvlAAFjU33Mvcs017.png

JTAG

JTAG是行业标准的接口,用于下载和调试目标处理器上的程序以及许多其他功能。它提供了连接设备的简便方法,并且在所有基于Arm处理器的设备上都可用。JTAG接口可与基于Cortex-M的设备一起使用,以访问CoreSight调试功能。

1.JTAG历史

JTAG是联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于验证设计与测试生产出的印刷电路板功能。

1990年JTAG正式由IEEE的1149.1-1990号文档标准化,在1994年,加入了补充文档对边界扫描描述语言(BSDL)进行了说明。从那时开始,这个标准被全球的电子企业广泛采用,边界扫描几乎成为了JTAG的同义词。---引用维基百科

2.JTAG接口

JTAG的接口通常是4/5个接脚接口连到芯片上:

TDI(测试数据输入)

TDO(测试数据输出)

TCK(测试时钟)

TMS(测试模式选择)

TRST(测试复位)可选

wKgZomUD3NKAbOoDAAIvnhNyjT4094.png

SWD串行线调试

SWD,Serial Wire Debug(串行线调试)模式是标准JTAG接口的替代方法,它仅使用两个引脚即可提供与JTAG相同的调试功能,而不会降低性能,并通过串行线查看器(SWV)引入了数据跟踪功能。

在JTAG引脚中包含SWD接口引脚,从而允许标准目标连接器中使用。引脚包含:

TCLK-SWCLK(串行时钟

TMS-SWDIO(串行数据输入/输出)

TDO-SWO(串行线输出-SWV使用)

关于SWV

SWV:Serial Wire Viewer,串行线查看器

基于Cortex-M3、 M4、 M7的设备能够根据所需信息或分析的类型,以多种方式提供高速数据跟踪信息。当系统处理器继续全速运行时,它通过SWO引脚传输。

可从ITM(仪器跟踪宏单元)和DWT(数据观察点和跟踪)单元获得信息,其中包括:

PC(程序计数器)采样

显示CPU周期统计信息的事件计数器

具有定时统计信息的异常和中断执行

跟踪数据-用于时序分析的数据读取和写入

用于简单printf样式调试的ITM跟踪信息

拓展:下载调试器

之前给大家分享过《下载调试接口 SWD 和 JTAG的区别》,选择下载调试器时也可以对比一下二者差异。

支持JTAG和SWD模式的下载调试器很多,J-Link、 ST-LINK、 ULINK这些大众化的工具都支持,还有很多小众的下载调试器(比如e-Link、 GD-Link等)同样也支持SWD模式。

那么,我们该选择哪一种呢? 哪一种更香呢?

支持全面的一点的算J-Link了,但正版的价格,对于普通个人来说,有压力。

有多种版本,算下来好几千一个。

wKgaomUD3NOABDvVAAUOq88P1WQ182.png

同样,正版ULINK也和J-Link一样,价格上千。当然,很多人买到的ULINK和J-Link都是盗版。

相比ULINK和J-Link而言,正版的ST-Link价格就很划算,一个正版ST-Link V2才两三百,但缺点就是只能针对STM8/32使用。

当然,ST-Link还有一个神操作:变成J-link,请参看我的文章《手把手教你 ST-Link 秒变 J-link》。

作者 | strongerHuang
微信公众号 | strongerHuang
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

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

    关注

    6035

    文章

    44554

    浏览量

    634642
  • 调试
    +关注

    关注

    7

    文章

    578

    浏览量

    33923
  • 调试器
    +关注

    关注

    1

    文章

    303

    浏览量

    23716
收藏 人收藏

    评论

    相关推荐

    单片机串口模块调试方法

    笔者在调试某Cortex-M3内核单片机时遇到一个问题,此单片机不具备在线仿真功能,因此调试代码时只能使用UART输出Log的方式调试
    发表于 07-28 15:48 1536次阅读
    <b class='flag-5'>单片机</b>串口模块<b class='flag-5'>调试</b>方法

    单片机实用接口技术

    单片机实用接口技术介绍了MCS-51系列单片机应用系统的各种实用接口技术及其配置。内容包括:MCS-51系列单片机组成原理:应用系统扩展、开
    发表于 12-23 14:27 29次下载
    <b class='flag-5'>单片机</b>实用接口<b class='flag-5'>技术</b>

    单片机的在线调试方法

    本文主要讲述的是单片机的在线调试方法。
    发表于 04-22 16:43 34次下载

    ARM单片机开发调试方法

    ARM单片机开发调试方法
    发表于 07-25 13:21 36次下载

    单片机开发调试应注意的问题

    单片机开发调试应注意的问题 1、使用总线不外引的单片机 ·是最正统的单片机使用模式 ·符合小型、简单、可靠、廉价的单片机设计初衷
    发表于 03-26 12:30 1751次阅读

    单片机多功能调试助手

    单片机多功能调试助手。
    发表于 01-12 16:52 7次下载

    单片机多功能调试助手

    单片机多功能调试助手 串口、USB等调试用。
    发表于 03-11 10:34 8次下载

    单片机多功能调试助手

    单片机多功能调试助手,感兴趣的小伙伴们可以看看。
    发表于 07-26 10:26 35次下载

    单片机系统软硬件调试及维修技术

    单片机系统软硬件调试及维修技术,快来下载吧
    发表于 09-01 18:17 0次下载

    单片机开发调试工具包

    单片机开发调试工具包,学习51单片机必备的工具
    发表于 12-17 10:45 19次下载

    STM32单片机中OBG调试接口的介绍

    OBG在单片机中的解释STM32单片机的内核(Cortex-M3)含有硬件调试模块,支持多种复杂的调试操作,硬件调试模块允许内核在取地址或者
    的头像 发表于 01-26 16:45 5635次阅读
    STM32<b class='flag-5'>单片机</b>中OBG<b class='flag-5'>调试</b>接口的介绍

    OBG调试接口在单片机中的应用解析

    OBG在单片机中的解释STM32单片机的内核(Cortex-M3)含有硬件调试模块,支持多种复杂的调试操作,硬件调试模块允许内核在取地址或者
    发表于 03-30 15:19 2122次阅读
    OBG<b class='flag-5'>调试</b>接口在<b class='flag-5'>单片机</b>中的应用解析

    单片机系统硬件的静态调试和动态调试综述

    单片机系统硬件的静态调试和动态调试综述
    发表于 07-18 10:59 2次下载

    单片机开发调试工具有哪些?

    单片机调试是一个有条不紊的过程,用于查找和减少单片机程序中的错误数量,使其按预期工作。有时候,单片机程序调试很困难,因为某一个系统模块中的
    的头像 发表于 07-07 12:29 1520次阅读

    单片机Debug工具性能对比 单片机调试常用命令

    单片机(Microcontroller Unit, MCU)调试是嵌入式开发中的一个重要环节,它帮助开发者发现和修复代码中的错误,优化程序性能。不同的单片机和开发环境可能使用不同的调试
    的头像 发表于 12-19 09:56 130次阅读