国嵌不用jlink那使用什么下载逻辑程序并单步调试的?& h-jtag原理,和jlink区别 & jlink为什么这么贵。
2013-12-26 22:55
876 查看
这篇文章解决了三个问题:
1.我记得以前用国嵌的板子,没用jlink,没米,就没买,但是也能调试板子,能单步调试,能看arm里寄存器的值,也能烧写flash。那用什么下程序的呢?
公司的是用串口下到ram,但是不能单步调试。
用jlink当然单步调试,烧写flash都能做到。jlink调试板就是做rdi->jtag协议的转换的,看下面2. h-jtag就是jlink的pc软件版本。所以可以当一个东西。都是做协议转换。
国嵌用的是h-jtag。一端是并口,一端是连板子的jtag口。
来看h-jtag是什么?
H-JTAG支持ARM公司的RDI接口。通过RDI接口,H-JTAG能够支持大多数主流的ARM调试软件。
调试的结构如图1-2所示。(首先h-jtag是个软件,RDI接口是这个h-jtag软件的接口,就是api)
调试软件(AXD/RVDS/IAR/KEIL)通过RDI接口与H-JTAG SERVER进行交互。H-JTAG SERVER(就是指h-jtag这个软件)
通过并口/USB连接JTAG仿真器(所以除了国嵌的并口,还可以是usb口)。H-JTAG提供了灵活的JTAG接口设置,同时支持并口及USB接口仿真
器。通过设置,H-JTAG可以支持不同类型的JTAG调试板,例如流行的WIGGLER,SDT-JTAG,用户也
可以根据自己的需要使用自定义的JTAG调试板。
(这里上图有个jtag仿真器,但是根据下面问题2的回答,h-jtag硬件部分就是个电平转换接口,而且国嵌的h-jtag硬件部分也就是一个并口连接一个jtag口,没什么仿真器)
除了调试,用户还可以通过H-FLASHER将程序和数据烧写/下载到FLASH芯片中去。目前,
H-FLASHER支持的常见的片内和片外FLASH芯片。随着软件的更新和升级,H-FLASHER支持的芯片类
型也会不断的增加。在执行FLASH烧写时,H-FLASHER与H-JTAG SERVER的连接如下图所示:
2.那h-jtag和jlink是什么区别呢?
1.我记得以前用国嵌的板子,没用jlink,没米,就没买,但是也能调试板子,能单步调试,能看arm里寄存器的值,也能烧写flash。那用什么下程序的呢?
公司的是用串口下到ram,但是不能单步调试。
用jlink当然单步调试,烧写flash都能做到。jlink调试板就是做rdi->jtag协议的转换的,看下面2. h-jtag就是jlink的pc软件版本。所以可以当一个东西。都是做协议转换。
国嵌用的是h-jtag。一端是并口,一端是连板子的jtag口。
来看h-jtag是什么?
H-JTAG支持ARM公司的RDI接口。通过RDI接口,H-JTAG能够支持大多数主流的ARM调试软件。
调试的结构如图1-2所示。(首先h-jtag是个软件,RDI接口是这个h-jtag软件的接口,就是api)
调试软件(AXD/RVDS/IAR/KEIL)通过RDI接口与H-JTAG SERVER进行交互。H-JTAG SERVER(就是指h-jtag这个软件)
通过并口/USB连接JTAG仿真器(所以除了国嵌的并口,还可以是usb口)。H-JTAG提供了灵活的JTAG接口设置,同时支持并口及USB接口仿真
器。通过设置,H-JTAG可以支持不同类型的JTAG调试板,例如流行的WIGGLER,SDT-JTAG,用户也
可以根据自己的需要使用自定义的JTAG调试板。
(这里上图有个jtag仿真器,但是根据下面问题2的回答,h-jtag硬件部分就是个电平转换接口,而且国嵌的h-jtag硬件部分也就是一个并口连接一个jtag口,没什么仿真器)
除了调试,用户还可以通过H-FLASHER将程序和数据烧写/下载到FLASH芯片中去。目前,
H-FLASHER支持的常见的片内和片外FLASH芯片。随着软件的更新和升级,H-FLASHER支持的芯片类
型也会不断的增加。在执行FLASH烧写时,H-FLASHER与H-JTAG SERVER的连接如下图所示:
2.那h-jtag和jlink是什么区别呢?
调试arm,总要遵循arm的调试接口协议吧,jtag就是其中的一种吧。当仿真时,iar,keil,ads等等都有一个公共的调试接口,RDI就是其中的一咱吧, 那么我们如何完成RDI-->arm调试协议(JTAG)的转换呢? 如是乎就有两种做法: 1. 在电脑上写一个服务程序,把keil,ads,iar中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换,就像RS232那样的作用)发送你的的目标板。 h-jtag就是这样的。 h-jtag的硬件就仅是一个物理电平的转换接口,所以很简单。而电脑中装的h-jtag软件就是前面说到的服务程序,负责协议转换的。 2。另一种做法,就是做一个板,用此板直接接收来自keil,ads,iar等软件的调试命令,由此板做rdi->jtag协议的转换。然后与目标板通信,这就是jlink的工作原理。 由上可以看出 h-jtag由于是软件作协议转换的,所以速度较慢,但是硬件简单。而第二种方法的jlink一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快 。
3.jlink为什么这么贵,上面问题2里可以看出来,jlink带了个cpu,原来如此。。
相关文章推荐
- stm32实用技巧:JLINK接口定义和使用JTAG或SW下载程序
- JLINK和ADS1.2配合调试下载程序,及JTAG不能识别CPU核解决办法
- 图解Stm32使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法!
- 关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
- 图解Stm32使用jlink下载程序时jtag接口(SW和JTAG模式)的简化方法
- 什么是线程?它与进程的区别?为什么要使用多线程?
- Linxu环境下使用Eclipse直接调试mapreduce程序(不用插件)
- 不用单步调试,也可以查看程序日志
- 守护进程与用&结尾的后台运行程序有什么区别
- 对于String对象,可以使用"="赋值,也可以使用"new"关键字赋值,两种方式有什么区别?
- 机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?
- 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
- 在R语言中,使用“=”和“<-”到底有什么不同? 就是等号和箭头号有什么区别,是完全一样还是局部不同?
- (整理)在MDK下使用JLINK下载和调试LPC2478的问题(MDK)(JLINK)(LPC24)
- 在for循环中,为什么c++程序员习惯于使用!=而不用<
- 简易JTAG调试小板与JLINK和OpenJTAG的区别 上海嵌入式家园-开发板代理商城 贺工
- 什么是线程?它与进程有什么区别?为什么要使用多线程
- JDK动态代理干了什么事情?为什么我的事务会不起效?spring的事务到底应该怎么使用?原理是什么?
- Keil STM32调试,使用ST-Link下载程序时提示“flash timeout.reset the target and try it again”
- Ubuntu14.04下安装 Jlink 往S3C2440 开发板下载程序过程的 安装、使用