首先大家的条记本须要安装J-link的驱动,该驱动的安装包除了驱动也会安装j-link百口桶,包括且不限于J-link commander/J-fFlash/j- Link RTT等实用工具,往后都会逐一先容。
驱动包可从Segger的官网获取到: https://www.segger.com/downloads/jlink/

安装后通过搜索栏找到J-link commander,并打开它
打开后是类似于Windows终真个窗口,多少是有些B格的。仿真器连接至电脑后输入指令”connect”并回车,则会实行与J-link仿真器连接的动作,因此当无法利用仿真器时,可通过该步骤用来判断是无法连接仿真器还是无法连接芯片。
如果当前显示的芯片不是你想要的目标芯片,那么可以输入”?”并回车来进行芯片的选择,如下图所示:
如下图所示为进入MCU选型界面,在该界面下选择好对应芯片即可。
⚠:选择的芯片旗子暗记会被记录在仿真器中,如果用IDE调试其他芯片提示无法进入仿真,可能就须要到这里进行对应配置修正。
完成选型后则是选择J-link与芯片的通讯办法,若是JTAG则输入“j”,若是SWD则输入”s”, 点击回车键输入指令,成功连接后如下图所示:
完成和芯片的连接后,就可以利用各种风骚的指令了。如果不知道有哪些指令以及指令格式,那么键入”?”并回车后则会输出所有指令及其指令格式。如下图所示
“h”指令(halt)类似于MCU碰着断点停滞运行,并会将停息时候的通用寄存器和状态寄存器等数值一并打印出来。
“g”指令(go),例如下发了”h”指令后想让MCU回答运行,则下发“g”指令即可
“r”指令(Reset),下发该指令后MCU会实行复位动作
常日在仿真环境中,MCU各种信息都可以在IDE上随意查看。可是进入仿真环境可能会造成程序的擦除、复位动作,导致毁坏现场。若是现在返回一个故障件,它的某个功能不正常,那就可以通过j-link直接读取的办法,在不毁坏当前状态的情形下获取到干系寄存器/Flash/RAM中的数值,进行初步的一些故障判断。
mem8 起始地址,读取长度:可打印出从起始地址后指定长度的数据,mem8的话打印数据是按照byte为单位显示,还有mem16和mem32分别是按照半字与字为单位显示。如下则分别展示mem8与mem16的效果,可看出内容是同等的,只是size和大小端不同。
savebin 天生位置与文件名,起始地址,目标长度: savebin指令帮助我们将MCU任意有效地址内的数据予以反读取并天生bin文件。运用处景可以是
(1) 反读当前MCU内的程序,如果将编译信息凑集到了固件中,则可以直不雅观看到固件的版本号/编译日期等,方便定位问题固件版本号。
(2) 反读程序与目标程序进行比拟,查看是否发生了修改。
本次测试利用的指令为 savebin d:/test.bin,0,0x1000,目的是将该MCU地址0开始后0x1000个字节的数据天生名为test.bin的文件存放在D盘中。正常的话读取速率是非常快的,几百K byte的程序基本按了回车键后就完成读取了。
⚠:该指令并不是都能成功,如果MCU处于休眠状态,此时读取的话,会创造可能读取速率很慢,其次反读出来的数据可能还是缺点的,以是利用该方法反读数据须要MCU处于非休眠状态。
loadbin 文件位置与文件名,起始地址:既然可以读取,那对应就有烧录,如果很不幸,你电脑没有原工程,MCU也没有bootloader,那要将一个bin文件烧录进MCU就可以通过该办法。本次利用loadbin d:/test.bin,0 其意思便是将D盘中一个叫test.bin的文件烧录以0为起始地址实行烧录。
⚠:一样平常实行loadbin之前最好先下发“h”指令回车停滞MCU运行,再下发“erase”指令再回车完成片内数据擦除,末了再实行loadbin指令;有一些情形是无法完成bin文件烧录的,例如编程时有锁定flash以保护数据,或者 j-link不支持该MCU,大部分情形下如果能够连接MCU,还是那就能够完成bin文件的直接烧录的。









