開發工具 JTAG JTAG除錯原理 二

2021-10-13 05:26:01 字數 1458 閱讀 1018

jtag基礎

jtag除錯原理

jtag除錯例項

模擬系統崩潰,使用jtag除錯找到崩潰點

兩個重要概念:邊界掃瞄和tap

jtag如何用於晶元測試呢? 其中用到的最主要部件就是邊界掃瞄鏈。

邊界掃瞄(boundary-scan)即在晶元的每個輸入輸出管腳上都增加乙個移位暫存器單元(boundary-scan register cell),因為這些移位暫存器單元分布在晶元的邊界上,所以被稱為邊界掃瞄暫存器。

命名為邊界掃瞄鏈,是由於它位置處於處理器的邊界上。我們知道cpu是通過引腳與外圍交流的,所有的資料都會通過引腳輸入或者輸出,而jtag就是通過監控引腳的訊號達到晶元測試的目的。而邊界掃瞄鏈就是在引腳上的乙個部件。如下圖:

在jtag 除錯中,邊界掃瞄是乙個很重要的概念,當需要除錯晶元時,這些暫存器將晶元與外圍電路隔離,實現對晶元輸入輸出訊號的觀察和控制:

對於輸入管腳,可以通過與之相連的邊界掃瞄暫存器單元把資料載入到該管腳中;

對於輸出管腳,可以通過與之相連的邊界掃瞄暫存器「捕獲」(capture)該管腳上的輸出訊號;

通過邊界掃瞄鏈,當有訊號輸入的時候,邊界掃瞄鏈就能獲取訊號,當cpu要輸出訊號的時候,邊界掃瞄鏈也能獲取要輸出的訊號。另外也可以通過邊界掃瞄鏈來直接向外部輸出訊號。

無論是訊號的抓取還是輸出,都需要有介面來儲存這些訊號,tdi跟tdo就是做這樣一些工作的。

本來邊界掃瞄鏈儲存著引腳上的訊號,當通過tdi引腳輸入我們自己的訊號的時候,會發生沿上面紅線方向的移位操作:

tdi——〉邊界掃瞄鏈——〉 tdo

就能從tdo獲取邊界掃瞄鏈上的訊號,我們從tdi輸入的訊號也會到邊界掃瞄鏈上去。

在cpu跟外界通訊的引腳上的資料無非就是 指令 跟 資料訊號(包括位址跟資料) 兩種。但是這兩者的結合形成了乙個完整的程式,能對它們進行監控就表明我們能進行程式的除錯。

正常執行狀態下,這些邊界掃瞄暫存器單元對晶元是透明的,所以正常的執行不會受到影響。另外,晶元輸入輸出管腳上的邊界掃瞄(移位)暫存器單元可以相互連線起來,在晶元的周圍形成乙個邊界掃瞄鏈(boundary-scan chain),它可以序列的輸入和輸出,通過相應的時鐘訊號和控制訊號,實現對處在除錯狀態下的晶元的輸入和輸出狀態的觀察和控制。

tap(testaccessport)是乙個通用的埠,通過tap 可以訪問晶元提供的所有資料暫存器(dr)和指令暫存器(ir)。對整個tap的控制是通過tap控制器(tapcontroller)來完成的。tap的幾個介面訊號及其作用全部都在《硬體知識-jtag介面》中全部表示了。

簡單地說,pc機對目標板的除錯就是通過tap介面完成對相關資料暫存器(dr)和指令暫存器(ir)的訪問。

VS開發工具與除錯技巧整理

vs開發中總會遇到這樣那樣的問題,這裡把自己知道的及上網查的一些技巧摘錄如下,希望對大家有用,省去大家再去搜尋的煩惱。1.如何在release狀態下進行除錯 project setting projectsetting對話方塊,選擇release狀態。c c 標籤中的category選general...

RealView MDK開發工具

arm 2009 03 02 16 30 54 閱讀335 字型大小 大 中小 realview mdk開發工具源自德國keil公司,被全球超過10萬的嵌入式開發工程師驗證和使用,是arm公司目前最新推出的針對各種嵌入式處理器的軟體開發工具。realview mdk整合了業內最領先的技術,融合了中國...

MTK開發工具

開發工具 1。vc6或者更高。mtk的模擬器使用vc作為開發工具。一般有兩個版本 pc simulator和modis。似乎乙個是06年的乙個是07年的。2。ads activeperl msys mingw 其它。ads和activeperl一定要裝,msys和mingw在工程裡有就要工程主目錄下...