当前位置: 首页 > news >正文

OpenOCD之J-Link下载

NOTE:此篇文章由笔者的 VSCode编辑+GCC for ARM交叉编译工具链+Makefile构建+OpenOCD调试(基于STM32的标准库)派生而来。

1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool工具可将J-Link从WinUSB驱动恢复为默认驱动⭐)

下载链接
①官方网址:https://visualgdb.com/UsbDriverTool/
②笔者的CSDN链接:https://download.csdn.net/download/ZZLLLLLLZ/89902055

在这里插入图片描述
2.打开安装好OpenOCD路径的interface接口脚本文件夹,比如笔者安装OpenOCD路径的interface接口脚本文件夹如下:

D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface

3.复制新的一份jlink.cfg,并重命名为jlink-swd.cfg
在这里插入图片描述
4.打开jlink-swd.cfg文件,在jlink-swd.cfg的 adapter driver jlink 语句下方添加 transport select swd,如下图所示:
在这里插入图片描述
5.将task.json中的 -f interface处后面的接口文件名修改成上述的jlink-swd.cfg,如下图所示:
在这里插入图片描述
task.json文件内容:

 //J-link方式下载{"type": "shell","label": "flash with J-link","command": "openocd","args": ["-f","interface/jlink-swd.cfg", //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface"-f","target/stm32f4x.cfg", //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target"-c",// "program build/F401CCU6_demo.elf verify reset exit""program build/${workspaceRootFolderName}.elf verify reset", //将工程根目录名称作为可执行文件名称"-c","reset run",// "-c",// "shutdown","-c","exit"], /*command+args相当于主命令+子命令,也就是openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program build/F401CCU6_demo.elf verify reset exit"的效果*/"problemMatcher": ["$gcc"],"group": "build","dependsOn": [ //每次执行这个任务,会先build任务,这便是所谓的依赖。"build"]}

同理 将launch.json中的J-link调试段的 interface 处后面的接口文件名修改成上述的jlink-swd.cfg,如下图所示:
在这里插入图片描述

launch.json文件内容:

//调试脚本
{"configurations": [{"name": "Debug with CMSIS-DAP-link","cwd": "${workspaceRoot}",// "executable": "./build/F401CCU6_demo.elf","executable": "./build/${workspaceRootFolderName}.elf", //将工程根目录名称作为可执行文件名称"request": "launch","type": "cortex-debug","servertype": "openocd","device": "STM32F401CCU6","configFiles": ["interface/cmsis-dap.cfg", //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface"target/stm32f4x.cfg" //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target],"svdFile": "./STM32F401.svd", //选择寄存器文件"liveWatch": { //变量窗口激活和设置每秒的采样次数"enabled": true,"samplesPerSecond": 4},"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none","preLaunchTask": "flash with cmsis-dap-link"//每次调试之前,会先下载程序再调试},{"name": "Debug with ST-link","cwd": "${workspaceRoot}",// "executable": "./build/F401CCU6_demo.elf","executable": "./build/${workspaceRootFolderName}.elf", //将工程根目录名称作为可执行文件名称"request": "launch","type": "cortex-debug","servertype": "openocd","device": "STM32F401CCU6","configFiles": ["interface/stlink.cfg", //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface"target/stm32f4x.cfg" //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target],"svdFile": "./STM32F401.svd", //选择寄存器文件"liveWatch": { //变量窗口激活和设置每秒的采样次数"enabled": true,"samplesPerSecond": 4},"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none","preLaunchTask": "flash with stlink" //每次调试之前会先下载再调试},{"name": "Debug with J-link","cwd": "${workspaceRoot}","executable": "./build/${workspaceRootFolderName}.elf","request": "launch","type": "cortex-debug","servertype": "openocd", //要选择的GDB server"device": "STM32F401CCU6","configFiles": ["interface/jlink-swd.cfg", //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\interface"target/stm32f4x.cfg" //D:\Software\embedded_dev_tools\xpack-openocd-0.12.0-3\openocd\scripts\target],"interface": "swd","svdFile": "./STM32F401.svd","liveWatch": {"enabled": true,"samplesPerSecond": 4},"runToEntryPoint": "main","showDevDebugTimestamps": true,// "preLaunchTask": "build","showDevDebugOutput": "none","preLaunchTask": "flash with J-link" //每次调试之前会先下载再调试}],"version": "2.0.0"
}

6.点击Download → 下拉框选择J-link下载,即可下载。
在这里插入图片描述

相关文章:

OpenOCD之J-Link下载

NOTE:此篇文章由笔者的 VSCode编辑GCC for ARM交叉编译工具链Makefile构建OpenOCD调试(基于STM32的标准库)派生而来。 1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool…...

华为云云连接+squid进行正向代理上网冲浪

1 概述 ‌Squid‌是一个高性能的代理缓存服务器,主要用于缓冲Internet数据。它支持多种协议,包括FTP、gopher、HTTPS和HTTP。Squid通过一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求,这使得它在处理请求时具有较高的效率‌。…...

情绪识别项目

文章目录 1、mp4s文件转mp3文件2、Audition下载3、Audition安装4、Audition使用: 1、mp4s文件转mp3文件 在线转:Convert audio to MP3(https://audio.online-convert.com/convert-to-mp3) 2、Audition下载 Audition CC2019/64位…...

【RISC-V CPU debug 专栏 2.2 -- Hart DM States】

文章目录 Hart DM StatesHart 的 DM 状态1. 不存在(Non-existent)2. 不可用(Unavailable)3. 运行(Running)4. 暂停(Halted)状态转换与复位行为状态指示信号Hart DM States 在 RISC-V 调试架构中,每个可以被选择的硬件线程(hart)处于以下四种调试模块(DM)状态之一…...

从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!

爆款标题: 《从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!》 正文: 在自然语言处理(NLP)领域,Zero-shot、One-shot 和 Few-shot 学习已经成为衡量大语言…...

【LC】3101. 交替子数组计数

题目描述: 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。返回数组 nums 中交替子数组的数量。 示例 1: 输入: nums [0,1,1,1] 输出: 5 …...

如何构建SAAS项目

在后台使用JDBC方式动态创建用户输入的数据库信息(库名、地址、用户名、密码) 执行预先写好的sql文件(如mybatis的scriptRunner)执行建表语句及插入基础数据(管理员用户、普通用户)...

树莓派搭建NextCloud:给数据一个安全的家

前言 NAS有很多方案,常见的有 Nextcloud、Seafile、iStoreOS、Synology、ownCloud 和 OpenMediaVault ,以下是他们的特点: 1. Nextcloud 优势: 功能全面:支持文件同步、共享、在线文档编辑、视频会议、日历、联系人…...

深入解读 MongoDB 查询耗时:Execution 和 Fetching 阶段详解

在使用 MongoDB 时,查询性能的分析与优化是开发者关注的重点。MongoDB 的查询过程通常分为两个主要阶段:Execution(执行阶段)和Fetching(拉取阶段)。每个阶段的耗时代表不同的性能瓶颈,优化思路…...

frida_hook_dlopen(当年到lib目录下找发现一个so都没有,hook下dlopen)

Frida 脚本用于拦截 Android 应用程序中的 dlopen 和 android_dlopen_ext 函数。这两个函数用于动态加载共享库,脚本通过拦截这些函数的调用来记录加载的库的路径。 代码分析 var dlopen Module.findExportByName(null, "dlopen"); // 6.0 var android…...

Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录

前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 参考&…...

WordCloud去掉停用词(fit_words+generate)的2种用法

-------------词云图集合------------- WordCloud去掉停用词(fit_wordsgenerate)的2种用法 通过词频来绘制词云图(jiebaWordCloud) Python教程95:去掉停用词词频统计jieba.tokenize示例用法 将进酒—李白process_t…...

Python 中如何处理异常?

在Python中,异常处理是一种重要的编程技术,它允许开发者优雅地处理程序运行过程中出现的错误或异常情况,而不是让程序直接崩溃。 通过异常处理,我们可以使程序更加健壮、用户友好。 异常处理的基本结构 Python中最基本的异常处…...

C++——多态(下)

目录 引言 多态 4.多态的原理 4.1 虚函数表指针 4.2 多态的原理 5.单继承和多继承关系的虚函数表 5.1 单继承中的虚函数表 5.2 多继承中的虚函数表 结束语 引言 接下来我们继续学习多态。 没有阅读多态(上)的可以点击下面的链接哦~ C——多态…...

qsort函数详解+代码展示

文章目录 概要系列文章目录前言(1) 定义(2) 使用(举例子 上代码)1、定义数组:2、定义比较函数:3、调用 qsort:4、输出结果: (3) 注意事项 小结 概要 本篇博客将详细地介绍qsort排序函数,&#x…...

leetcode hot100【LeetCode 136. 只出现一次的数字】java实现

LeetCode 136. 只出现一次的数字 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 …...

(免费送源码)计算机毕业设计原创定制:Java+ssm+JSP+Ajax SSM棕榈校园论坛的开发

摘要 随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交…...

对抗攻击算法:FGSM和PGD

FGSM 传送门 FGSM 利用了梯度上升的思想,通过损失函数相对于输入图像的梯度来找到 最容易 迷惑网络的方向,并沿着这个方向对图像进行微小的扰动。 FGSM 的基本想法是,沿着这个梯度的符号方向对图像进行微调,以最大化损失函数。具…...

【八股文】小米

文章目录 一、vector 和 list 的区别?二、include 双引号和尖括号的区别?三、set 的底层数据结构?四、set 和 multiset 的区别?五、map 和 unordered_map 的区别?六、虚函数和纯虚函数的区别?七、extern C …...

xtu oj 众数

样例输入# 3 1 0 1 2 1 1 2 3 1 1 2 2样例输出# 1 2 3 解题思路:与数组大小有关,先排序 举个例子思考一下 n4 k2 数组为1 2 3 4 如果我们想让众数那个位的值为3(即max3),3出现的次数为3,即众数为3,需要修改多少次…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...