tag 标签: jlink

相关博文
  • 热度 3
    2019-5-10 16:04
    27612 次阅读|
    4 个评论
    前言 IAP(In-application-programming),即在应用中编程。当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序。IAP系统的固件一般由两部分组成,即BootLoader Code和Application Code,并存储在不同起始地址的空间里: 系统运行时,先运行Bootloader程序,检测状态,判断是执行应用程序还是升级固件。在实际开发过程中,这两段程序一般是单独编写,然后生成两个Bin文件,为了方便下载程序,可以把两个文件合并为一个文件,这样会节省很多时间。本文将介绍如何使用JFlash来合并两个Bin文件或者两个Hex文件, 准备 要合并的文件1:bootloader.hex,起始地址:0x8000000 要合并的文件2:app.hex,起始地址:0x20001000,如果是Bin文件要先确定起始地址。 JFlash软件 创建工程 和之前下载程序一样,首先要新建一个工程。 1.打开JFlash 2.创建新工程 NewProject 3.选择芯片的型号 这里支持很多ARM Cortex内核的芯片,选择对应的芯片,我这里选择的是STM32F103RE系列。 4.打开要合并的程序文件1:bootloader.hex Open data file,打开bootloader程序。 5.打开要合并的程序文件2:app.hex Merge data file,打开app程序。 要保证,bootloader程序起始地址+bootloader代码大小不超过app程序的起始地址,如下图示意: 6.保存合并后的文件 Save data file as,将合并后的文件另存,可根据需要选择要保存的文件类型。 注意 如果要合并的文件为bin文件,自身不带地址信息,所以会让你指定地址,注意不要互相重叠地址。所以最好各种文件生成的时候就保存为带地址信息的格式,比如hex。关于Hex文件和Bin文件的区别,可以参考文章: BIN、HEX、AXF、ELF文件格式有什么区别 JLink软件的下载 JLink_Windows_V614b软件下载链接: JLink_Windows_V614b.exe(https://wcc-blog.oss-cn-beijing.aliyuncs.com/BlogFile/JLink_Windows_V614b.exe)
  • 热度 3
    2015-12-7 13:09
    722 次阅读|
    3 个评论
    写在最前: 装载请注明出处,谢谢。如果我的博客给您帮助,希望您能点个赞。 照例分享附件资料 1,Jlink的修复工具 2, Jlink的最新版驱动(2015-12) 3,JLink供电图 Jlink是我们经常用到的下载工具,在STM32的开发比较多,可以在线调试也可以直接下载,非常好用,但是由于价格比较高(几十到一百多不等土豪当我没说顺便留个联系方式),所以坏了也比较心疼。 而且Jlink某种程度上也不是很稳定,有时候会突然坏了。   针对这种情况,我分享附件里面有详细的解决方法,在这里我拿出一些做一下解释。 1. 先短接图中 ERASE 处的两个过孔。再使用 USB 线连接 JLINK 与 PC机,以提供 JLINK 工作电源。 (如果此时灯没有灭,则来回插拔 USB口,直至灯灭),灯灭之后,再等大约 5 秒后断开 ERASE 位置的两个过孔的短接。然后拔掉 JLINK 与 P C 间的 USB 线,最后断开图中 ERASE处的短接。 (注意先后顺序,此过程主要是让灯灭,因为灯灭才能说明 旧固件已被擦除)。 2. 先短接图中 TST 处的两个过孔。 再使用 USB 线连接 JLINK 与 PC 机,大约 10 秒多一点后,拔掉 USB 线,停止给 JLINK 供电(说明:请确保此过程中,图中 TST 处一直处于可靠的短接状态)。 最后断开图中 TST 处的短接。 3. 插上 usb 线,这时候系统提示发现新硬件 atm6124......,通过向导自动安装驱动就行了,安装完成后会出现一个安装成功提示向导,同时打开设备管理器的“通用串行总线控制器”,会出现如下所示。然后断开 jlink 与 PC 的连接。   Tip: a, Jlink有两种 如上所示,大家做对比一下。 b,Jlink是可以供电的,不需要外部供电,在图上有标志 c,如果不成功请监测你的系统是不是  XP 或者 32位 系统,Win7 64亲测失败。 d,如果是硬件烧坏问题,大部分换一下电平转换芯片就可以。(这种情况比较少) e,个人经验,坏了然后修复,如此几次后Jlink会变得不稳定。 f,Jlink供电的话确实简便,但是供电能力不足。如果可以的话,还是在外面增加一个独立供电源。如果单独Jlink供电,在电压变动频繁的情况下会影响Jlink的性能 g.在修复Jlink的时候,如果不成功并且没有显示“ 发现新硬件 atm6124......, ” 一直是“unknown device”的话,不妨将earse时间和 tst的时间适当增加,比如earse的时间由5s 增大到10s之类的 切记不能增加的太多 h,纯粹个人经验,以供借鉴。    
  • 热度 3
    2015-10-11 23:41
    2806 次阅读|
    1 个评论
    调试ARM,要遵循 ARM 的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,RDI就是其中的一种,那么我们如何完成RDI--ARM调试协议(JTAG)的转换呢?有以下两种做法: 1.在电脑上写一个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气 物理层上的转换,就像RS232那样的作用)发送你的的目标板。H-JTAG就是这样的。H-JTAG的硬件就仅是一个物理电平的转换接口,所以很简单。 而电脑中装的h-JTAG软件就是前面说到的服务程序,负责协议转换的。 2.做一个板,用此板直接接收来自IAR、KEIL和ADS等软件的调试命令,由此板做RDI-JTAG协议的转换。然后与目标板通信,这就是JLINK的工作原理。 由上可以看出H-JTAG由于是软件作协议转换的,所以速度较慢,但是硬件简单。而第二种方法的JLINK一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。 JTAG的基本原理 JTAG(JointTestActionGroup,联合测试行动组)是一种国际标准测试协议(IEEE1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 JTAG的主要功能有两种,或者说JTAG主要有两大类: 1)一类用于测试芯片的电气特性,检测芯片是否有问题; 2)另一类用于Debug,对各类芯片以及其外围设备进行调试;一个含有JTAGDebug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。本文主要介绍的是Debug功能。 JTAG原理分析 简单地说,JTAG的工作原理可以归结为:在器件内部定义一个TAP(TestAccessPort,测试访问口),通过专用的JTAG测试工具对内部节点进行测试和调试。首先介绍一下边界扫描和TAP的基本概念和内容。 边界扫描 边界扫描(Boundary-Scan)技术的基本思想是在靠近芯片的输入/输出引脚上增加一个移位寄存器单元,也就是边界扫描寄存器(Boundary-ScanRegister)。 当芯片处于调试状态时,边界扫描寄存器可以将芯片和外围的输入/输出隔离开来。通过边界扫描寄存器单元,可以实现对芯片输入/输出信号的观察和控制。对 于芯片的输入引脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去;对于芯片的输出引脚,也可以通过与之相连的边界扫描寄存器“捕 获”该引脚上的输出信号。在正常的运行状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响。这样,边界扫描寄存器提供了一种便捷 的方式用于观测和控制所需调试的芯片。另外,芯片输入/输出引脚上的边界扫描(移位)寄存器单元可以相互连接起来,在芯片的周围形成一个边界扫描链 (Boundary-ScanChain)。边界扫描链可以串行地输入和输出,通过相应的时钟信号和控制信号,就可以方便地观察和控制处在调试状态下的芯 片。 测试访问口TAP TAP(TestAccessPort)是一个通用的端口,通过TAP 可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP控制器(TAPController)来完成的。下面先 分别介绍一下TAP的几个接口信号及其作用。其中,前4个信号在IEEE1149.1标准里是强制要求的。 TCK:时钟信号,为TAP的操作提供了一个独立的、基本的时钟信号。 TMS:模式选择信号,用于控制TAP状态机的转换。 TDI:数据输入信号。 TDO:数据输出信号。 TRST:复位信号,可以用来对TAPController进行复位(初始化)。这个信号接口在IEEE1149.1标准里并不是强制要求的,因为通过TMS也可以对TAPController进行复位。 STCK:时钟返回信号,在IEEE1149.1标准里非强制要求。 简单地说,PC机对目标板的调试就是通过TAP接口完成对相关数据寄存器(DR)和指令寄存器(IR)的访问。 系统上电后,TAPController首先进入Test-LogicReset状态,然后依次进入Run-Test/Idle、Selcct-DR- Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR状态,最后回到Run- Tcst/Idle状态。在此过程中,状态的转移都是通过TCK信号进行驱动(上升沿),通过TMS信号对TAP的状态进行选择转换的。其中,在 Capture-IR状态下,一个特定的逻辑序列被加载到指令寄存器中;在Shift-IR状态下,可以将一条特定的指令送到指令寄存器中;在 Update—IR状态下,刚才输入到指令寄存器中的指令将用来更新指令寄存器。最后,系统又回到Run—Test/Idle状态,指令生效,完成对指令 寄存器的访问。当系统又返回到Run—Test/Idle状态后,根据前面指令寄存器的内容选定所需要的数据寄存器,开始执行对数据寄存器的工作。其基本 原理与指令寄存器的访问完全相同,依次为seIect—DR—Scan、Capture—DR、Shift—D、Exitl一DR、Update—DR, 最后回到Run-Tcst/Idle状态。通过TDl和TDO,就可以将新的数据加载到数据寄存器中。经过一个周期后,就可以捕获数据寄存器中的数据,完 成对与数据寄存器的每个寄存器单元相连的芯片引脚的数据更新,也完成了对数据寄存器的访问。 目前,市场上的JTAG接口有14引脚和20引脚两种。其中,以20引脚为主流标准,但也有少数的目标板采用14引脚。经过简单的信号转换后,可以将它们通用。
  • 热度 2
    2014-3-29 21:30
    1959 次阅读|
    1 个评论
    2014.03.29/ 写          昨天终于准备开始进行 S3C6410 的裸机开发,写好了程序,编译生成了 .axf 文件,一切顺利的准备利用 JLINK 进行在线调试了,突然有种成功就在前面的感觉, Jlink 也能被电脑正常的识别,利用 AXD 进行 Jlink 的相关设置也很正常,也能检测到 CPU ,于是 load image ,进行调试,选择 go ,发现开发板啥反应没有,这是怎么回事呢??          进行单步调试,发现程序可以从启动文件运行到 main 函数,但是到了 main 之后就无法单步执行了,有时会报错 “can not read register 26(R13_SVC)while CPU is running” 之类的错误,反正程序是跑飞了,程序是例程,也特别的简单,不至于跑飞的,上网查找,发现提出此类问题的还蛮多的,有些有回答,大部分归于沉寂,终于从中汲取了可能跟 JLINK 盗版有关,需要重新烧写下固件。那下面就整理下如何烧写 JLINK 固件的步骤吧。 (这说明, JLINK 固件如果出现问题,不单单是以前我们熟知的 PC 提示无法识别的 USB 设备, JLINK 的灯不亮,也有可能是 JLINK 突然不能单步调试,调试程序跑飞等情况,此时灯仍然亮着,这种情况更容易浪费发现问题的时间)   A :准备所需的软件和固件,包括:          a : Install AT91-ISP v1.13.exe—— 下载 J-LINK V8 固件的工具软件          b : J-LINK v8.bin——J-LINK V8 的固件          c : Setup_JLinkARM_v422g.exe——JLINK V8 的驱动   B :安装 Install AT91-ISP v1.13.exe 软件,生成了两个图标 sam-ba v2.9 和 SAM-PROG V2.4. ( WINXP 电脑, WIN7 可能不行),其次安装好 Setup_JLinkARM_v422g.exe 这个 JLINK 驱动程序。   C :擦除芯片并使其进入编程模式   如图,有 AB 两个红框, A 为 ERASE 跳线, B 为 RESET 跳线(不同 JLINK 位置可能不同)          a :用 USB 线连接 JLINK 与 PC ,提供电源;          b :短接 A 处两过孔, 25s 以上,然后断开短接;          c :断开 JLINK 与 PC 之间的 USB 连接;          d :短接 B 处两过孔;          e :用 USB 线连接 JLINK 与 PC ,提供电源, 20s 以上,然后断开电源;          f :断开 B 处的短接。(顺序不能乱)   D :更新固件          a :运行 SAM-PROG v2.4 烧录软件,并进行如下设置:            b :用 USB 线将 JLINK 与 PC 相连。此时需要注意的是, 如果电脑初次烧固件,一般会提示你发现新硬件,是否安装驱动,此时一定要安装驱动 ,直接点击本机自动查找就行,安装成功会如下图所示,否则软件中的 write flash 仍然无效。一切顺利的话,此时 write flash 变为有效, active connection 也变为 1 。这一步的安装驱动很重要。            c :点击 write flash ,烧录固件,待烧录完成后 ,Active Connection :将变为 1 。          d :拔掉 USB 线,此时固件更新完毕。   E :自动更新固件          在电脑开始菜单中找到 SEGGER-J-Link ARM V4.34-J-Link Commander 并打开,如果你前面的操作正确,这里首先会提示你更新固件,这里我直接按的是,自动更新固件。 (对于这一步,有的同学说需要先按否,不更新固件,然后输入命令 Exec SetSN=20140328 ,后面的为目前的时间,这样可以覆盖掉固件上次的时间,然后重新运行 J-Link Commander, 此时按同意更新固件。我这样做了,但是提示“无法覆盖掉原来的 SN ”,至于 why, 没有深入研究) (还有同学提出,重新烧写固件到 Jlink ,将原来 V8.bin 固件用 Winhex 打开,并找到偏移地址为 0xff00 为首地址 4bytes 修改为其他值,只要不为原来的 11111117 或 805306163 即可,因为更新后的固件对这两个固件 SN 进行了强制校验,修改为其他值即可完美解决问题 , 同时将 0xff30 后面的 GDBFull 对应改成 GDBFULL ,对应 ASCII 码为 47 44 42 46 55 4C 4C ,目的是跳过 GDBFull 检查。我也用 winhex 看了下,发现好像下载的最新版的 2012 固件的 bin 文件里面已经符合此要求,不需要改了) F :成功的现象 ——JLINK 指示灯先闪烁,然后变为常绿。 (有人说, JLINK 固件经常容易掉链子,因此我们需要做好长期与之斗争的准备) 转载请注明出处
  • 热度 2
    2013-8-17 07:48
    1185 次阅读|
    2 个评论
    文章是对LPC2148而写的,但是对三星的44B0芯片同样适用,只需要在选择时将相应的CPU选择的S3C44B0就可以了。 JLINK在ADS下调试心得 前两天一个客户用jlink在ADS下调试LPC2148总报错,这个错误我之前在调试LPC2200的时候也碰到过,后来问题解决了,和大家分享一下。 1、在AXD下添加JLINK 选择Options下面的ConfigTarget,如下图所示: 单击Add按钮,添加jlinkRDI.dll(确保你已经安装了segger公司提供的驱动程序,本说明安装的为3.80a),如下图所示: 添加完成后,如下图所示: 【 分页导航 】 第1页:在AXD下添加JLINK 第2页:配置JLINK 第3页:调试 《电子技术设计》网站版权所有,谢绝转载 2、配置JLINK 接上面,添加完成后,点击Configure,出现JLINK设置对话框,我们这里主要是选择我们要调试的处理器,如下图所示: 选择完成后,点击确定完成设置。 如果JLINK已经和开发板连接好,并上电后,log信息里面会出现JLINK连接处理器的信息,如下图所示: 【 分页导航 】 第1页:在AXD下添加JLINK 第2页:配置JLINK 第3页:调试 《电子技术设计》网站版权所有,谢绝转载 3、调试 添加JLINK并配置完成后,即可开始调试。 开始调试后,一旦我们单步或者设置断点调试,我们会碰到这样的问题,如下图所示: 结果无法调试,要解决这个问题,我们需要修改下ADS的设置,选择Options下面的ConfigureProcessor,如下图所示: 出现如下所示对话框: 将Semihosting前面的勾去掉即可解决问题,如下图所示: 点击OK,退出AXD,重新Debug,这次就可以任意单步或者设置断点了。 【 分页导航 】 第1页:在AXD下添加JLINK 第2页:配置JLINK 第3页:调试 《电子技术设计》网站版权所有,谢绝转载
相关资源
  • 所需E币: 5
    时间: 2020-1-4 11:58
    大小: 758KB
    上传者: wsu_w_hotmail.com
    关于用JLINK调试博创UP-TECH2410板子目标板自动重启的问题的解决方法。大概一个月前,我在IAR6.1上建了一个S3C2410的工程,我这边有两种板子,一块优龙FS2410板子,两块博创UP-TECH2410的板子,对应的也有两种调试器,优龙的使用的是DragonJtag,一端跟电脑的并口相连接,一端连接板子的JTAG接口,优龙的板子是标准的20针JTAG接口,编译环境是ADS1.2,调试的时候还有AXD,你懂的,蛮老了,现在ADS好像是被KEIL收购了吧,博创的板子是标准的14针的JTAG接口,这两种板子的历史有点久远,我当初学习使用的是优龙的板子,由于实际情况需要就翻出了两块博创的板子,也是师兄以前做项目的时候使用了的,我这边有ADS1.2下建立的工程,用dragonjtag调试,在优龙的板子上没有问题,由于博创的板子是14针的JTAG接口,我在盒子里边找到一个20针转14针的JTAG转接板,使用转接板,使用dragonjtag在博创的板子上下载调试也正常,当初也就是想检测下板子还是不是好的,毕竟放了这么久,检查完后就放在一边了,扯的有点远,IAR上建立的过程编译后,使用JLINKV8(以前基本没有使用过JLINK和IAR),调试器下载,在优龙的板子上可以正常下载,也可以正常DEBUG,总之在优龙的板子上everythingisOK,大概是一个星期前吧,我就想用JLINK把IAR上的程序下载到博创的板子上去,因为JLINK的JTAG接口也是20针的,中间只能使用转接板,就在这时,问题出现了,我一点这个下载关于用JLINK调试博创UP-TECH2410板子目标板自动重启的问题的解决方法问题是这样的大概一个月前,我在IAR6.1上建了一个S3C2410的工程,我这边有两种板子,一块优龙FS2410板子,两块博创UP-TECH2410的板子,对应的也有两种调试器,优龙的使用的是DragonJtag,一端跟电脑的并口相连接,一端连接板子的JTAG接口,优龙的板子是标准的20针JTAG接口,编译环境是ADS1.2,调试的时候还有AXD,你懂的,蛮老了,现在ADS好像是被KEIL收购了吧,博创的板子是标准的14针的JTAG接口,这两种板子的历史有点久远,我当初学习使用的是优龙的板子,由于实际情况需要就翻出了两块博创的板子,也是师兄以前做项目的时候使用了的,我这边有ADS1.2下建立的工程,用dragonjtag调试,在优龙的板子上没有问题,由于博创的板子是14针的JTAG接口,我在盒子里边找到一个20针转14针的JTAG转接板,使用转接板,使用dragonjtag在博创的板子上下载调试也正常,当初也就是想检测下板子还是不是好的,毕竟放了这么久,检查完后就放在一边了,扯的有点远,IAR上建立的过程编译后,使用JLINKV8(以前基本没有使用过JLINK和IAR),调试器下载,在优龙的板子上可以正常下载,也可以正常DEBUG,总之在优龙的板子上everythingisOK,大概是一个星期前吧,我就想用JLINK把IAR上的程序下载到博创的板子上去,因为JLINK的JTAG接口也是20针的,中间只能使用转接板,就在这时,问题出现了,我一点这个下载[pic]博创的板子竟然会自动重启,我开始以为是偶然现象,结果发现每次都这样,下载时弹出的log如下:[pic],后来我就对比看用JLIN……
  • 所需E币: 3
    时间: 2019-12-25 03:28
    大小: 933.05KB
    上传者: 978461154_qq
    JLINKV8电路图,可以对照自己制作JLINK1234……
  • 所需E币: 3
    时间: 2020-1-9 13:49
    大小: 772.57KB
    上传者: 2iot
    野火STM32之JLINK驱动安装与MDK环境搭建0、友情提示《零死角玩转STM32》系列教程由初级篇、中级篇、高级篇、系统篇、四个部分组成,根据野火STM32开发板旧版教程升级而来,且经过重新深入编写,重新排版,更适合初学者,步步为营,从入门到精通,从裸奔到系统,让您零死角玩转STM32。M3的世界,与野火同行,乐意惬无边。另外,野火团队历时一年精心打造的《STM32库开发实战指南》将于今年10月份由机械工业出版社出版,该书的排版更适于纸质书本阅读以及更有利于查阅资料。内容上会给你带来更多的惊喜。是一本学习STM32必备的工具书。敬请期待!野火淘宝店:http://firestm32.taobao.com(点我)-第2页-2、JLINK驱动安装与MDK环境搭建2.1JLINK驱动安装在用JLINK下载和调试程序之前,我们需要线在电脑上安装JLINK驱动,如果电脑上已经安装JLINK驱动,则可跳过这一步。在野火M3光盘目录下:3-安装软件\1-JLINKV8驱动点击Setup_JLinkARM_V428c.exe,完成JLINK驱动的安装。安装过程非常简单,这里将跳过。在安装完成后,我们将JLINK插接到电脑的USB口,即可在我的电脑\管理\设备管理器\通用串行总线控制器中看到一个J-Linkdriver。要注意的是在安装完JLINK驱动后,一定要将JLINK插接到电脑的USB口,否则在电脑的设备管理器中是查看不到J-Linkdriver的。当你把JLINK拔出电脑的USB口时候,J……
  • 所需E币: 4
    时间: 2019-12-24 00:51
    大小: 771.08KB
    上传者: 微风DS
    零死角玩转stm32-初级篇2、JLINK驱动安装与MDK环境搭建0、友情提示《零死角玩转STM32》系列教程由初级篇、中级篇、高级篇、系统篇、四个部分组成,根据野火STM32开发板旧版教程升级而来,且经过重新深入编写,重新排版,更适合初学者,步步为营,从入门到精通,从裸奔到系统,让您零死角玩转STM32。M3的世界,与野火同行,乐意惬无边。另外,野火团队历时一年精心打造的《STM32库开发实战指南》将于今年10月份由机械工业出版社出版,该书的排版更适于纸质书本阅读以及更有利于查阅资料。内容上会给你带来更多的惊喜。是一本学习STM32必备的工具书。敬请期待!-第2页-2、JLINK驱动安装与MDK环境搭建2.1JLINK驱动安装在用JLINK下载和调试程序之前,我们需要线在电脑上安装JLINK驱动,如果电脑上已经安装JLINK驱动,则可跳过这一步。在野火M3光盘目录下:3-安装软件\1-JLINKV8驱动点击Setup_JLinkARM_V428c.exe,完成JLINK驱动的安装。安装过程非常简单,这里将跳过。在安装完成后,我们将JLINK插接到电脑的USB口,即可在我的电脑\管理\设备管理器\通用串行总线控制器中看到一个J-Linkdriver。要注意的是在安装完JLINK驱动后,一定要将JLINK插接到电脑的USB口,否则在电脑的设备管理器中是查看不到J-Linkdriver的。当你把JLINK拔出电脑的USB口时候,J-Linkdriver就会消失。2.……
  • 所需E币: 5
    时间: 2019-9-11 20:59
    大小: 19.66MB
    上传者: 张老师525
    Jlink驱动,适用于各种开发板。
广告