ICE 和 Trace 的差異

一般 SOC IC 剛回來的時候, 如果 memory 有問題我們可以用 ECC, 如果 CPU 有問題, 我們可以用 JTAG 去 debug, 以免它一動也不動, 卻不知道原因. 

早期我們用的 ICE (In-Circuit Emulator) 長得非常巨大, 它有一個 socket 攔在單晶片 IC 和 PCB 板子中間, 光是 8051 的 ICE 就可以做成一大台, 彷彿是一台邏輯分析儀的規模. 剛剛 Google 了一下, 已經找不到那種圖片了. 基本上它可以單步執行, 設斷點, 攔截特定位址的讀寫等等.

後來的 ICE 又叫做 Probe, 只需要用 JTAG 介面和 SOC chip 溝通. 那些設斷點的工作跑到 PC 上用 debug 軟體做了. 有時候 probe 也支援幾組硬體位址或資料的比對, 以便快速撈到某個值的變化, 以便找出兇手是誰. 大部分的人用 probe  debug 就夠了.

至於 trace 的功能就是把執行的過程記錄起來, 它可以被保存在一塊特定的 memory 中,  或是直接傳回 PC 再用 tool 分析. 畢竟使用 Probe 的話, 只要有人工介入, 某些 timing 就改變了. 很容易造成平常一定當, 但用 probe 看就不會當的慘劇. 

Trace 容許 IC 用正常的執行環境跑, 不會因為 debug 而造成當機條件改變.  所以它是更強的 debug 工具. 好東西當然不便宜, 由網路上看到買一台 ICE (Probe) 加一台 trace 只要 USD 7,000, 不過買軟體卻要 USD 12,000. 畢竟沒有軟體的話, 錄下一堆 raw data 也是毫無幫助的. 請參考有錢公司的開箱文和官網.

ARM RealView ICE, RealView Trace 開箱文

RealView ICE 和 RealView Trace

[2012/6/27 補充]

1. ARM 的 debug 軟體, 以前是 RVSD 系列, 到了 RVSD 4.x 的下一代, 就改為 DS-5 系列. 最大的差異在於支援了 Linux 和 Android, 因此也可以用 ssh, telnet 等工具去偷看系統.

2. DS 是 DStream 的縮寫, 相對於 VStream. V 就是 Virtual, 實際上還沒有任何硬體的階段, 這個盒子就模擬了整個 ARM 的單晶片系統.

3. RealView 系列的 debug 硬體, 隨之進化到 DS-5 Debugger. 號稱對於 Linux SMP 可以有 seamless 的支援. 只是 RVSD 系列原來也號稱支援 Coretex A9 1~4 core, 其中的差異要比較過才知道.


分類: 技術,標籤: , 。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *