JTAG在嵌入式系統(tǒng)開發(fā)全生命周期中的系統(tǒng)調(diào)試與測試關(guān)鍵角色
隨著摩爾定律的每轉(zhuǎn)變,設(shè)計人員在開發(fā)過程的每個階段都面臨著新的復(fù)雜程度的挑戰(zhàn)。芯片設(shè)計師不僅要在塊硅片上獲得正確的集成電路( IC) 邏輯、性能、功率和產(chǎn)量。
此外,系統(tǒng)開發(fā)人員必須將首次成功擴展到板級參考設(shè)計、引導代碼、操作系統(tǒng) (OS) 端口和應(yīng)用軟件,更不用說閃存編程、制造測試方法和現(xiàn)場支持了。同時,滿足緊迫的期限和成本目標從未如此具有挑戰(zhàn)性。
改變瓶頸隨著硬件和軟件開發(fā)技術(shù)的發(fā)展,系統(tǒng)測試和調(diào)試的性質(zhì)也在不斷發(fā)展。摩爾定律不僅影響了處理器和內(nèi)存設(shè)計,而且在集成系統(tǒng)功能、將操作系統(tǒng)(或?qū)崟r操作系統(tǒng) (RTOS))集成到嵌入式系統(tǒng)以及捆綁到嵌入式系統(tǒng)的應(yīng)用軟件數(shù)量方面也發(fā)生了類似的變化。終產(chǎn)品。
讓我們倒計時。在大規(guī)模集成 (LSI) 組件(至少 1000 個門)時代,中央處理器( CPU) 只是 CPU,受到當時半導體工藝技術(shù)、功耗和產(chǎn)量的限制。
調(diào)試在很大程度上僅限于集成硬件功能、調(diào)整芯片間時序和驗證邏輯功能的過程。系統(tǒng)軟件大約有數(shù)百 KB,并且受到預(yù)算內(nèi)存空間中可容納的代碼量的限制。
時代變了。如今,內(nèi)存空間和高CPU時鐘頻率“幾乎”。設(shè)計、調(diào)試和測試挑戰(zhàn)已經(jīng)從硬件組件集成和調(diào)試發(fā)展到系統(tǒng)硬件設(shè)計的仿真,先于 SOC 流片,再到系統(tǒng)軟件建模,然后是數(shù)百兆字節(jié) (MB) 的集成) 系統(tǒng)軟件。
在系統(tǒng)級,當今的大多數(shù)嵌入式設(shè)備都需要功能齊全的嵌入式操作系統(tǒng),運行多個由內(nèi)存管理單元 (MMU) 管理的應(yīng)用程序,并且越來越多地提供某種網(wǎng)絡(luò)功能,例如局域網(wǎng) (LAN) 或無線網(wǎng)絡(luò)連接用于控制或網(wǎng)絡(luò)訪問數(shù)據(jù)庫或語音、數(shù)據(jù)和視頻服務(wù)。
當代嵌入式解決方案的是具有數(shù)百萬個門的片上系統(tǒng) (SOC),將高速緩存、暫存器隨機存取存儲器 (RAM) 和外圍功能集成到一個芯片上;許多組件接口被埋在芯片內(nèi),不再可用于系統(tǒng)測試/調(diào)試的引腳或板級。CPU 內(nèi)核現(xiàn)在以數(shù)百兆赫茲(MHz) 的頻率運行,并集成了許多硬件接口,因此歷史測試方法已不復(fù)存在。
JTAG 的救援——邊界掃描測試聯(lián)合測試行動小組 (JTAG) 在 1990 年代開始通過標準化串行掃描鏈方法(JTAG;IEEE 1149.1)來訪問片上資源和內(nèi)置的額外移位寄存器來解決板級測試問題進入每個 IC 的I/O路徑以進行邊界掃描測試。
在邊界掃描測試出現(xiàn)之前,很難調(diào)試芯片組件下方的潛在焊料凸點問題。在電路板組裝之前,每個 IC 都經(jīng)過測試以確保其完美運行。因此,如果組裝好的印刷電路板PCB不能正常工作,則故障一定是由印刷電路板中的焊橋、間隙或缺陷引起的。但是,如果缺陷位于芯片組件下方,無法看到或不易修復(fù)怎么辦?
邊界掃描測試方法解決了這個問題。如圖 1 所示,添加了一條通過 I/O 寄存器的串行掃描路徑,并由每塊板獨有的復(fù)雜測試程序執(zhí)行,以幫助識別有故障的芯片或其他設(shè)備,以便對它們進行返工或更換。在圖 1 的圖表中,每個灰色框代表一類設(shè)備功能,例如閃存、外圍設(shè)備、I/O 端口等。
圖 1. 用于邊界掃描測試的 JTAG 連接JTAG 方法提供了一種測試非常復(fù)雜的系統(tǒng)的方法,同時保持較低的引腳數(shù)。具體來說,無論掃描鏈寄存器路徑有多長,IEEE1149.1 規(guī)范只需要 5 個引腳用于 JTAG 連接。JTAG 測試訪問端口的標準引腳功能包括:
TRST 測試復(fù)位(從 JTAG 探針輸出到芯片以復(fù)位 JTAG 測試邏輯)TCK 測試時鐘(從 JTAG 探針輸出到芯片以設(shè)置 JTAG 掃描速率)TDI 測試數(shù)據(jù)輸入(串行測試數(shù)據(jù)輸入到芯片)TDO 測試數(shù)據(jù)輸出(串行測試數(shù)據(jù)從芯片輸出)TMS 測試模式選擇(通過 TCK 上升沿的狀態(tài)確定運行或調(diào)試模式)幾家公司幾乎完全專注于邊界掃描測試,專注于 JTAG 硬件連接設(shè)備和基于主機的測試軟件工具,以使測試程序適應(yīng)每個電路板設(shè)計。
JTAG 的第二個角色——用于軟件/硬件調(diào)試的 CPU 內(nèi)核訪問鑒于 CPU 處理器內(nèi)核現(xiàn)在通過內(nèi)核中的集成緩存、本地片上總線、動態(tài)分配內(nèi)存的 MMU 以及其他 SOC 外設(shè)和 I/O 塊,JTAG 路徑提供了到 CPU 內(nèi)部調(diào)試邏輯的直接連接。因此,我們現(xiàn)在有了一種觀察和控制程序執(zhí)行的方法。由于緩存和外圍設(shè)備已移至芯片上,因此調(diào)試邏輯也必須移至芯片上(下圖 2)。
圖 2. 用于軟件調(diào)試/開發(fā)的 JTAG 連接通過這種直接內(nèi)核訪問,基于主機的調(diào)試器軟件現(xiàn)在可以斷言“調(diào)試異常”,重定向處理器以從調(diào)試邏輯寄存器而不是程序計數(shù)器獲取下一條指令,從而有效地控制處理器以執(zhí)行軟件調(diào)試操作:
* Run-control: Start, Stop, Single-Step, Step Into/Over (source or instruction)* 設(shè)置硬件和軟件斷點* 指定在斷點處要滿足的條件或要執(zhí)行的腳本* 控制目標系統(tǒng)的復(fù)位和初始化*要調(diào)試的代碼或要編程到閃存中的代碼*執(zhí)行閃存編程和其他半托管實用程序請注意,在上述兩種應(yīng)用中,邊界掃描和軟件調(diào)試,JTAG 的作用只是提供物理層通信接口,類似于ISO開放系統(tǒng)互連模型中的 PHY 層。
支持哪些調(diào)試功能的協(xié)議體現(xiàn)在調(diào)試邏輯中,設(shè)計到 CPU 內(nèi)核和主機上運行的調(diào)試器軟件功能中。
JTAG 調(diào)試優(yōu)點使用具有 JTAG 訪問權(quán)限的調(diào)試器的主要優(yōu)點是:
* JTAG 連接提供對否則隱藏的 CPU 內(nèi)核的直接訪問* JTAG接口不占用系統(tǒng) I/O 端口(串行、以太網(wǎng))* JTAG 調(diào)試方法使用很少或沒有系統(tǒng)內(nèi)存分配(如在監(jiān)視器中)* 沒有監(jiān)視器會隨著系統(tǒng)崩潰而崩潰(在電路板啟動時沒有用)* JTAG 連接不需要目標系統(tǒng)電源(一些僅 USB 探頭除外)* JTAG 調(diào)試器可以在不停止 CPU 的情況下“竊取周期”來讀取寄存器/內(nèi)存(假設(shè) CPU 中內(nèi)置的調(diào)試邏輯提供此功能)* JTAG 調(diào)試會話可以重置和/或初始化系統(tǒng)(注意:系統(tǒng)重置不是 JTAG 的一部分。相反,它是使用 JTAG 進行遠程調(diào)試的附屬物,可以通過網(wǎng)絡(luò)遠程重置 JTAG 探針和目標。) * JTAG 調(diào)試器可以在不干擾系統(tǒng)的情況下連接到調(diào)試邏輯JTAG 調(diào)試限制JTAG 調(diào)試連接并不能解決世界上所有的調(diào)試問題,因為存在一些嚴重的限制:
1) 通過 JTAG 代碼并不是大型程序 (》20MB) 的快方式,尤其是對于依賴 10/100BaseT 以太網(wǎng)訪問的目標系統(tǒng)。
2) 多核系統(tǒng)調(diào)試,其中多個 CPU 內(nèi)核以菊花鏈方式連接在同一個掃描鏈上并且可以單獨訪問,但實現(xiàn)同步調(diào)試操作需要額外的片上硬件來避免與 JTAG 操作相關(guān)的打滑。
隨后,在發(fā)出異步JTAG 停止命令后可能會經(jīng)過數(shù)百個 CPU 周期。這些功能的示例現(xiàn)在開始出現(xiàn),例如,Cavium Networks Octeon 系列中的全局處理器間控制邏輯,具有多達 16 個64 位cnMIPS 內(nèi)核。
3)“Printf”仍然為提取各種調(diào)試狀態(tài)提供了一個簡單的補充。
其他調(diào)試功能并非所有調(diào)試功能本身都使用 JTAG 掃描鏈。例如,一些處理器包括收集跟蹤信息的能力,這是一種非常有價值的調(diào)試工具,因為它可以通過分支和中斷跟蹤執(zhí)行,通常可以節(jié)省數(shù)小時或數(shù)天的時間來尋找特別虛幻的錯誤。
在代跟蹤實現(xiàn)中,第二個調(diào)試邏輯塊以流水線時鐘速率(片外和板外)卸載跟蹤數(shù)據(jù),以便在用于控制 JTAG 操作的同一調(diào)試探針中收集。
原始的 ARM 嵌入式跟蹤宏單元 (ETM) 和 MIPS EJTAG 調(diào)試邏輯的 PCTrace 組件均未使用 JTAG 來上傳跟蹤數(shù)據(jù)。兩者都使用 JTAG 來設(shè)置操作模式,但每個都有自己獨立的并行總線、跟蹤協(xié)議和時鐘線,可在 CPU 運行時卸載跟蹤數(shù)據(jù)。
這為三個限制奠定了基礎(chǔ):(1) 可靠地收集有效數(shù)據(jù)的頻率,(2) 在芯片上添加多達 20 個額外焊盤、封裝上的引腳以及使調(diào)試探針成本加倍的成本,以及 (3 ) 沒有實用的方法來在具有多個 CPU 內(nèi)核的 SOC 中實現(xiàn)跟蹤收集。
片上跟蹤緩沖器下一階段的跟蹤技術(shù)開發(fā)使用片上跟蹤緩沖器來收集有關(guān)程序執(zhí)行流的數(shù)據(jù)。這種方法帶來雙重好處。首先,它支持以CPU 時鐘速率收集跟蹤數(shù)據(jù)。同時,這種方法將成本降至,因為跟蹤數(shù)據(jù)是通過用于正?!斑\行控制”調(diào)試的相同 JTAG 掃描鏈路徑/引腳上傳的。
ARM 的新嵌入式跟蹤緩沖器 (ETB) 和 MIPS 使用跟蹤控制塊 (TCB) 的新 PDTrace 為后續(xù)主機處理提供了全面的跟蹤信息,盡管芯片面積和成本有所增加。
英特爾 XScale 應(yīng)用處理器(IOP、IXC、IXP 和 PXA)在其實現(xiàn)中使用了這一主題的創(chuàng)造性變體。分支數(shù)據(jù)和分支計數(shù)數(shù)據(jù)不是收集每條指令的大量跟蹤狀態(tài)信息,而是收集在一個小得多的片上跟蹤緩沖區(qū)中。根據(jù)這些數(shù)據(jù),可以重建執(zhí)行流程,只是沒有實時標記可用。
根據(jù)所使用的技術(shù)和片上緩沖區(qū)的大小,可以顯示的跟蹤數(shù)據(jù)量需要權(quán)衡取舍。因此,適用通常的成本與收益權(quán)衡。一定量的跟蹤信息總比沒有好,在典型的調(diào)試場景中,應(yīng)該考慮多少才是真正足夠的。
雖然大量的跟蹤信息提供了一種無需“檢測”代碼(這可能會影響性能)就可以分析代碼執(zhí)行情況的方法,但與之相關(guān)的開發(fā)工具成本也會增加。
表 1:JTAG 在整個開發(fā)和產(chǎn)品生命周期中的適用性和優(yōu)勢其他 JTAG 應(yīng)用除了硬件/軟件調(diào)試和邊界掃描測試,JTAG 連接還被各種工具供應(yīng)商用于直接在線閃存編程、發(fā)送命令腳本以在目標板上執(zhí)行、編程現(xiàn)場可編程邏輯器件( FPLD),并為數(shù)字信號處理器(DSP) 等其他功能塊提供類似的專用調(diào)試功能。許多復(fù)雜的 IC 包括內(nèi)置的自測功能,這些功能通過 JTAG 啟動和后分析。
熱門文章
- 蘋果供應(yīng)鏈巨頭捷普擬2.75億美元在印度擴建兩廠,深化本地化布局 2024-10-25
- WALSIN(PSA華新科技) 產(chǎn)品選型手冊(英文版) 2024-09-24
- 挑戰(zhàn)英偉達Thor,全球首枚車載3納米Chiplet小芯片瑞薩X5H震撼發(fā)布 2024-11-19
- 移為(Queclink )GMT200 2G緊湊型摩托車智能終端 20230901 2024-09-12
- 移為(Queclink )SC350MG E-bike IoT智能終端 20240123 2024-09-12
- 英特爾規(guī)劃后Xe2“Battlemage”世代獨顯,市場競爭再升級 2024-11-18
- ABLIC(艾普凌克)汽車IC(電源管理IC)產(chǎn)品選型手冊 2024-09-27
- 三星電子震撼發(fā)布:首款第八代V-NAND技術(shù)加持的車載SSD 2024-09-25
- 網(wǎng)傳蘋果2025年將采用自研Wi-Fi芯片,基于臺積電7nm工藝制造 2024-11-01
- 速通半導體發(fā)布首款純自研Wi-Fi7路由器芯片樣品 2024-11-18