作者proach ( )
看板Electronics
标题Re: [问题] 请问仿真器是做甚麽的?
时间Wed Aug 28 21:10:08 2013
※ 引述《larkes (larkes)》之铭言:
: 不好意思可以请教一个非常基本的问题吗?
: processor-----------ICE---------------PC
: ICE的运作原理是不是这样子呢?
: user先用PC把程式载入到ICE里面,
: 然後porcessor就开始操纵ICE里面的程式.
: 谢谢指教..
: ※ 引述《Deltaguita (贝纳颂)》之铭言:
: : 请教一下各位前辈
: : 小弟常常在卖场看到各种8051 Keil 仿真器 模拟器 仿真晶片
: : 请问这些器材是做甚麽用的?
: : 再开发产品的时候 可以有甚麽帮助?
一般来说,现在的 FPGA/MCU 都会提供 JTAG interface, 或是很类似的
技术,去干预晶片的运作,例如将 clock停下来,存取记忆体之类的。
通常我们把这个机器叫做 ICE, in-circuit emulator, 现在看得到的机器
几乎都是一边接 USB到电脑,另一边接晶片。
既然可以透过 JTAG控制 MCU内的 register (其实原理真的非常简单,
等你熟悉数位逻辑设计後,也可以想一个出来),如果这个 register
是控制 on-chip flash memory的,代表你也可以把 firmware code
透过 JTAG控制该 register, 进而烧录进 on chip flash.
所以 user并不是把程式载入 ICE, 而是透过 ICE 把程式载入 on chip
memory, 有些高阶的甚至可以载入 off chip memory.
至於这有什麽用?古老长辈在开发 MCU system时,程式是放在 EPROM or EEPROM上,
把 EPROM晶片拔起来,放到专用的烧录机,将程式烧入後,重新插回系统,
跑一跑要改code,这 EPROM必须放到 UV eraser去一段时间才可重新烧录,因此
要换另一颗 EPROM.... 也就是你现在按下 download後五秒钟完成的事情,
前人可能是要 10 min。
现代工程师习以为常的,在IDE开发环境内,对某行程式设 break point,
执行到就停下来,IDE透过 ICE将 runtime memory资料取出来让你看值,
这个动作以前根本不可能。
以前大概都是抓几只脚观察状况,或是透过 UART将资料取出,需要很多的
巧思才能顺利 debug.
现在很多系统没有 JTAG根本无法运作,多摸熟一点就不会问这问题了 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.137.82.6
1F:推 mmonkeyboyy:JTAG应该是去拉register 的资料才是 08/28 22:35