在線仿真器的基本思想是提供一面通向嵌入式系�(tǒng)�(nèi)部的窗戶。程序員用線仿真器將程序下載到系�(tǒng)運行�, 可以對程序進行逐步跟蹤并察看數(shù)�(jù)的變��
在線仿真� (In-Circuit Emulator, ICE) 是用來調(diào)試嵌入式系統(tǒng)軟件的硬件設(shè)備。嵌入式系統(tǒng)開發(fā)者要面對一般軟件開�(fā)者所沒有的特殊問�, 因為嵌入式系�(tǒng)往往不像商業(yè)計算機那樣具有鍵�、顯示屏、磁盤機和其他各種有效的用戶界面和存儲設(shè)備�
當仿真器被插入到待開�(fā)芯片的某個部分的時�, 在線仿真也被稱作硬件仿真. 這樣的在線仿真器, 可以在系�(tǒng)運行實時�(shù)�(jù)的情況下, 提供相對很好的調(diào)試能��
在線仿真器的基本思想是提供一面通向嵌入式系�(tǒng)�(nèi)部的窗戶。程序員用線仿真器將程序下載到系�(tǒng)運行�, 可以對程序進行逐步跟蹤并察看數(shù)�(jù)的變��
之所以被叫做仿真�, 因為它們經(jīng)常用來模擬嵌入式系統(tǒng)中的中央處理器。通常來說, 它通過一個插頭插在一個與 CPU 一樣的底座�。由于是模擬主處理器, 仿真器可以在程序員的控制下做任何處理器可以做的操作�
在線仿真器總是將待開�(fā)的嵌入式系統(tǒng)連接到一個終端或個人電腦。該終端或個人電腦為程序員�(diào)試和控制系統(tǒng)提供一個交互式的用戶界��
值得注意的是,當程序出現(xiàn)問題,大多數(shù)的嵌入式系統(tǒng)會立刻變成毫無用處的廢銅爛鐵。嵌入式系統(tǒng)總是缺乏�(jiān)測軟件問題的機制,比如內(nèi)存管理單元讀取緩存失敗等。如果沒有在線仿真器,嵌入式系統(tǒng)開發(fā)將變得非常困�,因為根本沒有辦法知道究竟發(fā)生了什么問題。而有了在線仿真器,程序員可以測試每一行源代碼,從而找到究竟是哪一段程序出錯并糾正錯誤以解決問��
在實際應(yīng)用中,程序員可以通過在線仿真器設(shè)置斷�、顯示和�(jiān)視內(nèi)存內(nèi)容以及控制輸入輸�。除此之外,程序員還可以通過在線仿真器設(shè)置各種條件斷�,從而有機會找到很多錯誤的根源�
最近的一些在線仿真器不再因為仿真而需要一個特殊的目標系統(tǒng),而是利用由微控制器生�(chǎn)商提供的仿真和調(diào)試資�。雖然這樣的在線仿真器本身由于只處理微處理上的仿真電路, 而不是真正去模擬微處理器從而成本得到降�, 代價是在微處理器的設(shè)計過程中, 需要在保證提供足夠仿真機能的基�(chǔ)上控制生�(chǎn)成本�
幾乎所有的嵌入式系�(tǒng)都由相互獨立但又相互依賴的硬件和軟件組成。通過在線仿真�,可以在軟件真正將要運行的硬件上運行和調(diào)試。同�,通過原碼級調(diào)試(Source Level Debug, 程序員可以看到運行的源代碼)和單步調(diào)試(程序員可以一步一步的運行程序?qū)ふ义e誤),程序員可以方便的分離出錯誤代碼�
大多�(shù)在線仿真器都由一個位于主機和被調(diào)試系�(tǒng)之間的適配器組成。接頭和電纜組件將適配器連接到待�(diào)試系�(tǒng)上用于安插微處理器的底座。而最近的在線仿真器上, 程序員可以通過 JTAG � BDM 連接到位于微處理器片上的�(diào)� (On-Chip Debug) 電路進行軟件�(diào)��
由于在線仿真器模擬處理器, 所以在待調(diào)試系�(tǒng)看來, 就像一個真的處理器;但從程序員角度看來, 待測試系�(tǒng)能夠被完全控�, 可以直接下載、調(diào)試代碼等��
大多�(shù)主機都是普通的與被開發(fā)系統(tǒng)無關(guān)的商�(yè)電腦。例�: 安裝Windows系統(tǒng)的個人電腦可能被用來開�(fā)� Freescale � 68HC11 系列微控制器上使用的軟件, � 68HC11 本身并不能運� Windows 系統(tǒng)�
程序員一般在主機上編寫和編譯嵌入式系�(tǒng)的代�。所以主機上需要能為特定的嵌入式系�(tǒng)�(chǎn)生代碼的編譯器,他們被叫做交叉編譯器或匯編��