【正文】
嵌入式系統(tǒng)設(shè)計與開發(fā) 第 9章 ARM嵌入式開發(fā)工具 本章提要 ARM下層開發(fā)工具 ARM開發(fā)工具概述 ARM的 ADS Embest IDE的介紹 ARM下層開發(fā)工具 ? 由于程序的編譯環(huán)境和運行環(huán)境不同,所以 ARM嵌入式開發(fā)采用交叉編譯方法進行。 ? 首先,在通用計算機上對源程序進行編寫、編譯、匯編、連接形成可以在目標系統(tǒng)上運行的目標文件;接著,通過連接 /調(diào)試裝置將目標文件下載到目標系統(tǒng)上運行;源程序在目標系統(tǒng)上運行的情況連接裝置在計算機中反映出來,開發(fā)人員通過反映出的情況根據(jù)開發(fā)項目的需要進行相應(yīng)的修改并重復(fù)上述操作直至達到項目開發(fā)預(yù)期結(jié)果。 ? 因此,可以把 ARM嵌入式開發(fā)工具分為上層裝在計算機中的開發(fā)工具、中間的連接裝置和下層的 ARM芯片本身具有的支持嵌入式開發(fā)的工具。 ARM 嵌入式系統(tǒng)實時開發(fā)組織結(jié)構(gòu)圖 JTAG TAP 控制器Em be dde d IC EETMAR M 核JTAG端口跟蹤端口Em be dde dICE控制器跟蹤端口分析器計算機Addre ss B usC o n t r o l B u s掃描鏈掃描鏈掃描鏈Da ta B us JTAG接口 JTAG接口標準是由測試聯(lián)合行動組( joint test action group)于 1986~1988年推出的基于邊界掃描機制的標準化草 案。 1990年 IEEE組織將這些草案標準化,并命名為 IEEE ,俗稱 JTAG調(diào)試標準。 JTAG除了實現(xiàn)通常意義上 的調(diào)試功能外,還可實現(xiàn)代碼下載或單步執(zhí)行程序等功能。 邊界掃描機制主要的思想是:通過在內(nèi)部邏輯之間,即在 內(nèi)部邏輯的邊界上增加串行的可讀寫的邊界掃描單元,從而提 供芯片級、板級、系統(tǒng)級的標準測試框架。邊界掃描機制可以 實現(xiàn)下列目標: v 測試不同單元之間的連接。 v 測試單個單元的功能。 v 應(yīng)用邊界掃描寄存器完成其他測 試功能,如偽隨機測試、特征分 析和靜態(tài)測試等。 JTAG接口 的 6個主要信號 : 1) Test Clock Input( TCK)。 TCK為 TAP的操作提供了一個 獨立的、基本的時鐘信號, TAP的所有操作都是通過這個時鐘 信號來驅(qū)動的。 TCK在 IEEE 。 2) Test Mode Selection Input( TMS)。 TMS信號用來控制 TAP狀態(tài)機的轉(zhuǎn)換,通過 TMS信號,可以控制 TAP在不同的狀 態(tài)間相互轉(zhuǎn)換。 TMS信號在 TCK的上升沿有效。 TMS在 IEEE 。 3) Test Data Input( TDI)。 TDI是數(shù)據(jù)輸入接口。所有要輸 入到特定寄存器的數(shù)據(jù)都是通過 TDI接口一位一位串行輸入的 (由 TCK驅(qū)動)。 TDI在 IEEE 。 4) Test Data Output( TDO)。 TDO是數(shù)據(jù)輸出的接口。所有 要從特定邊界掃描鏈采樣的保存在寄存器中的數(shù)據(jù)都是通過 TDO接口一位一位串行輸出的(由 TCK驅(qū)動);在芯片串行測 試時,將數(shù)據(jù)傳送給下一個芯片。 TDO在 IEEE 是強制要求的。 5) Test Reset Input( TRST/nTRST)。 TRST可以用來對 TAP Controller進行復(fù)位(初始化)即 JTAG復(fù)位。該信號接口 在 IEEE ,因為通過 TMS也可以對 TAP Controller進行復(fù)位 /初始化。為了防止誤觸發(fā),應(yīng)在該端加適 當上拉電阻。 6) System Reset( nSRST/SRST)。與目標板上的系統(tǒng)復(fù)位 信號相連??梢灾苯訉δ繕讼到y(tǒng)復(fù)位,同時可以檢測目標系統(tǒng) 的復(fù)位情況。該信號接口在 IEEE ,并 不是強制要求的。 20針 JTAG接口信號 V CC GND GND GND GND GND GND GND GND GND V CC nTR ST TD I TMS TC K R TC K TD O nSRS T NC NC 1 3 5 7 9 11 13 15 17 19 2 4 6 8 10 12 14 16 18 20 20針 JTAG接口連接 G N D G N D VDD J T A G 2 0 R R R R R R R R R T D O T CK T MS T D I n T RS T n RE SE T 1 3 5 7 9 11 13 15 17 19 2 4 6 8 10 12 14 16 18 20 JTAG TAP ? JTAG測試訪問端口 JTAG TAP是一個通用端口,是外部JTAG接口連接芯片的通道,由 JTAG TAP控制器和掃描鏈構(gòu)成。 ? 通過 TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器( DR, data register)和指令寄存器( IR, instruction register)。 ? 對整個 TAP的控制是通過 TAP Controller完成的。 ? TAP有 5個接口信號: TCK、 TMS、 TDI、 TDO和 TRST,提供給 JTAG接口。 ? 掃描鏈是由靠近芯片的輸入 /輸出管腳上各增加一個用于實現(xiàn)對芯片輸入 /輸出信號進行觀察和控制的移位寄存器單元,相互連接構(gòu)成。即在芯片 /內(nèi)部邏輯的周圍形成一個邊界掃描鏈( boundaryscan chain)。 ? 如果需要捕獲芯片某個管腳上的輸出,首先需要把該管腳上的輸出裝載到邊界掃描鏈的寄存器單元里,然后通過 TDO輸出,得到相應(yīng)管腳的輸出信號。 ? 如果要在芯片的某個管腳上加載一個特定的信號,則首先通過 TDI把期望的信號移位到與相應(yīng)管腳相連的邊界掃描鏈的寄存器單元里,然后把該寄存器單元的值加載到相應(yīng)的芯片管腳。 ? 在 IEEE ,寄存器分為兩大類:數(shù)據(jù)寄存器DR和指令寄存器 IR。 ? 邊界掃描鏈屬于數(shù)據(jù)寄存器的一種,用來實現(xiàn)對芯片的輸入 /輸出的觀察和控制,而指令寄存器用來實現(xiàn)對數(shù)據(jù)寄存器的控制。 ? 如在芯片提供的所有邊界掃描鏈中選擇一條指定的邊界掃描鏈作為當前的目標掃描鏈,并作為訪問對象就是由相應(yīng)指令寄存器完成的。 通過 TAP接口,對數(shù)據(jù)寄存器進行訪問的一般過程是: 1)通過指令寄存器,選定一個需要訪問的數(shù)據(jù)寄存器。 2)把選定的數(shù)據(jù)寄存器連接到 TDI和 TDO之間。 3)由 TCK驅(qū)動,通過 TDI,把需要的數(shù)據(jù)輸入到選定的數(shù)據(jù)寄 存器中,同時把選定的數(shù)據(jù)寄存器中的數(shù)據(jù)通過 TDO讀出來。 JTAG TAP 控制器狀態(tài)轉(zhuǎn)換圖 T es t L o g i c Res et O x F t ms = 1 t ms = 0 t ms = 0 t ms = 1 t ms = 1 t ms = 0 t ms = 1 t ms = 0 t ms = 1 t ms = 1 t ms = 0 t ms = 0 t ms = 0 t ms = 1 t ms = 0 t ms = 1 t ms = 1 t ms = 0 t ms = 0 t ms = 1 t ms = 1 t ms = 1 t ms = 0 t