ARM Cortex-M CoreSight调试技术简单记录

2024-02-27 23:18

本文主要是介绍ARM Cortex-M CoreSight调试技术简单记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简述

嵌入式系统开发中,调试与测试是非常重要的,ARM Cortex M也针对于不同场景和需求,提供了专门的调试技术,一般在ARM Cortex M架构的IC内都会集成CoreSight模块专用于调试。像ARM 7/9/11之类的是更早一类调试技术,ARM CortexA应该有更高速的调试技术了。这些都是和应用需求(速率、系统等)相关的。
在这里插入图片描述

CoreSight相关技术

列表如下:

名称详细说明备注
JTAG可接入IC内部CoreSight模块协议
SWDSerial Wire Debug,和JTAG类似,只是pin脚占用要少协议
DAPDebug Access Port,可通过JTAG或SWD接入,观察memory情况内部模块
SWVSerial Wire Viewer,跟踪的功能,包括数据读写, 代码执行, 程序计数器状态以及log输出
SWOSerial Wire Output,使用SWD时用于输出的一根pin
ITMInstrumentation Trace Macrocell, 这是一个32bit的内存地址,往该地址写数据时会从SWO(用SWD)或Trace Port(用ETM)输出该数据
Trace Port4-bit的端口,ULINKpro调试器会通过该端口来收集ETM数据帧和SWV相关输出
ETMEmbedded Trace Macrocell,可以显示所有执行指令,ULINKpro提供了ETM跟踪,ETM需要特殊的20-pin的Cortex Debug + ETM 连接器,ETM还提供Code Coverage和Performance Analysis功能
ETBEmbedded Trace Buffer,ETM跟踪buffer,需要小部分内部RAM
MTBMicro Trace Buffer,使用设备的内部RAM用作指令跟踪buffer
Hardware Breakpoints断点,这个调试中常见,CortexM0/M0+可多达4个,CortexM3/M4/M7可多达6个
WatchpointsCortexM框架的可多达2个,用作条件断点,比如可以监测某处内存发生改变时触发断点

调试器or仿真器

ARM官方提供的请移步至 http://www2.keil.com/mdk5/ulink

另外就是各家IC厂商,使用了ARM的IP,但是自己出了对应的调试器,这里列出比较常见些的:

  • Freescale PE-Micro
  • Nuvoton Nu-Link
  • CMSIS-DAP based adapters
  • Segger J-LINK, J-Trace
  • STMicroelectronics ST-LINK
  • TI XDS

更多精彩内容请关注“技塑未来”微信公众号。

这篇关于ARM Cortex-M CoreSight调试技术简单记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/753864

相关文章

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (