Arm处理器调试采用jlink硬件调试器的命令使用大全

arm处理器分为cortex-a,cortex-r,cortex-m等3个内核系列,其中m系列一般是单片机,例如stm32等,工控用得挺多。a系列一般是消费娱乐产品等使用较多,例如手机处理器。r系列是高端实时类型处理器,价格高,不太了解。这里说说最多接触的m和a系列。

说说硬件调试器:

一般有多种,st官方的st-link,SEGGER的J-Link、IAR的I-jet(本人使用过其多核调试功能),ulink,cmsis-dap等这几个我们一般能用到的。简单说一下:

st-link:仅支持自家m系列stm32单片机

jlink:支持m,a,r系列

ulink:这些请看这个博客:

常用的ARM调试器介绍(系统的学习调试器看这一篇就够了)-CSDN博客

说一下常用的调试环境搭建:

m系列一般用st-link调试器就可以调试,a系列一般得用jlink调试。

m和a系列处理器一般支持jtag、swd两种调试协议。jtag调试协议占用引脚端口多,swd占用仅2个而且烧录速度更快,stm32一般都用swd协议,a系列用jtag协议较多,但是也可以尝试一下swd协议,看看速度有变快不。

注意:对于swd协议,st-link最大支持4MHZ通信频率(st-link调试器一般是v2版本,据说st-link硬件调试器升级软件版本为v3能提高一倍速度?没试过可以试试),但是jlink则可以达到几十MHZ,下载速度确实快几倍(本人手头也有jlink v11的调试器实测过stm32f103zet6采用swd协议,确实比st-link快几倍,但是采用jtag协议,好像连不上不知道为什么,没深究了)。        

关于这个通信速率(swd和jtag模式其实都是同样共用设置的频率),目前已知为:st-link最大4MHZ(keil使用的话里面最大可设该值),jink最大未知(看jlink.exe软件安装后里面的手册 UM08001_Jlink.pdf介绍的章节 7.6.1 SWD speed 提到和目标处理器以及jlink版本什么的都有关系,也就是没有个确定上界值(但是在keil里,或者JLinkGDBServer.exe双击运行界面里,最大可选50MHZ),一般来说4000KHZ,也就是4MHZ比较常见且稳定,设高了,能正常通信就可以(和线缆质量也有很大关系),否则就自己降低速率吧),但是我发现命令行启动jlink时候,设置超过50MHZ竟然也没有报错,就不太懂了。而且jlink分别base版(近100块,用得比较多,下载频率设置到15MHZ,也很稳,也比stlink快几倍)、pro版(稍微贵一些,频率可以到几十MHZ)、ultra版(近万元一个,极致性能了)。

也就是说,无论是stm32还是a系列处理器,调试器尽量选用jlink(对stm32所有系列支持也非常友好的),虽然贵了点,但是下载速度更快,功能更强大,可配置内容也更多。关于其它品类的支持arm的调试器,我没测试过,就不多说了,但是从那些调试器的性能介绍来看,jlink依然速率和稳定性应该是最好的。

关于stlink的使用:

可以使用一个开源的st-link.exe工具链,或者openocd(而且各种类型调试器它都能驱动)都可以。可以看我其它博客:

嵌入式IDE原理 OpenOCD介绍 以及stlink如何连接stm32板子-CSDN博客

 驱动单片机硬件调试器的一些开源库总结(包含stlink调试器)_stlink 开源-CSDN博客

 OpenOCD如何通过stlink直接下载程序到stm32板子(已解决)_openocd stlink-CSDN博客

windows用gcc编译stm32程序命令行控制stlink下载到板子_stlinkgdb.exe-CSDN博客

关于jlink的使用:

使用openocd也可以,但是这里主要说使用jlink调试器官方自己的jlink.exe工具链,因为适配性更好。只需要下载官方的jlink软件工具安装即可。里面有各种jlink开头的.exe工具链,但是用户接口一般都是jlink.exe这个软件,如果是gdb连接jlink调试器,那么需要启动JLinkGDBServerCL.exe,然后gdb.exe发起连接它即可,这里进行常用的介绍如下:

首先,最全的介绍,就在jlink.exe软件安装后里面的手册 UM08001_Jlink.pdf介绍,所有功能大纲以及相关命令出处,里面都介绍得清清楚楚。关于jlink.exe的命令,里面仅进行了简单介绍,是给了在线网页命令大全:J-Link Commander - SEGGER Knowledge Base。而关于jlinkgdbserver.exe命令倒是进行了详细介绍,以及gdb能执行的透传monitor命令列表。

jlink.exe的操作命令,从上面的网页可以看出,分为启动jlink.exe时候(也称为配置命令)的命令行参数,以及进入jlink.exe软件后(也成为Debugging命令)的命令行参数两种,例如halt命令,就只能是进入了jlink.exe后,才能使用的。所以多看看这些资料,就知道如何用了。

例如下载程序,由于loadfile命令得进入jlink.exe才能使用,此时一行命令行就没法实现了,jlink.exe刚好支持命令脚本,启动jlink.exe时候-CommandFile即可指定命令脚本,具体参见文档以及网页说明。此外,如果用户有自定义的目标版设置命令,jlink.exe还支持init脚本,请参见相关内容。

最后再说一点,jlink的命令很多,但是我们一般需要用的其实就几个,其它的都是保持默认就可以了。还有就是文档风格等原因吧,如果深究,其实会发现有些写得逻辑不太容易理解,总之已经能解决我们的问题,以及知道设置参数一些极限,就可以了,不用太转牛角尖了,不然越思考越觉得文档写得有些解释不通的地方,例如退出命令,里面写的是exit,但是用quit也能退出(会发现jlink所有介绍命令都没有出现过quit)!!!这个可能就是文档写得没有完全准确的原因,如果我们一直深究,转牛角尖去看,就只会徒劳费时间精力了,做嵌入式开发其实其它任务也有类似现象,也无需转牛角尖的

最后给出stm32的程序下载命令:

-device STM32F103ZET6 -if SWD -speed 50000 -autoconnect 1 -CommandFile download.jlink

 download.jlink内容如下:
 

connect
halt
WaitHalt 100
loadfile "build/Project4_hal_small_debug.bin" 0x08000000
RX 100
exit

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

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

相关文章

如何将图像插入 PDF:最佳工具比较

无论您是编辑营销材料、写报告还是改写原来的PDF文件,将图像插入 PDF 都至关重要。幸运的是,有多种在线和离线工具可以简化此任务。在本文中,我们将比较一些常用的 PDF 添加图像工具,并根据您的使用场景推荐最佳解决方案&#xff…

4、获取树莓派温度

打开终端,使用指令查看CPU温度,依次输入以下指令: 1.进入操作目录 cd /sys/class/thermal/thermal_zone0 2.查看温度 cat temp 树莓派的返回值 51540 返回值除以1000为当前CPU温度值。即当前温度为51摄氏度。

Leetcode 269. 火星词典

1.题目基本信息 1.1.题目描述 现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同。 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按这门新语言的字母顺序进行了排序 。 请你根据该词典还原出此…

使用vscode进行c/c++开发的时候,输出报错乱码、cpp文件本身乱码的问题解决

使用vscode进行c/c开发的时候,输出报错乱码、cpp文件本身乱码的问题解决 问题描述解决方案问题1的解决方案问题2解决方案 问题描述 本篇文章解决两个问题: 1.当cpp文件出现错误的时候,编译时报错,但是报错内容缺是乱码&#xff0…

现代数据湖架构全景解析:存储、表格式、计算引擎与元数据服务的协同生态

本文全面剖析现代数据湖架构的核心组件,深入探讨对象存储(OSS/S3)、表格式(Iceberg/Hudi/Delta Lake)、计算引擎(Spark/Flink/Presto)及元数据服务(HMS/Amoro)的协作关系,并提供企业级选型指南。 一、数据湖架构演进与核心价值 数据湖架构演进历程 现代数据湖核心价…

主数据编码体系全景解析:从基础到高级的编码策略全指南

在数字化转型的浪潮中,主数据管理(MDM)已成为企业数字化转型的基石。而主数据编码作为MDM的核心环节,其设计质量直接关系到数据管理的效率、系统的可扩展性以及业务决策的准确性。本文将系统性地探讨主数据编码的七大核心策略&…

Mac电脑上本地安装 MySQL并配置开启自启完整流程

文章目录 一、mysql安装1.1 使用 Homebrew 安装(推荐)1.2 手动下载 MySQL 社区版1.3 常见问题1.4 图形化管理工具(可选) 二、Mac 上配置 MySQL 开机自动启动2.1 使用 launchd 系统服务(原生支持)2.2 通过 H…

SQL Server 事务详解:概念、特性、隔离级别与实践

一、事务的基本概念 事务(Transaction)是数据库操作的基本单位,它是由一组SQL语句组成的逻辑工作单元。事务具有以下关键特性,通常被称为ACID特性: ​​原子性(Atomicity)​​:事务…

【C语言极简自学笔记】项目开发——扫雷游戏

一、项目概述 1.项目背景 扫雷是一款经典的益智游戏,由于它简单而富有挑战性的玩法深受人们喜爱。在 C 语言学习过程中,开发扫雷游戏是一个非常合适的实践项目,它能够综合运用 C 语言的多种基础知识,如数组、函数、循环、条件判…

unix/linux source 命令,其发展历程详细时间线、由来、历史背景

追本溯源,探究技术的历史背景和发展脉络,能够帮助我们更深刻地理解其设计哲学和存在的意义。source 命令(或者说它的前身和等效形式)的历史,与 Unix Shell 本身的发展紧密相连。 让我们一起踏上这段追溯之旅,探索 source 命令的由来和发展历程。 早期 Unix Shell 与命令…

720全景展示:VR全景的技术原理及应用

VR720全景展示:技术原理及应用探索 720全景技术,作为当前全球范围内迅速崛起流行的视觉新技术,为用户带来了全新的真实现场感和交互式的体验。凭借全方位、无死角的视觉展示特性,在VR(虚拟现实)领域中得到…

Python爬虫实战:研究Requests-HTML库相关技术

1. 引言 1.1 研究背景与意义 随着互联网数据量的爆炸式增长,网络爬虫已成为数据获取的重要工具,广泛应用于市场调研、舆情分析、学术研究等领域。传统爬虫技术在面对现代 JavaScript 动态渲染网页时面临挑战,而 Requests-HTML 库通过集成浏览器渲染引擎,为解决这一问题提…

VectorStore 组件深入学习与检索方法

考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准,但是仍然存在着一些公共特征,LangChain 基于这些通用的特征封装了 VectorStore 基类,在这个基类下,可以将方法划分成 6 种: 相似性搜…

【PyQt5】从零开始的PyQt5 - QLabel篇

从零开始的PyQt5 - QLabel篇 引言一、简述二、例程2.1 显示到QWidget窗口上2.2 重新设置Label大小和对齐方式2.3 添加内容,设置边框2.4 显示富文本 三、参考 引言 QLabel主要用于显示文本或图像,不提供用户交互功能。本文主要简述PyQt5中的QLabel以及展…

论文略读:Uncertainty-Aware Graph Structure Learning

WWW 2025 1 intro 传统GNN忽视了图结构自身存在的缺陷: 图结构常常会出现错误边和缺失边等数据问题,从而限制模型的效果 —>为了解决上述问题,产生了图结构学习算法(GSL) 目的在于优化结点连接和边权重来生成新的邻接矩阵主流…

HCIE-STP复习

文章目录 STP STP 🏡作者主页:点击! 🤖Datacom专栏:点击! ⏰️创作时间:2025年05月31日13点17STP通过三要素选举消除环路: 根桥(BID最小,建议设优先级为0&…

leetcode17.电话号码的字母组合:字符串映射与回溯的巧妙联动

一、题目深度解析与字符映射逻辑 题目描述 给定一个仅包含数字 2-9 的字符串 digits,返回所有它能表示的字母组合。数字与字母的映射关系如下(与电话按键相同): 2: "abc", 3: "def", 4: "ghi", …

【Unity】模型渐变技术 BlendShapes变形

模型fbx拖拽到场景并赋予脚本上SkinnedMeshRenderer参数 按下空格即可演示渐变 可去到3DsMax 或 Blender等软件制作 这种带有BlendShapes的模型 (Sphere002)是另一个模型,3DsMax叫变形器。 可参考:【技术美术百人计划】美术 3.5 BlendShape基础_哔哩哔哩…

CTFHub-RCE 命令注入-无过滤

观察源代码 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1|ls 发现除了index.php文件外,还存在一个可疑的文件 打开flag文件 我们尝试打开这个文件 127.0.0.1|cat 19492844826916.php 可是发现 文本内容显示不出来&…

DrissionPage ChromiumPage模式:浏览器自动化的高效利器

引言 在Python自动化领域,Selenium与Requests是开发者耳熟能详的工具,但二者在功能侧重上存在明显割裂。DrissionPage的出现打破了这一局面,其创新的ChromiumPage模式通过整合浏览器自动化与HTTP请求能力,为网页操作提供了全新解…