转自http://maker.zlgmcu.com/portal.php?mod=view&aid=3685

J-Link Commander作为J-Link驱动软件包的一个工具之一,为工程师的MCU调试工作提供了很好很强大的功能,善加利用能帮我们解决大问题,本文将介绍一下J-Link Commander的一些经典用例。

1

妙用1:检测目标芯片

拿到一块新的MCU开发板,一般情况下,有经验的工程师马上会为开发板供电,并将开发板通过JTAG(或SWD)接口连接至J-Link。然后打开J-Link Commander工具,若检测到下面图片所示的信息:目标板电压;目标芯片ID;目标芯片内核,则说明开发板基本能正常工作且能通过J-Link 调试。

若检测到的目标板电压为0V那么就要确认目标板供电是否正常;

若测到的目标板电压为3.3V左右,但还是无法检测到目标芯片,那么通常都是JTAG(或SWD)线缆没有接好,或者MCU的JTAG(或SWD)相关引脚被MCU里面的程序禁用了,这时候就需要检查线缆或者擦除MCU里面的程序了。

除了打开J-Link Commander的时候会自动检测目标芯片,在J-Link Commander里面输入命令“usb”也会执行目标芯片的检测。

2

妙用2:暂停内核,获取内核通用寄存器信息

大多数工程师都碰到过程序跑飞或进入HardFault的情况,但苦于没有好的方法来定位程序跑飞的位置。

今天教大家一个妙招:当MCU里面的程序跑飞的时候,不要断电,将MCU连接到J-Link,打开J-Link Commander,并输入命令“halt”。这样,就能暂停内核,获取内核通用寄存器信息。

有了PC指针和SP指针的内容,就能很方便的定位到程序在哪里死掉了,或者程序在进入HardFault之前执行了什么指令。这个方法是不是对定位程序问题很有用啊!

3

妙用3:丰富的命令,强大的功能

J-Link Commander的强大之处远不止于此,想要使用更多功能,只需在J-Link Commander里面输入“?”就能够获取所有能使用的指令,如:

—— Firmware info用来查看Jlink的硬件版本;

——halt用来停止MCU内核,可以查看内核的PC指针等特殊寄存器;

——go用来激活被halt的内核;

Sleep ——Waits the given time (in milliseconds). Syntax: Sleep <delay>用来延时;

——Single step the target chip单步调试代码,可以先执行halt,然后再来单步调试;

st ——Show hardware status显示Jlink当前状态;

hwinfo ——Show hardware info显示Jlink 的硬件信息。

J-Link Commander是不是很好很强大呀!工程师们可以凭借自己的兴趣与能力深入挖掘J-Link Commander的各种功能。

[转]J-Link Commander的妙用的更多相关文章

  1. 一个文件夹可以link 到另外一个文件夹

    Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target /D      Creates a directory symboli ...

  2. 牛客多校第四场 J Free 最短路

    题意: 求最短路,但是你有k次机会可以把路径中某条边的长度变为0. 题解: 跑k+1次迪杰斯特拉,设想有k+1组dis数组和优先队列,第k组就意味着删去k条边的情况,每次松弛操作,松弛的两点i,j和距 ...

  3. 玩转WIN7的MKLINK

    引言: 换了新电脑,终于再次使用上啦WIN7 ,经过一个周每天重装N次系统,终于弄好一个像样的系统啦.由于使用rt7lite对WIN7SP1官方整合包进行了适当精简,所以最终系统的稳定性还得经过一段时 ...

  4. 【纪中集训】2019.08.10【NOIP提高组】模拟 A 组TJ

    T1 Description Solution 有待填坑-- T2 Description 给定一个\(h(≤10)\)层.\(n(≤10)\)行.\(m(≤10)\)列的由泥土组成的立方体,挖开\( ...

  5. [JZOJ1900] 【2010集训队出题】矩阵

    题目 题目大意 题目化简一下,就变成: 构造一个\(01\)数列\(A\),使得\(D=\sum A_iA_jB_{i,j}-\sum A_iC_i\)最大. 问这个最大的\(D\)是多少. 正解 其 ...

  6. windows7命令帮助大全

    有关某个命令的详细信息,请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联.ATTRIB 显示或更改文件属性.BREAK 设置或清除扩展式 CTRL+C 检查.BCDEDIT 设置启动数据库 ...

  7. [转]Windows7文件夹转移清理臃肿的C盘

    当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹(xp下是Documents and Settings文件夹,而windows7和vista ...

  8. SharePoint 快捷获取列表栏内部名称

    在列表设置页面点击浏览器书签获取列表字段内部名称,使用效果如下图: 如何使用: 修改浏览器上任意书签的url地址为以下代码,注意:代码中不能有换行符 javascript:(function(){va ...

  9. bzoj1189

    1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2321  Solved: 724[Submi ...

随机推荐

  1. C++进阶--类的继承

    //############################################################################ /* * 公有,保护,私有继承 */ cl ...

  2. What does "exceeded limit of maxWarmingSearchers=X" mean?

    Whenever a commit happens in Solr, a new "searcher" (with new caches) is opened, "war ...

  3. Ubuntu 14.10 下HBase错误集

    1 如果机群时间不同步,那么启动子节点RegionServer就会出问题 aused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException ...

  4. Redis单线程单进程为什么效率那么高

    1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速.数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1): 2.数据结构简单,对数据操作也简单,Red ...

  5. grep简单用法

    grep 常用参数: -c: 打印符合要求的行数 -i :忽略大小写 -n:输出行和行号 -v:打印不符合要求的行,即反选 -A:后跟数字(有无空格都可以),例如-A2 表示打印筛选行及前2行 -B: ...

  6. Python中循环引用(import)失败的解决方法

    原文链接:http://blog.ihuxu.com/the-solution-to-the-problem-of-circular-import-in-python/ 我是采用方案三 "将 ...

  7. Toast--报错

    Toast的makeText()方法报错帖上一代码,用Toast来简单处理回调机制.但是Toast的makeText()方法老报错:import android.content.Context;imp ...

  8. view之Scroller工具类和GestureDetector的简单用法

    转载:http://ipjmc.iteye.com/blog/1615828 Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View ...

  9. bootstraptable学习(1)数据展示

    最近工作用到bootstraptable,并且一些功能需要很了解这个插件,那么我们便来看看这个东西 1.css与js的引入,顺序肯定是有讲究的,在这里不细说了 2.数据的引入与呈现,我们来看一下官网的 ...

  10. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...