01、WHY

为什么要使用到J-LinkCommander呢???大部分情况下,我们使用J-link都是在IDE中debug使用的,出现问题,直接debug复现然后解决。这是最常见的开发方式。

但是有些情况我们不能使用IDE直接debug,比如发布版本(JTAG或SWD接口可以正常使用),大批量生产时发现几片异常的板子,重新debug问题就消失了。

这个时候使用IDE直接debug已经不能解决问题,我们需要使用J-LinkCommander读取关键寄存器的值来协助我们定位排查问题。

02、Jlinkcmd使用

Jlinkcmd它可以方便用户在非仿真的情况下,hold内核、单步、全速、设置断点、查看内核和外设寄存器、读取flash代码等等,方便大家拥有最高的权限查看在运行中的MCU情况,查找非IDE仿真情况下,MCU运行异常的原因。

打开Jlinkcmd,如果单独安装了jlink驱动,我们可以在开始菜单找到Jlinkcmd。

或者在安装目录中找到它

如果你们有独立安装Jlink驱动,同样也可以在Keil的安装目录中找到它

首先使用Jlink连接好MCU,打开软件“Jlink.exe

按照提示输入相应信息connect->?->s->回车(旧版只需要输入usb即可连接目标芯片

正确的链接目标芯片后:

如上图所示,选项字节里为"5AA5"即为无保护状态。

Jlinkcommand常用命令简介:

mem 读内存

mem8 读8字节内存

mem16 读16字节内存

mem32 读32字节内存

w1 写8字节内存

w2 写16字节内存

w4 写32字节内存

h 停止cpu运行的程序

setbp 设置断点

g 跳到代码段地址执行

s 单步执行(调试用)

r 复位

03、实测

接下来就是实测环节,我们通过一个真实的例子演示一下Jlinkcmd的使用。在之前文章《STM32延时函数的四种方法》中有以下代码

void delay_ms(uint16_t nms)
{uint32_t temp;SysTick->LOAD = RCC_Clocks.HCLK_Frequency/1000/8*nms;SysTick->VAL=0X00;//清空计数器SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源do{temp=SysTick->CTRL;//读取当前倒计数值}while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达SysTick->CTRL=0x00; //关闭计数器SysTick->VAL =0X00; //清空计数器
}

调用示例

  while (1){GPIO_SetBits(GPIOE,GPIO_Pin_4);  //熄灭LED灯                     delay_ms(500);//延时500msGPIO_ResetBits(GPIOE,GPIO_Pin_4);//点亮LED灯                     delay_ms(500);//延时500ms}

可以按照芯片用户手册直接推算地址。或者如下面这样,写段测试代码。

从上图得知,SysTick->LOAD寄存器的地址是0XE000E014,写入寄存器的值是0X007270E0。

按照上述方案读取寄存器的值,步骤如下:

可以看到地址0XE000E014的SysTick->LOAD寄存器的值为0X7270E0。

04、后记

这里只是提供了一个简单的演示,可以非IDE仿真情况下,读取寄存器,协助排查MCU运行异常的原因,毕竟如果直接debug就能查到问题,熟悉32系列单片机的毕业生都可以做到。

我们需要在工作中积累这样类似的经验,巧妙使用工具处理一些“诡异”的问题,积累开发经验。

毕竟,填坑力就是核心竞争力。

点击查看本文所在的专辑,STM32F207教程

关注公众号,第一时间收到文章更新

J-Link cmd的使用相关推荐

  1. [学习笔记]Windows CMD/bat

    基础知识 命令帮助的符号解释 Notation Description Text without brackets or braces 必须要输入的命令 <Text inside angle b ...

  2. Windows cmd常用命令行命令

    Windows常用命令行命令 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注: ...

  3. OS + windows command / cmd / dos / Cygwin / UnxUtils / miniGW / powershell

    DOS 命令帮助文档 command line shell 用好windows的快捷键 http://www.pcfree.cn/cn/service/OS/windows/2004/09/04/ar ...

  4. 【windows命令】--cmd常用命令

    打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd ...

  5. windows命令提示符cmd常用命令

    首先,打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... { 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后 ...

  6. Windows cmd(DOS)命令窗口中echo命令ANSI转义显示彩色字或背景

    2019独角兽企业重金招聘Python工程师标准>>> 前言 3个星期的周末了解LINUX下.WINDOWS下的ANSI颜色转义控制,LINUX下根据网上的搜索结果一下就成功了,但W ...

  7. c2000 汇编语言指令,C2000系CMD文件的配置理解

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?注册 x 推荐CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件,其中比 ...

  8. java link_Java Link类代码示例

    import org.nodes.Link; //导入依赖的package包/类 public static double sizeBetaCopying(DGraph graph, DGraph s ...

  9. CCS中的cmd命令文件

    CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件,其中比较关键的就是MEMORY和SECTIONS两个伪指令的使用,常常令人困惑,系统出现的问题也经常与它们的不当使用有关 ...

  10. mlink /j 当文件已存在时,无法创建该文件。

    也是试错,没搞对路径顺序,算是踩坑了,不需要管理员 语法 > mklink 创建符号链接.MKLINK [[/D] | [/H] | [/J]] Link Target/D 创建目录符号链接.默 ...

最新文章

  1. 不断前行的SD-WAN如何使现代企业受益—Vecloud微云
  2. element-ui + redis + mongo + nuxt
  3. 改变eclipse工程中代码的层次结构
  4. 深度学习(15)TensorFlow高阶操作四: 填充与复制
  5. mysql 手动配置服务器_Win7系统下手动配置Apache+PHP+MySQL环境WEB服务器 -电脑资料...
  6. mysql内置时间函数大全_MySQL 的时间函数 大全
  7. eclipse设置系统字体
  8. 手势控制鼠标(源码)
  9. 计算方法 6.插值法
  10. 计算机加硬盘后速度变慢,硬盘速度变慢怎么办 硬盘速度慢解决方法步骤介绍【详解】...
  11. 初学者学习哪种编程语言比较适合呢?
  12. 如何连接局域网_Minecraft我的世界局域网联机问题(windows平台)
  13. Pytest+Unittest+Git+Jenkins企业级CICD自动化测试平台建设方案
  14. 残差网络ResNet到ResNeXt解读,最强ResNeXt预训练模型已开源及如何使用
  15. jdbc连接MysQL数据库时报错:The server time zone value ‘ ‘ is unrecognized or represents more than
  16. Excel全自动项目管理甘特图
  17. EVE桥接网卡和加载镜像
  18. 5.1 数据去重 完全去重
  19. 输出2+22+222+2222类型问题(笔记)
  20. 点清垃圾渗滤液脱色剂的现场应用和数据

热门文章

  1. 相机下载_佳能相机如何连接手机传输相片,视频?
  2. window环境读linux文件,Windows本地环境和Linux腾讯云服务器之间传输文件的方法
  3. linux文件夹做链接,linux为什么不能给目录做硬链接
  4. HuggingFace学习1:tokenizer学习与将文本编码为固定长度(pytorch)
  5. docker 删除镜像时报错Error response from daemon: conflict: unable to delete xxx (must be forced) -
  6. java文件上传控件_java实现大文件上传控件
  7. c2java Greedy 之任务调度
  8. SQL学习--Select(一)TOP、派生表、连接、谓词
  9. smarty模板基础知识
  10. php 租房子(练习题)