Ads 468x60px

##EasyReadMore##

29 3月, 2018

ICE 與 JTag

ICE(in circuit emulation)

image
因為嵌入式系統往往不像商業計算機那樣具有鍵盤、螢幕、磁盤機和其他各種有效的用戶界面和存儲設備。 早期我們用的 ICE (In-Circuit Emulator) 長得非常巨大, 它有一個 socket 攔在單晶片 IC 和 PCB 板子中間, 光是 8051 的 ICE 就可以做成一大台, 彷彿是一台邏輯分析儀的規模. 基本上它可以單步執行, 設斷點, 攔截特定位址的讀寫等等.在線仿真也被稱作硬件仿真. 這樣的在線仿真器, 可以在系統執行實時資料的情況下, 提供相對很好的除錯能力。

就好像以前的CD-R一樣,如果沒有將整理過的文件燒錄進去的話,就沒有辦法去改,需要燒錄過另外的一片CD-R了,整理文件有文書處理軟件,但是軟體電路就需要靠這個在線仿真器了。

一開始的emulator的確是可以插在板子上模擬CPU
不過以現在ICE的用途其實是誤稱(misnomer),我其實比較習慣講debugger
現在還是有些CPU可以用emulator模擬,不過都是比較小的MCU像是8051和AVR.

JTAG:

image
JTAG 也可當成比較新的 ICE:
Jtag 其實算控制CPU,你所有在debug tool上的動作(load code
, 改值,single step)。都會透過 Jtag 實際去access cpu register值和週邊device狀況 , 算是一種侵入式的debug 手段
另外, 你可以在code裡面加break point,當CPU跑到break point的時候就會停下來 , 停下來之後可以透過ICE檢察系統狀態看是否正常
所以就可以知道跑到那段code前是沒問題的
另外也可以用step一步一步執行看程式會掛在那裡

提供一個在系統中方便的"後門"。當使用一些偵錯工具像電路內模擬器用JTAG當做訊號傳輸的機制,使得程式設計師可以經由JTAG去讀取整合在CPU上的偵錯模組。偵錯模組可以讓程式設計師偵錯嵌入式系統中的軟體。

透過 JTAG控制 MCU內的 register

  JTAG是最基本的通訊協議之一,大家可以理解為與RX TX或者USB的道理是一樣的,只是一種通訊手段,但與RX TX以及USB有很重大的不同,那就是這個JTAG協議是最底層的,說的通俗一點,一般來說,手機裡邊,CPU是老大,對吧?但在JTAG面前,他就不是老大了,JTAG協議就是用來控制CPU的,在JTAG面前CPU變成喽啰了。一般的協議是求着CPU讀寫字庫的程序,但JTAG可以讀寫CPU的程序,命令讓CPU啥活都干,擒賊先擒王,JTAG就是屠龍刀。


所有的手機CPU都支持JTAG協議,也必須支持JTAG協議,因為CPU裡邊的數據只有通過JTAG功能才能寫入,在内部數據錯亂的時候或者其他部分重要數據錯亂的時候,CPU可能就不理會RX TX或者USB了,在這個時候,用JTAG協議功能,強制手機的CPU乖乖的干活。因此,所有的手機,所說的變成磚頭了,真實的技術原因是,讓手機響應RX TX或者USB進行操作,所必須需要的基礎數據丢失了,手機CPU就不搭理RX TX或者USB了,因為這時候CPU是老大,他說不干一般人就沒辦法了;唯一的解決之道,就是用JTAG功能,讓CPU變成馬仔,強制他把這些基礎數據恢復,磚頭就又變成手機了。
JTAG信号,最基本的要有5條線,TCK TMS,TDI,TDO,復位信号。
復位信号,有的一條,有的多條,他的作用是鎮壓CPU,讓他停下所有工作,等着JTAG信号對它進行控制,或者讓其某部分工作某部分暫停工作。
TCK信号,上位機的時鍾信号,上升沿送入給手機CPU的數據,下降沿手機CPU回來數據。
TDI信号,上位機的數據信号。
TMS信号,上位機的另外一個數據信号,實際是命令指示以及區分的信号。
TDO信号,手機CPU回來給上位機的數據信号,讓上位機知道手機CPU現在的狀态是很乖還是不乖,進而根據CPU的狀态進行控制。


說的更簡單一點,讓大家理解,就是在CPU由于軟件原因不聯機的時候,JTAG是唯一能夠恢復這部分軟件的工具。JTAG能夠指揮CPU干任何事,在JTAG面前CPU只是一個馬仔。

JTAG的作用和原理 - CSDN博客 - https://goo.gl/A8oX1c

Re: [請益] ICE(in circuit emulator) for 嵌入式系統 - 看板 Tech_Job - 批踢踢實業坊 - https://goo.gl/QSJBWC
ICE 和 Trace 的差異 | Cash's Blog - https://goo.gl/DTmkeD

0 意見:

張貼留言

 
Blogger Templates