Re: [問題] 請問仿真器是做甚麼的?
※ 引述《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
推
08/28 22:35, , 1F
08/28 22:35, 1F
討論串 (同標題文章)