JLink 介绍

1 介绍

1.1 产品概述

在这里插入图片描述
在这里插入图片描述

  • 型号:ARM V11
  • IDE支持:KEIL/IAR/ADS
  • 接口类型:JTAG/SWD
  • 精密运行计时器:1
  • 仿真电压:3.3V
  • 通信方式:USB2.0
  • 仿真频率:15MHz

1.2 V11 支持的 cores

  • Arm Cortex cores:
    Cortex-A32/A35/A55/A57/A72, Cortex-R7/R8/R52/R52+, Cortex-M55/M85

  • Cadence Tensilica cores:
    HiFi 1/HiFi 3/HiFi 3z/HiFi 4/Fusion F1/Xtensa LX6/Xtensa LX7

  • Microchip PIC cores:
    PIC32WK

  • Renesas RX cores:
    R113/RX130/RX140/RX231/RX23T/RX24T/RX65N/RX651/RX660/RX-660/RX66T/RX71M/RX72M/RX72N/RX72T

  • Andes Tech (RISC-V) cores:
    A25/A25MP/A27/A27L2/A45/A45MP/D25F/D45/N22/N25/N25F/N45/AX25/AX25MP/AX27/AX27L2/AX45/AX45MP/NX-25F/NX25F/NX45

  • codasip (RISC-V) cores:
    L10/L11/L30/L31F/L30F/L50/L50F/H50X/50XF

  • Nuclei Systems (RISC-V) cores:
    N101/N203/N203E/N205/N208/N305/N307/N308/N605/N607/N608/N900/N900MP/NX605/NX607/NX608/NX900/NX900MP/UX605/UX607/UX608/UX900/UX900MP

  • SiFive (RISC-V) cores:
    E20/E21/E24/E31/E34/E61/E61-MC/E76/E76-MC/P270/P550/S21/S51/S54/S61/S61-MC/S76/S76-MC/U54/U54-MC/U64/U64-MC/U74/U74-MC/X280/X280-MC
    RISC-V cores misc:CloudBEAR BM-310/NEORV32/Syntacores SCR1/Syntacores SCR3/CloudBEAR BM-610

这些CPU支持单核或者双核的配置,并且后续新出的核心只有V11才能支持。

1.3 ARM V8、V9、V11 对比

特性V8V9V11
支持的速度最多支持到10M (JTAG调试模式)/4M (SDW调试模式)支持到15M (JTAG调试模式)/12M (SWD调试模式)未明确提及,但至少与V9相当
稳定性只能调试3.3V版本的CPU,调试5V CPU稳定性差驱动IC具有电压自适应能力,可调试1.8-5.5V的CPU未明确提及,但至少与V9相当
固件稳定性容易掉固件而成砖头基本没有这种情况,或者丢固件概率微乎其微未明确提及,但至少与V9相当
支持的CPU类型不再支持最新的一些CPU支持几乎所有的ARM CPU,除了RISC-V/M55/M85/R52等核心支持V9支持的所有CPU,以及RISC-V/M55/M85/R52等核心

2 接口

在这里插入图片描述

接口定义

在这里插入图片描述
在这里插入图片描述

5V-Supply引脚可以通过指令控制输出,指令如下:

CommandExplanation
power onSwitch target power on (接通电源)
power offSwitch target power off (关闭电源)
power on permSet target power supply default to “on” (开机默认接通电源)
power off permSet target power supply default to “off” (开机默认关闭电源)

VTref

VTREF是内部参考电压,此引脚需要接MCU的VCC
如果需要对外供电打开外壳,短接供电侧可以输出3.3V
如果目标板使用外部供电,请不要短接供电侧串电使用。

虚拟串口功能

可以通过Link Command命令行软件指令控制输出,
打开串口命令:vcom enable
关闭串口命令:vcom disable

JTAG 连接方式

在这里插入图片描述

提示:

  • 虚线3/11/19脚备选项,不用接;
  • RESET 如果没条件不接也可以。
  • 仿真器的VTREF默认通过跳冒内置3.3V,并通过1脚对外供电3.3V,也可以不接。

SWD 连接方式

在这里插入图片描述

提示:

  • 虚线13/19脚备选项,不用接;
  • RESET如果没条件不接也可以。
  • 仿真器的VTREF默认通过跳冒内置3.3V,通过1脚对外供电3.3V,也可以不接。

供电方式一般有三种【JTAG/SWD】

  • 使用5V-supply引脚经过目标板的LDO给MCU供电。
  • 调整跳冒到供电侧,使用VTREF给MCU供电。
  • 用户也可以选择目标板自带供电。

注意:无论那种供电方式,VTREF引脚都必须连接到MCU的VCC。

3 KEIL 软件烧录

3.1 选择目标芯片

在这里插入图片描述

3.2 选择仿真器

在这里插入图片描述

3.3 Debug 设置

在这里插入图片描述

3.4 Flash 设置

在这里插入图片描述

3.5 下载

在这里插入图片描述

4 各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别

调试接口描述特点支持的协议
JTAG联合测试行动小组标准的JTAG接口是4线:TMS、TCK、TDI、TDOIEEE 1149.1
SWD串行调试接口,比JTAG使用更少的引脚只需要4个(或者5个)引脚串行调试协议
Jlink德国SEGGER公司推出的基于JTAG的仿真器通用的开发工具,可以用于KEIL、IAR、ADS等平台JTAG、SWD
UlinkARM/KEIL公司推出的仿真器仅可以在Keil软件上使用,增加了串行调试(SWD)支持JTAG、SWD
STlink专门针对意法半导体STM8和STM32系列芯片的仿真器支持全速运行、单步调试、断点调试等SWIM、JTAG、SWD

JTAG协议

JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:

TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;
TCK:测试时钟输入;
TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;
TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出;

SWD接口

SWD(Serial Wire Debug,串行调试接口)是一种比JTAG使用更少的引脚的调试协议。标准的SWD接口只需要4个或者5个引脚:SWDIO、SWCLK、GND、VCC和可选的RESET。相比于JTAG,SWD的优势在于它只需要较少的引脚即可实现基本的调试功能,从而降低了硬件设计的复杂度并提高了灵活性。使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。

SWDIO是双向数据线,用于传输数据;
SWCLK是时钟线,用于同步数据的发送与接收;
GND和VCC分别是地线和电源线,为整个接口提供电气连接;
RESET是一个可选的复位信号线,用于将目标设备重置到初始状态。

Jlink仿真器

J-Link是由SEGGER公司推出的基于JTAG的仿真器,它可以用来对ARM处理器进行调试。

简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。

J-Link支持多种操作系统,包括Windows、Linux和Mac OS X等,并且可以兼容多个IDE,如Keil MDK、IAR EWARM、Eclipse等。此外,J-Link还提供了丰富的调试特性,例如全速运行、单步调试、断点调试、内存访问、寄存器查看等功能。

Ulink仿真器

ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。

但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。

STlink仿真器

ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:

编程功能:可烧写FLASH ROM、EEPROM、AFR等;
仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;
仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;
编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;

5 Keil 安装使用

Keil5 是一款广泛应用于嵌入式系统开发的集成开发环境(IDE),由 Keil Software 公司开发,并被 Arm 公司收购和持续维护。

6 J-Flash ARM

J-flash 软件 介绍

J-Flash 软件是由 Segger 公司开发的一款专业的固件下载和 Flash 操作工具,专为 ARM Cortex M 系列微控制器设计。它支持通过 JTAG 或 SWD 接口快速、稳定地将固件下载到 Flash 中。

在嵌入式系统开发领域,ARM Cortex M 系列微控制器因其高性能和低功耗特性,成为了众多开发者的首选。然而,固件下载和 Flash 操作一直是开发者面临的挑战。为了解决这一问题,我们推出了 J-flash 软件,一款专为 ARM Cortex M 系列微控制器设计的固件下载与 Flash 操作工具。J-flash 不仅功能强大,而且操作简便,能够极大地提升开发效率。

核心

J-flash 软件的核心技术在于其对 ARM Cortex M 系列微控制器的深度支持。通过 JTAG 或 SWD 接口,J-flash 能够快速、稳定地将固件下载到目标设备中。此外,软件还集成了多种 Flash 操作功能,如擦除、编程和校验,确保固件的正确写入和验证。调试功能的集成,使得开发者能够在开发过程中实时调试和排查错误,进一步提高了开发效率。

应用场景

固件更新:在产品发布后,开发者可以通过 J-flash 快速更新固件,修复漏洞或增加新功能。
产品测试:在产品测试阶段,J-flash 的调试功能可以帮助开发者快速定位和解决问题,确保产品质量。
原型开发:在原型开发阶段,J-flash 的快速固件下载功能可以大大缩短开发周期,加速产品上市。

特点

高效稳定:J-flash 的固件下载速度快,稳定性高,能够满足高频次的开发需求。
操作简便:软件界面友好,操作流程清晰,即使是初学者也能快速上手。
兼容性强:支持多种 ARM Cortex M 系列微控制器,适用于不同项目的需求。
功能全面:集成了固件下载、Flash 操作和调试功能,一站式解决开发中的常见问题。

下载安装

官网链接:https://www.segger.com/products/debug-probes/j-link/tools/j-flash/about-j-flash/

https://gitcode.com/open-source-toolkit/a505f/?utm_source=tools_gitcode&index=bottom&type=card

JFlash软件主要包含以下几个工具

在这里插入图片描述

  • JFlash,主要用于程序下载和读取。
  • JFlashLite,JFlash的Mini版
  • JFlashSPI,用于给SPI存储器下载程序,如W25Q128。
  • JLinkGDBServer,用于第三方软件的调试器,如使用Eclipse搭建STM32开发环境时,就要使用GDB Server来进行调试。
  • JLink Command,命令操作窗口,输入指令执行连接,擦除、下载、运行等操作。

JLINK 官方网站下载最新驱动

先去JLINK 官方网站下载最新驱动,默认出厂仿真器内部固件版本已经更新到V6.52a或者更高的版本,下载地址如下:
https://www.segger.com/downloads/jlink/

关闭冲突软件

安装前先把keil mdk或者IAR等软件关闭掉,否则相应驱动会更新失败。双击软件 JLink_Windows_Vxxx.exe 按默认安装即可。

选中 next

在这里插入图片描述

License Agreement界面中,请选择 I Agree按钮,执行下一步

在这里插入图片描述

Choose Optional components 默认安装即可,也可以选择Install a new instance。

在这里插入图片描述

Finish 安装完成

JLINK驱动安装失败

在这里插入图片描述

设备管理器 > 更新驱动程序 > 浏览计算机以查找驱动程序软件

选择 F:\JLink\JLink_V810c\USBDriver,然后就好了。
在这里插入图片描述

7 烧录

Jlink使用技巧之单独下载HEX文件到单片机

准备

  • Jlink软件
  • Hex文件或者Bin文件
  • Jlink调试器,如Jlink V11

打开JFlash

在这里插入图片描述

创建新工程

点击 File->NewProject
在这里插入图片描述

选择芯片的型号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

连接芯片

在这里插入图片描述
在这里插入图片描述

打开烧写文件

JLink支持Hex、Bin等多种文件类型。

这里如果选择的是Bin文件,还需要指定烧写的起始地址,因为Bin文件是不包含烧写地址的,而Hex文件是包含的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

F7 开始烧录

在这里插入图片描述

参考

1、各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
2、最详细,最快速上手安装 Keil5 教程(附安装包)
3、Keil5安装教程、汉化、及芯片包添加(1)
4、高效开发利器:J-flash 软件助力 ARM Cortex M 系列微控制器开发
5、NXP–J-Flash ARM
6、Jlink使用技巧之读取STM32内部的程序
7、Jlink使用技巧之单独下载HEX文件到单片机
8、如何在Jlink加入新MCU
9、JLINK驱动安装失败

03-08
### JLINK编程接口概述 JLink 是由 SEGGER 开发的一款高性能在线仿真器/下载器,广泛应用于嵌入式系统的开发中。通过 USB 接口连接到 PC 并提供 SWD 或 JTAG 连接至目标设备,允许开发者执行程序加载、断点设置以及单步调试等功能[^1]。 对于 OK6410 开发板而言,在不具备 JLink 的情况下虽然可以采用替代方案完成初步工作,但如果希望充分利用其功能特性,则建议还是配备此硬件辅助工具来提升工作效率和稳定性。 ### 使用方法详解 #### 安装驱动与软件环境配置 为了能够正常使用 JLink 编程接口,需先安装对应的 Windows/Linux/macOS 驱动程序并确保 GDB Server 正常运行。这一步骤可通过访问官方文档获取详细的指导说明。 #### 建立通信链接 当一切准备就绪之后,便可以在 IDE 中创建项目工程文件,并利用所提供的 API 函数建立主机端同目标芯片之间的通讯链路: ```c #include "jlinkarm.h" int main(void){ // 初始化 J-Link 库函数 if(JLINKARM_Init() != ERROR_OK){ printf("Failed to initialize J-Link library\n"); return -1; } // 设置 CPU 类型为 ARM7TDMI-S (针对 S3C2440A 而言) JLINKARM_SetCPUSpeedKHz(8000, 0); ... } ``` 上述代码片段展示了如何初始化 J-Link 动态库并与指定型号的目标处理器建立起有效的控制通道。 #### 下载固件映像 一旦成功建立了稳定可靠的连接关系后,就可以调用相应命令实现应用程序二进制数据向 Flash 存储区内的传输操作了: ```c // 执行擦除整个闪存区域的动作 if(JLINKARM_EraseSector(...)!=ERROR_OK){...} // 将编译好的 .bin 文件内容写入特定地址空间内 if(JLINKARM_WriteMem(...)!=ERROR_OK){...} ``` 以上两段 C 语言源码分别实现了对内置非易失性存储介质实施全盘清除处理过程以及自定义位置处的数据灌装流程。 #### 断点管理机制 除了基本的读取寄存器状态之外,另一个重要方面就是支持动态插入硬/软两类中断指令以便于实时监控变量变化趋势或者定位潜在缺陷所在之处: ```c // 插入硬件断点 if(JLINKARM_BreakpointSet(...) != ERROR_OK){ ... } // 清除已有的某个断点记录项 if(JLINKARM_BreakpointClear(...) != ERROR_OK){ ... } ``` 这些 API 提供了一种灵活的方式用于暂停正在执行中的线程从而方便后续分析诊断问题根源所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

worthsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值