JLink仿真器使用汇总

这篇具有很好参考价值的文章主要介绍了JLink仿真器使用汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内容包括SWD硬件连接,Keil仿真设置与其问题解决,J-Flash解除写保护与下载Hex文件及对芯片批量加密。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 

目录:

一、SWD实时仿真硬件电路

1、SWD实时仿真接线

2、注意

二、仿真设置

三、仿真时问题的解决(Keil5.12)

1、仿真时添加变量或数组

2、程序下载

1)程序下载完成后,J-LINK使单片机处于复位状态  2)读保护与写保护

3)尽量不要由J-Link给线路板供电,内部有短接   4)勾选2处不能烧写的设置

3、仿真器与线路板连接需可靠

4、使用J-Link时,Keil软件出现无响应

5、出现“USB无法连接”提示

6、出现“***JLink Error: Can not read register 17 (MSP) while CPU is running提示

四、J-Flash解除STM32写保护

五、J-Link下载Hex文件

1、简述

2、与J-Link相关的设置

3、烧写文件载入与连接目标

4、问题总结

1)可连接成功,擦除失败   2)通过程序Download与J-Flash均无法烧录程序

六、JLink-JScope与RTT使用

1、简介

2、HSS模式使用

3、RTT模式使用


所有的操作基于Win7 64位,STM32F103VET6使用J-Link(SWD模式),另可参见“Keil编译软件的使用汇总之三、Keil5.12错误的处理”。


一、SWD实时仿真硬件电路

1、SWD实时仿真接线

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

2、注意

JTMS、JTCK外接电路中不能有电容。也可不用RST端,在STM32F407VET6中实际仿真,速率要降低,我最多到1MHz,如下图。

速率高了Keil 5中出现“SYSRESETREQ has confused core. Trying to reconnect and use VEC”提示。故实践出真知,RST端有必要连接。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

二、仿真设置

J-LINK的SWD仿真时,对单片机口线的设置

void KEY_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关闭JTAG,否则 增加PBin(3)键失效
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
//设置为GPIO_Remap_SWJ_Disable,表现为找不到芯片;有时能找到芯片,但程序执行到KEY_Init()函数会停住,或者报“CPU_REG_SET():Register 0 is already marked as valid.”
//设置为GPIO_Remap_SWJ_JTAGDisable即可解决此问题。
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
}

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

三、仿真时问题的解决(Keil5.12)

1、仿真时添加变量或数组

1)连接上J-Link仿真器,出现数组显示为变量,只要在此处设置断点,再仿真到相应的数组位置即可解决此问题。

2)点变量或数组右键可快速添加到Watch中。

3)对于局部变量全速运行时,看不到变量的内容,可修改为全局变量。

2、程序下载

1)程序下载完成后,J-Link使单片机处于复位状态

只要Start Debug,然后再Stop Debug即可。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

或者勾选“Reset and Run”

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

----------------------

2)读保护与写保护

在试验时“编程到FLASH时写选项字节”前面切记不要打钩。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

----------------------

3)尽量不要由J-Link给线路板供电,内部有短接

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

----------------------

4)勾选2处不能烧写的设置

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

3、仿真器与线路板连接需可靠

查看仿真器是否连接上的方法

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

4、使用J-Link时,Keil软件出现无响应

J-Link连接上线路板,中途线路板断电(或长时间没有操作),Keil软件极容易出现无响应。拔去J-Link连接电脑的USB线再插上,此时J-Link已与MCU断开连接。会出现如下图的现象,点击确定即可。这样操作一般不容易掉固件。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

5、出现“USB无法连接”提示

1)J-Link没有插入数据线,产品连接J-Link,产品上电比较容易发生丢失固件

2)长期J-Link不断电,打开Keil时也会丢失固件

3)电脑报“USB无法连接”,此种情况只能给J-Link重刷固件,移步:实记JLink-V8刷固件方法。

6、出现“***JLink Error: Can not read register 17 (MSP) while CPU is running”提示

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

按”二、仿真设置“做即可解决此问题。 

有时为了省电,将所有的IO引脚下拉也会出现此问题。在JTAG调试的时候,不能将所有的IO下拉,那样JTAG就不能正常工作了,将对应的语句注释掉就可以了。

四、J-Flash解除STM32写保护

通过J-Flash软件,配合JLink仿真器来解锁。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

在Target Device中选择对应要解锁的芯片。

以本人所用的STM32F103VE为例,Flash size为512KB,本应选择STM32F411CE,由于STM32F411CE的Flash size为512KB+16MB,因此,选择STM32F411VE。只要Flash size大小与要解锁的芯片的Flash大小一致,Device可以不一致。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

芯片与JLink连接后,选择Target-Connect即可连接成功。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

The "allow opt. bytes" device selection is only available for STM32F1 series devices. For later devices, memory mapped programming of the option bytes is not feasible as for some series, the option bytes become valid immediately which would cause immediate connection loss to a device (in case readout protection is enabled) before the option byte programming can be verified.

The STM32 series devices provide option bytes which allow "permanent" configuration as well as readout protection for the device. In order to enable or disable readout protection, a sequence of multiple read / write accesses to special function registers of the STM32 MCU has to be performed. The sequence is different for each sub-family of the STM32 device series and is described in the respective reference manual of the device. A list of example J-Link commander files and J-Flash projects which enable or disable the readout protection of an STM32 device is provided below. Please note that the provided files serves as an example / proof of concept. A user may alter them in order to suit their specific use case, e.g. using smaller timeouts, programming other values, etc.

NOTE: A power-on reset is required when securing the device while a debug probe is connected.

五、J-Link下载Hex文件

1、简述

本处以烧写STM32F103VET6说明,软件:Flasher_Windows_V722a,实际测试J-Flash V4.90版亦可行。

2、与J-Link相关的设置

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

加密芯片后通过SWD不能下载程序。

3、烧写文件载入与连接目标

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

J-Flash 7.22a版本成功下载

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

J-Flash 4.90版本成功下载

4、问题总结

1)可连接成功,擦除失败

提示:RAM check failed @address 0x20000000.

Write: 0x03020100 07060504 

Read : 0xAAAAAAAA AAAAAAAA

(0 bytes of RAM have been checked successfully)

Failed to erasechip

解决:出现此错误是硬件的错误,与JLINK与板子的连线或者板子JTAG接口的问题

----------------------

2)通过程序Download与J-Flash均无法烧录程序

SWD仅使用+3.3V、GND、JTMS、JTCK四根线,未使用RST。对于先前已烧录程序的单片机出现使用ISP烧录可以成功,但有些单片机Download与J-Flash均无法烧录,出现找不到芯片之现象,只要接入RST即可解决。关于ISP另可参看“单片机3种烧录方式解析”。

六、JLink-JScope与RTT使用

1、简介  

软件下载移步:https://www.segger.com/downloads/jlink/,J-Link V7.57安装后,如下图所示。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

其中的J-Scope为SEGGER公司推出,它可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要SWO或目标上的任何额外引脚等功能,但使用可用的标准调试端口。J-Scope可以以类似示波器的方式显示多个变量的值。它读取elf或axf文件并允许选择多个变量进行可视化。只需将目标微控制器连接到J-Link并启动J-Scope。只需几个步骤即可配置J-Scope,并选择要显示的符号。配置可以存储在项目文件中,以便于重复使用和移植。在J-Scope中选择的每个符号都可以单独配置。上下移动图形以更改零基线或更改其分辨率。选择是在图表中显示符号还是仅在监视面板中显示其值。分析收集的数据,滚动可视化图形,放大和缩小或将数据保存到文件中以供进一步分析。J-Scope可以与调试环境并行使用,并扩展IDE的调试体验。J-Scope是Jlink的一个强大的功能,可以在MCU运行时,实时查看全局变量的值,并以图形化显示,就像示波器一样。它是通过SWD接口或者JTAG接口,读取axf文件来选择要显示的变量。

目前支持的内核:

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

2、HSS模式使用

通过采样周期定时从内存文件中读取变量的值,所以采样周期和可执行文件是必须的,为了更加准确有效的采集到对的数据,最好用volatile声明变量。这种模式比较简单,只需加载keil生成的xx.axf或IAR生成的xx.out即可。

优点:随时可连接MCU,不影响MCU正常运行,因为不需添加任何代码,所以也不会占用MCU紧张的资源。

缺点:速度慢,采样速率基本固定在1Khz左右,因此仅仅适合采样变量变化速率低于1Khz的情况,因为数据是根据采样率来的,所以实时性不是太准,低速率下影响不大。

1)打开J-Scope,创建一个工程

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

2) 配置

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

3)选择要查看的变量

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

4)开始

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

3、RTT模式使用

需要将RTT需要的软件包加载到应用程序中,RTT模式下,所有的数据和时间戳均是有MCU来提供。

优点:比HSS更高的数据吞吐量,最高可达2MB/S,不过这个是由MCU上使用的缓冲区大小决定,即使只有512字节的小缓冲区也可以达到1MB/S,够用了;J-Scope数据采集与MCU的应用程序执行同步,因为应用程序决定何时以及如何采样数据;不需要知道变量位置,RTT缓冲区的位置由J-Scope自动检测;时间戳等数据可以被添加到数据样本中。

缺点:稍微比较麻烦,需要移植RTT代码,占用MCU资源,大概需要1.4kb左右的Flash,1KB左右的RAM。

1) 找到JLINK驱动的安装目录

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

解压后可以看到如下图所示文件,Example目录是参考的demo,RTT和Syscalls文件夹下就是移植所需要的文件。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

RTT目录内容:

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

Syscalls目录内容:

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

----------------------

2)添加文件到工程

(1) 在工程下新建一个文件夹,将上述中提到的文件放到这个文件夹中

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

(2) 添加文件到工程

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

(3) 添加头文件路径

将RTT的代码添加到工程内,并且在需要打印的地方包含“SEGGER_RTT.h”,这样就可以使用SEGGER_RTT进行打印了。

j-link,单片机(汇编与C代码)、PLC,J-Link仿真器使用

以上两种模式使用JTAG或SWD模式均可。


天道忌满,人道忌全;一半在于己,一半听自然。 觉得不错,动动发财的小手点个赞哦!文章来源地址https://www.toymoban.com/news/detail-773345.html

到了这里,关于JLink仿真器使用汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高云USB下载器仿真器用户手册(包括在线逻辑分析仪的使用方法)

    仿真器用于高云 GOWIN 公司所生产的 FPGA,可用于程序下载和调试。主要特点如下: 1.支持宽电压1.2V - 3.6V; 2.速度最高可达30Mb/s,极速完成下载和波形调试功能; 3.完美支持在线逻辑分析仪; 4.具有过流保护、TVS 保护,使用更可靠; 5.配高速柔性 USB 线,使用效果佳; 1.无需

    2024年02月09日
    浏览(50)
  • ARM仿真器:重刷固件

    相信很多人在开发的时候用的都用的时山寨版的ARM仿真器Jlink,那么很可能就会遇到这种问题: 上述图片引自: 实记JLink-V8刷固件方法(照着做即可成功) (baidu.com) 很明显,必须重新给jlink重新刷一遍程序了。 在网上搜索了很多方法 : JLINK v9 固件使用另一个JLINK重刷_jlink li

    2024年02月03日
    浏览(38)
  • Ubuntu下安装Gazebo仿真器

    Gazebo仿真平台通常需要配合ROS使用,因此需要先安装ROS 。可以参考ROS安装教程 首先安装一些必要的工具 修改源 update 一下更新 运行下载 gazebo 启动 Gazebo gazebo安装成功

    2024年01月22日
    浏览(44)
  • 如何用DAP仿真器下载程序

      把仿真器用USB线连接至电脑,如果仿真器的灯亮则表示正常,可以使用。再把仿真器的另外-端连 接到开发板,给开发板上电,就可以通过软件KEIL或者IAR给开发板下载程序,仿真器见图1。     在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在

    2024年02月08日
    浏览(39)
  • 华为存储IA篇仿真器搭建

    编号 设备名 数量 备注 01 Windows系统主机 1台 为VMware提供安装位置 02 VMware软件 1份 提供存储仿真器的部署环境 03 仿真器文件 1份 用于部署estor虚拟机 【注意】:暂无注意事项         1.4 选择兼容性为10.x,下一步 1.5 稍后安装系统, 下一步     1.6 设置suse11 64位系统,下一步

    2024年02月08日
    浏览(42)
  • 【正点原子STM32】STM32初体验(Keil MDK工具下载使用、DAP仿真器、MDK上配置DAP、Debug)

    一、MDK5编译例程 二、串口下载程序 2.1、串口下载程序须知 2.2、串口下载硬件连接 2.3、配置下载工具 (ATK-XISP.exe) 2.4、STM32启动模式(M3和M4) 三、DAP下载程序 3.1、DAP下载硬件连接 3.2、在MDK上配置DAP 不同开发板的下载算法有所不同 Build构建 F7、Download下载 F8 四、DAP调试程序 4.

    2024年02月20日
    浏览(57)
  • 【详细】Ubuntu20.04系统安装Airsim仿真器

    目录 一.必要的设置 1.注册一个Epic Games帐户 2.注册一个 Github 账户 3.关联 二.下载UE4 on Linux 方法1:使用GitHub页面上的下载功能 方法2:使用 git(代码行) 1.http 2.git 三.编译UE4 1.进入工程文件夹 2.运行脚本,配置依赖环境 3.运行工程配置脚本 4.编译UE4 5.测试安装 四.下载 Airsim

    2024年01月16日
    浏览(44)
  • 什么是JTAG和SWD接口协议,和各类仿真器

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

    2024年02月13日
    浏览(42)
  • ZOC8 for Mac:超越期待的终端仿真器

    在Mac上,一个优秀的终端仿真器是每位开发者和系统管理员的必备工具。ZOC8,作为一款广受好评的终端仿真器,以其强大的功能和易用性,已经在Mac用户中积累了良好的口碑。本文将为您详细介绍ZOC8的各项特性,以及为什么它会是您Mac上不可或缺的一款软件。 ZOC8的主要特性

    2024年02月07日
    浏览(48)
  • 【技巧】Vivado 仿真器simulation显示模拟波形图(非数字波形)

    ①打开Vivado的任意一个可以运行的工程 ②点击Simulation - Run Behavioral Simulation进行仿真 ③等待运行结束后会弹出如图2所示的数字波形图 ④右键点击需要查看模拟波形的项目,在Waveform Style下选择Analog即可显示出模拟波形 Simulation运行后的结果一般为十六进制的数值,我们可以通

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包