jlink,usb-blaster, dstream这些适配器的为什么称为“仿真器”?

papaofdoudou
人工智能领域新星创作者
博客专家认证
2017-02-05 10:14:54
最近在搞一个基于OpenOCD和jlink的调试环境调试某款平台,忽然想到一个之前一直忽略的问题, 期望大神帮忙解答。

通常嵌入式平台调试开发都会使用仿真器(ice)或者调试器来完成, 比如jlink, usb-blaster, openjtag, dstream,等等,本人也用过

一些, 软件开发中可以用来烧写固件,GDB调试,获取目标平台CPU寄存器,IO状态等等。 所用到的基本上可以成为 “调试器”的

功能,或者称呼ice(in circult emulation)也可以理解. 但是对于另外一种称呼"仿真器“ 似乎不太明白, 如果以“模拟目标CPU的状

态” 来解释,一般例如jlink完成的是调试协议的转换,讲gdb或者openOCD的命令转换为底层的jtag数据包, 何来仿真目标CPU?

调试时需要jlink通过jtag口链接目标板, 实际的逻辑是在开发板上跑的,jlink脱离不了目标板独立运行,“”仿真“”的依据在哪里?

而且这类调试器一般内部是CPLC或者FPGA等器件, 起到USB协议转串行协议的作用,哪里可以 “仿真” 目标CPU?

大家可以看某宝上卖clone jlink的, 很多地方解释仿真器, 指的是仿真目标CPU, 很多专业的书籍里面也称呼是“仿真器”而不是 “下载器” 所以这里想辩个究竟。
...全文
856 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanredfish 2017-02-09
  • 打赏
  • 举报
回复
对于你的开发环境来说的名字。 对于开发环境来说,程序编写完成后,要看到执行效果,并跟踪行为,需要对代码进行执行,这个可调试的执行环境叫做仿真环境,仿真器是和目标CPU一起,为你的IDE提供一个能够执行该指令集的可调试环境,所以叫做硬件仿真器,而你的板卡+仿真器合在一起,就是你程序调试的硬件仿真环境了。
fly 100% 2017-02-07
  • 打赏
  • 举报
回复
谁说jlink usb-blaster 是仿真器的 直接呼他,仿真器是直接可以在上面跑程序的。
fuchouzhe 2017-02-06
  • 打赏
  • 举报
回复
注意仿真器、下载器、模拟器的区别 简单说说,不是严格的定义,实际上也没有严格定义 仿真器,在计算机领域比较混乱,目前主要指和处理器内核内置接口通信,用于调试的硬件。通常需要主机和宿主机组成系统。通常也可以用于下载程序。 下载器,只能下载,比如早期的atmel的51单片机通过ISP下载程序,但不能调试程序。 模拟器,模拟一个处理器(不一定是本机所属的处理器体系)执行指令的程序,比如在x86上用c语言写的arm模拟程序。实际上这种东西推而广之就是虚拟机,Android本质就是虚拟机。 keil下可以使用模拟器,也可以使用仿真器,由于界面统一,所以初学者会提出疑问。

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧