作者larkes (larkes)
看板Electronics
標題Re: [問題] 請問仿真器是做甚麼的?
時間Thu Aug 29 03:09:32 2013
謝謝你的指教,
不好意思可以順便問一下嗎?
1.假設user是透過ICE把程式載入到flash裡,
那user有辦法指定要載入到flash的哪個位置嗎?
2.如果user沒辦法指定話,
那程式會載入到flash的哪個位置呢?
直接無條件載入到flash的第0個位址嗎?
3.一旦載入到flash裡之後,
是不是要幫整個設備做重新開機的動作,
processor才能執行剛剛下載的程式呢?
謝謝...
※ 引述《proach ( )》之銘言:
: ※ 引述《larkes (larkes)》之銘言:
: : 不好意思可以請教一個非常基本的問題嗎?
: : processor-----------ICE---------------PC
: : ICE的運作原理是不是這樣子呢?
: : user先用PC把程式載入到ICE裡面,
: : 然後porcessor就開始操縱ICE裡面的程式.
: : 謝謝指教..
: 一般來說,現在的 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: 118.163.38.13