韓格欣+許翔+劉嘯宇+代麗男+薄純娟
摘 要:以ARM Core Sight Architecture Specification規范和ARM Debug Interface Architecture Specification規范為出發點,分析了ARM CoreSight調試與追蹤體系在ARM Cortex M3內核中的實現過程。同時,對比分析了新的Serial Wire Debug調試技術和經典的JTAG調試技術的異同。
關鍵詞:SWD;JTAG;調試;Cortex M3;CoreSight
中圖分類號:TP368 文獻標識碼:A 文章編號:2095-1302(2014)07-0022-03
0引言
在芯片制造技術飛速發展的今天,高速、高集成度、低功耗的極致追求給芯片設計人員提出了一個又一個挑戰,而在這樣的片上系統中調試與追蹤內核狀態更是芯片調試技術的一個難題[1]。為了解決非侵入式、實時調試等多類問題,ARM引入了全新的ARM CoreSight調試體系結構。CoreSight是ARM公司于2003年開發的、綜合而全面的調試與跟蹤架構。部分ARM9與ARM11內核采用早期版本的CoreSight,不過現在大范圍推廣的Cortex系列處理器已完全采用新版的調試體系并充分證明了它的優勢。CoreSight包括眾多組件,每一種都能協助外部主機以極高的效率了解芯片的實時運行情況。芯片中內嵌的特定組件和為系統設計人員提供的調試工具使開發人員可以友好的使用CoreSight構架調試和跟蹤片上系統,而不用再通過直接設置寄存器、遵循特定協議和處理電平信號來使用 。
為了擴大成本和功耗敏感的MCU和終端應用(如智能測量、人機接口設備、汽車和工業控制系統、大型家用電器、消費性產品和醫療器械)市場,ARM公司針對這類混合信號設備進行了優化,貫徹了新一代的CoreSight調試構架,推出了新一代Cortex M系列微控制器。而意法半導體公司(ST)推出的STM32、德州儀器公司(TI)推出的Stellaris,都是一種ARM Cortex M3內核的實現。32位RISC處理器、低功耗、高性能模擬技術、高速DMA通道、豐富的外設和新一代的調試體系,都賦予了其不俗的表現。
然而,新一代調試構架定義的多種功能對不熟悉新調試機制的開發者來說略嫌繁瑣,特別是傳統JTAG調試和新一代的Serial Wire Debug(SWD)調試二合一的調試接口使不少開發者無法理清頭緒。因此本文將從整體上分析ARM CoreSight調試構架和ARM Debug Interface Architecture(ADI),并通過對比ST和TI推出的芯片來明確新調試體系的實現方式,為開發者掃清調試障礙。
1ARM CoreSight調試構架
ARM新一代CoreSight調試構架提供了微處理器所需全部的調試與追蹤功能。片上程序流可通過豐富的硬件執行斷點與高級觀察點、矢量捕獲和元數據跟蹤功能進行監控,甚至在啟用全部中斷時也得到監控。在處理器運行的同時也能讀寫寄存器與存儲器中的數據,并能對片上資源的使用進行驗證。代碼描述可確定處理器在一定時間內的工作情況,從而明確處理器何時會在無限循環中中止,或在何處全力加速程序執行。此外,我們通過新的調試構架還能看出哪些代碼從不執行,從而釋放出寶貴的片上資源。程序員可確認脈寬調制器是否能滿足要求,另外還可檢查堆棧是否存在潛在問題,進而確定意外情況的反饋以及狀態、條件碼和分支的有效性 。
ARM新一代調試構架提供了對多種調試方式的支持。經典的JTAG調試方式經過多年、大范圍的應用,已經具有了成熟、規范、通行等優點。然而,現在的MCU對于速度和封裝的要求已經越來越高,傳統的4線(5線可選)JTAG協議已經不能滿足對芯片封裝尺寸的嚴格要求和對引腳需求的嚴格控制。在這種需求下,ARM在新一代調試體系中引入了旨在替代舊式JTAG調試方式的Serial Wire Debug(SWD)調試方式,它很好地改良了ARM體系結構下的產品調試機制。
ARM CoreSight構架中的組件是通過存儲器映射機制訪問它們自身的控制寄存器(例如AMBA 3 APB接口),而不通過傳統的JTAG訪問其組件資源。ARM選擇這樣的實現方式有很多種原因,例如:傳統JTAG方式的時鐘信號TCK必須工作在所有調試組件共有的最低頻率,這極大限制了調試的速度(也許還將面對休眠態、工作在低頻率狀態的片上組件);傳統的同步JTAG接口在一個設備掉電時會導致整個調試鏈的終止等 。
ARM CoreSightarchitecture包含三類子構架:
(1) Visible component architecture:規定了所有組件所必須遵守的、共有的編程者模型(軟件接口)。規定了對組件可用的拓撲探訪結構;
(2) Reusable component architecture:規定了調試體系的物理接口;
(3) System architecture:規定了系統級需要的時鐘、控制信息、ROM表、追蹤信息格式等。
在ARM CoreSight構架基礎上,ARM指定了具體的調試接口規范,旨在統一所有采用CoreSight調試體系的片上系統。
2ARM調試接口規范
采用ARM設計IP的芯片廠商在設計調試支持的時候,都必須要遵守ARM Debug InterfaceArchitecture Specification(ARM調試接口體系結構規范,ADI)。ARM調試接口規范為嵌入式片上系統(SoC)中的調試組件定義了標準調試接口,其功能邏輯框圖如圖1所示。
圖1ARM ADI功能邏輯框圖
ADI中定義了一個由Debug Port(DP)和Access Port(AP)組成的調試訪問接口Debug Access Port(DAP),外部的調試設備統一由DAP來鏈接被調試的片上系統資源。
ADI中定義了一個單一的外部調試設備物理連接接口:Debug Port(DP)。ADI允許三種不同的DP實現:JTAG-DP,SWD-DP,SWJ-DP。其中JTAG-DP即為經典的JTAG調試機制物理接口,而SWD-DP則是ARM新引入的兩引腳串行線調試結構。SWJ-DP則為JTAG/SWD二合一接口。
同時,ADI還定義了訪問接口:Access Port(AP)。AP為DAP與被調試資源的鏈接提供了接口。AP通過資源特定的連接方式(例如一個debug bus)鏈接到被調試的資源,根據被鏈接調試資源類型的不同,ADI定義了兩類AP的實現:MEM-AP和JTAG-AP。MEM-AP用來鏈接到存儲器映射(Memory mapped)類型的資源,而JTAG-AP主要用來鏈接到經典的IEEE 1149.1 JTAG設備上。我們常用的是MEM-AP類型,通過對ARM存儲器映射機制下的系統資源的訪問,我們可以調試幾乎所有的片上資源。而當我們使用IEEE 1149.1 JTAG調試設備做掃描邊界測試時,我們需要用到JTAG-AP實現。
3基于Cortex M3內核調試的MCU實現
首先,我們先對比兩個具體的實現方案。其一是意法半導體公司的STM32MCU,而另一個則為德州儀器公司的Stellaris。
圖2所示為STM32的調試體系構架。
圖3所示為Stellaris的調試體系構架。
圖3Stellaris MCU調試支持框圖
STM32MCU和Stellaris MCU的設計都遵循了ARM的ADI規范。
STM32選用了SWD和JTAG二合一DP接口:SWJ-DP,這樣的選擇方便了對老式JTAG調試設備的兼容。通過固定的操作脈沖,調試設備開發者可以輕松實現在JTAG和SWD方式之間的切換。而不同的硬件設備是復用接口引腳的,這對引腳分配嚴苛的MCU設計提供了很大便利。而Stellaris則只選用了SWD-DP一種物理連接實現,這體現了TI設計人員對SWD調試方式能力的信任與把握,因為節省出來的不僅僅是管腳,更是硅片的體積和成本。
同時,STM32的AHB-AP是一種MEM-AP的實現。通過Internal private peripheral bus(PPB),調試者可以訪問掛接到ARM高性能總線的所有片上資源。而TI的Stellaris也通過類似的機制實現了對片上資源的訪問控制。
ST公司在STM32系列的不同型號中還提供了可選的調試組件,當然,這得益于CoreSight調試構架中的組件化、模塊化設計。其中DWT、FPB的結合給調試者提供了數據觀察點、硬件斷點和FLASH重映射等功能,而ITM、ETM和TPIU的結合給調試者提供了不輸于大型系統調試方案的指令流、數據流監控功能。而TI的Stellaris并沒有提供可選的ETM組件。TI官方也給出了令人信服的解釋:嵌入式跟蹤宏單元(ETM)旨在為開發工具提供明確的逐指令跟蹤信息。該功能對較復雜的微處理器尤其實用,特別是那些所用片上資源太過動態,難以實現外部實時決定性的處理器。例如,片上高速緩存會根據程序環路執行的具體變化而變化,同時數據和輸入也在不斷變化,因此無法以合理的價格通過外部工具來復制。但是,MCU不使用高速緩存,所以ETM作用不大。
由以上分析可以得出,只要不同的廠商在設計基于ARM內核芯片時遵循了ARM相關協議和規范,開發人員在選擇和開發芯片時就能觸類旁通,大大減少相應的學習開發時間,降低開發成本。同時,更多的開發工具和開發平臺將能得到很好的重用,這對開發者來說是一個巨大的成本優勢。
4JTAG和SWD對比
Serial Wire Debug(SWD)是ARM體系結構中定義的新一代調試機制,具有占有引腳少,高速下運行穩定等特點,其所使用的基于分組的協議可提供比JTAG快一倍多的數據速率,SWD的誕生就旨在替代原始的JTAG調試方式。圖4所示為SWD下ARM調試機制示意圖。
圖4SWD作為接口的CoreSight調試與跟蹤系統
圖5展示了SWD與JTAG接口引腳的對比圖。從圖5中可以看出,SWD協議僅僅需要一個時鐘引腳和一個數據傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結合,提供類printf形式的跟蹤調試信息。相比于傳統的JTAG調試協議,新的SWD調試方式的各類優勢不言而喻。同時,在現有的SWD接口中,我們仍然可以使用JTAG的邊界掃描測試功能,當然,這需要我們具有JTAG-AP接口的實現。
JTAG 1149.1 Serial Wire Debug
Pin Purpose Pin Purpose
TCK Clock SWCLK Clock
TMS State Machine Control SWDIO Data In&Out
TDI Data In - -
TDO Data Out SWO -
TRST Reset - -
圖5SWD與JTAG 1149.1引腳對比
5結語
ARM的新一代調試體系結構極大的增強了ARM體系結構功能的完整性和健壯性,及時轉入新的調試體系結構是必要的,也是具有極大好處的。我們在選擇功能芯片時,在考慮了成本和開發難度的前提下,對芯片可維護性和延續性的考慮也要列入其中。同時,在選用開發工具和平臺的過程中,是否支持ARM新的調試機制也應該成為我們一個重要選擇因素。
參 考 文 獻
[1]ARM.Coresight[EB/OL].[2013-10-25].http://www.arm.com/zh/products/processors/cortex-m/index.php:ARM Ltd,2013
[2]ARM.ARM Cortex-M3 Technical Reference Manual[EB/OL].[2006].UK:ARM Ltd,2006.
[3]BOOTH Jean Anne and COZART Sun.Serial Wire Debug—IdealforMicrocontrollers[R].USA:TexasInstruments,2010.
[4]ARM.CoreSight Architecture Specification [EB/OL].[2013].UK:ARM Ltd,2013.
[5]ARM.ARM Debug InterfaceArchitecture SpecificationADIv5.0 to ADIv5.2 [EB/OL].[2013].UK:ARM Ltd,2013.
[6]STMicroelectronics.STM32 Reference manual[EB/OL].[2011-8-23].Switzerland:STMicroelectronics,2011.
[7]TI.StellarisReference manual[EB/OL].USA:Texas Instruments,2010.
[8]ASHFIELD Eddie.Serial Wire Debug and the CoreSightDebug and Trace Architecture[R].UK:ARM Ltd,2010.
[9]WILLIAMS Michael.Low Pin-count Debug Interfaces forMulti-device Systems[R].UK:ARM Ltd,2009.
[10]IEEE Computer Society.IEEE Std 1149.7?-2009 IEEE Standard for Reduced-Pin andEnhanced-Functionality Test AccessPort andBoundary-Scan Architecture[S].USA:IEEE Computer Society,2010.
0引言
在芯片制造技術飛速發展的今天,高速、高集成度、低功耗的極致追求給芯片設計人員提出了一個又一個挑戰,而在這樣的片上系統中調試與追蹤內核狀態更是芯片調試技術的一個難題[1]。為了解決非侵入式、實時調試等多類問題,ARM引入了全新的ARM CoreSight調試體系結構。CoreSight是ARM公司于2003年開發的、綜合而全面的調試與跟蹤架構。部分ARM9與ARM11內核采用早期版本的CoreSight,不過現在大范圍推廣的Cortex系列處理器已完全采用新版的調試體系并充分證明了它的優勢。CoreSight包括眾多組件,每一種都能協助外部主機以極高的效率了解芯片的實時運行情況。芯片中內嵌的特定組件和為系統設計人員提供的調試工具使開發人員可以友好的使用CoreSight構架調試和跟蹤片上系統,而不用再通過直接設置寄存器、遵循特定協議和處理電平信號來使用 。
為了擴大成本和功耗敏感的MCU和終端應用(如智能測量、人機接口設備、汽車和工業控制系統、大型家用電器、消費性產品和醫療器械)市場,ARM公司針對這類混合信號設備進行了優化,貫徹了新一代的CoreSight調試構架,推出了新一代Cortex M系列微控制器。而意法半導體公司(ST)推出的STM32、德州儀器公司(TI)推出的Stellaris,都是一種ARM Cortex M3內核的實現。32位RISC處理器、低功耗、高性能模擬技術、高速DMA通道、豐富的外設和新一代的調試體系,都賦予了其不俗的表現。
然而,新一代調試構架定義的多種功能對不熟悉新調試機制的開發者來說略嫌繁瑣,特別是傳統JTAG調試和新一代的Serial Wire Debug(SWD)調試二合一的調試接口使不少開發者無法理清頭緒。因此本文將從整體上分析ARM CoreSight調試構架和ARM Debug Interface Architecture(ADI),并通過對比ST和TI推出的芯片來明確新調試體系的實現方式,為開發者掃清調試障礙。
1ARM CoreSight調試構架
ARM新一代CoreSight調試構架提供了微處理器所需全部的調試與追蹤功能。片上程序流可通過豐富的硬件執行斷點與高級觀察點、矢量捕獲和元數據跟蹤功能進行監控,甚至在啟用全部中斷時也得到監控。在處理器運行的同時也能讀寫寄存器與存儲器中的數據,并能對片上資源的使用進行驗證。代碼描述可確定處理器在一定時間內的工作情況,從而明確處理器何時會在無限循環中中止,或在何處全力加速程序執行。此外,我們通過新的調試構架還能看出哪些代碼從不執行,從而釋放出寶貴的片上資源。程序員可確認脈寬調制器是否能滿足要求,另外還可檢查堆棧是否存在潛在問題,進而確定意外情況的反饋以及狀態、條件碼和分支的有效性 。
ARM新一代調試構架提供了對多種調試方式的支持。經典的JTAG調試方式經過多年、大范圍的應用,已經具有了成熟、規范、通行等優點。然而,現在的MCU對于速度和封裝的要求已經越來越高,傳統的4線(5線可選)JTAG協議已經不能滿足對芯片封裝尺寸的嚴格要求和對引腳需求的嚴格控制。在這種需求下,ARM在新一代調試體系中引入了旨在替代舊式JTAG調試方式的Serial Wire Debug(SWD)調試方式,它很好地改良了ARM體系結構下的產品調試機制。
ARM CoreSight構架中的組件是通過存儲器映射機制訪問它們自身的控制寄存器(例如AMBA 3 APB接口),而不通過傳統的JTAG訪問其組件資源。ARM選擇這樣的實現方式有很多種原因,例如:傳統JTAG方式的時鐘信號TCK必須工作在所有調試組件共有的最低頻率,這極大限制了調試的速度(也許還將面對休眠態、工作在低頻率狀態的片上組件);傳統的同步JTAG接口在一個設備掉電時會導致整個調試鏈的終止等 。
ARM CoreSightarchitecture包含三類子構架:
(1) Visible component architecture:規定了所有組件所必須遵守的、共有的編程者模型(軟件接口)。規定了對組件可用的拓撲探訪結構;
(2) Reusable component architecture:規定了調試體系的物理接口;
(3) System architecture:規定了系統級需要的時鐘、控制信息、ROM表、追蹤信息格式等。
在ARM CoreSight構架基礎上,ARM指定了具體的調試接口規范,旨在統一所有采用CoreSight調試體系的片上系統。
2ARM調試接口規范
采用ARM設計IP的芯片廠商在設計調試支持的時候,都必須要遵守ARM Debug InterfaceArchitecture Specification(ARM調試接口體系結構規范,ADI)。ARM調試接口規范為嵌入式片上系統(SoC)中的調試組件定義了標準調試接口,其功能邏輯框圖如圖1所示。
圖1ARM ADI功能邏輯框圖
ADI中定義了一個由Debug Port(DP)和Access Port(AP)組成的調試訪問接口Debug Access Port(DAP),外部的調試設備統一由DAP來鏈接被調試的片上系統資源。
ADI中定義了一個單一的外部調試設備物理連接接口:Debug Port(DP)。ADI允許三種不同的DP實現:JTAG-DP,SWD-DP,SWJ-DP。其中JTAG-DP即為經典的JTAG調試機制物理接口,而SWD-DP則是ARM新引入的兩引腳串行線調試結構。SWJ-DP則為JTAG/SWD二合一接口。
同時,ADI還定義了訪問接口:Access Port(AP)。AP為DAP與被調試資源的鏈接提供了接口。AP通過資源特定的連接方式(例如一個debug bus)鏈接到被調試的資源,根據被鏈接調試資源類型的不同,ADI定義了兩類AP的實現:MEM-AP和JTAG-AP。MEM-AP用來鏈接到存儲器映射(Memory mapped)類型的資源,而JTAG-AP主要用來鏈接到經典的IEEE 1149.1 JTAG設備上。我們常用的是MEM-AP類型,通過對ARM存儲器映射機制下的系統資源的訪問,我們可以調試幾乎所有的片上資源。而當我們使用IEEE 1149.1 JTAG調試設備做掃描邊界測試時,我們需要用到JTAG-AP實現。
3基于Cortex M3內核調試的MCU實現
首先,我們先對比兩個具體的實現方案。其一是意法半導體公司的STM32MCU,而另一個則為德州儀器公司的Stellaris。
圖2所示為STM32的調試體系構架。
圖3所示為Stellaris的調試體系構架。
圖3Stellaris MCU調試支持框圖
STM32MCU和Stellaris MCU的設計都遵循了ARM的ADI規范。
STM32選用了SWD和JTAG二合一DP接口:SWJ-DP,這樣的選擇方便了對老式JTAG調試設備的兼容。通過固定的操作脈沖,調試設備開發者可以輕松實現在JTAG和SWD方式之間的切換。而不同的硬件設備是復用接口引腳的,這對引腳分配嚴苛的MCU設計提供了很大便利。而Stellaris則只選用了SWD-DP一種物理連接實現,這體現了TI設計人員對SWD調試方式能力的信任與把握,因為節省出來的不僅僅是管腳,更是硅片的體積和成本。
同時,STM32的AHB-AP是一種MEM-AP的實現。通過Internal private peripheral bus(PPB),調試者可以訪問掛接到ARM高性能總線的所有片上資源。而TI的Stellaris也通過類似的機制實現了對片上資源的訪問控制。
ST公司在STM32系列的不同型號中還提供了可選的調試組件,當然,這得益于CoreSight調試構架中的組件化、模塊化設計。其中DWT、FPB的結合給調試者提供了數據觀察點、硬件斷點和FLASH重映射等功能,而ITM、ETM和TPIU的結合給調試者提供了不輸于大型系統調試方案的指令流、數據流監控功能。而TI的Stellaris并沒有提供可選的ETM組件。TI官方也給出了令人信服的解釋:嵌入式跟蹤宏單元(ETM)旨在為開發工具提供明確的逐指令跟蹤信息。該功能對較復雜的微處理器尤其實用,特別是那些所用片上資源太過動態,難以實現外部實時決定性的處理器。例如,片上高速緩存會根據程序環路執行的具體變化而變化,同時數據和輸入也在不斷變化,因此無法以合理的價格通過外部工具來復制。但是,MCU不使用高速緩存,所以ETM作用不大。
由以上分析可以得出,只要不同的廠商在設計基于ARM內核芯片時遵循了ARM相關協議和規范,開發人員在選擇和開發芯片時就能觸類旁通,大大減少相應的學習開發時間,降低開發成本。同時,更多的開發工具和開發平臺將能得到很好的重用,這對開發者來說是一個巨大的成本優勢。
4JTAG和SWD對比
Serial Wire Debug(SWD)是ARM體系結構中定義的新一代調試機制,具有占有引腳少,高速下運行穩定等特點,其所使用的基于分組的協議可提供比JTAG快一倍多的數據速率,SWD的誕生就旨在替代原始的JTAG調試方式。圖4所示為SWD下ARM調試機制示意圖。
圖4SWD作為接口的CoreSight調試與跟蹤系統
圖5展示了SWD與JTAG接口引腳的對比圖。從圖5中可以看出,SWD協議僅僅需要一個時鐘引腳和一個數據傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結合,提供類printf形式的跟蹤調試信息。相比于傳統的JTAG調試協議,新的SWD調試方式的各類優勢不言而喻。同時,在現有的SWD接口中,我們仍然可以使用JTAG的邊界掃描測試功能,當然,這需要我們具有JTAG-AP接口的實現。
JTAG 1149.1 Serial Wire Debug
Pin Purpose Pin Purpose
TCK Clock SWCLK Clock
TMS State Machine Control SWDIO Data In&Out
TDI Data In - -
TDO Data Out SWO -
TRST Reset - -
圖5SWD與JTAG 1149.1引腳對比
5結語
ARM的新一代調試體系結構極大的增強了ARM體系結構功能的完整性和健壯性,及時轉入新的調試體系結構是必要的,也是具有極大好處的。我們在選擇功能芯片時,在考慮了成本和開發難度的前提下,對芯片可維護性和延續性的考慮也要列入其中。同時,在選用開發工具和平臺的過程中,是否支持ARM新的調試機制也應該成為我們一個重要選擇因素。
參 考 文 獻
[1]ARM.Coresight[EB/OL].[2013-10-25].http://www.arm.com/zh/products/processors/cortex-m/index.php:ARM Ltd,2013
[2]ARM.ARM Cortex-M3 Technical Reference Manual[EB/OL].[2006].UK:ARM Ltd,2006.
[3]BOOTH Jean Anne and COZART Sun.Serial Wire Debug—IdealforMicrocontrollers[R].USA:TexasInstruments,2010.
[4]ARM.CoreSight Architecture Specification [EB/OL].[2013].UK:ARM Ltd,2013.
[5]ARM.ARM Debug InterfaceArchitecture SpecificationADIv5.0 to ADIv5.2 [EB/OL].[2013].UK:ARM Ltd,2013.
[6]STMicroelectronics.STM32 Reference manual[EB/OL].[2011-8-23].Switzerland:STMicroelectronics,2011.
[7]TI.StellarisReference manual[EB/OL].USA:Texas Instruments,2010.
[8]ASHFIELD Eddie.Serial Wire Debug and the CoreSightDebug and Trace Architecture[R].UK:ARM Ltd,2010.
[9]WILLIAMS Michael.Low Pin-count Debug Interfaces forMulti-device Systems[R].UK:ARM Ltd,2009.
[10]IEEE Computer Society.IEEE Std 1149.7?-2009 IEEE Standard for Reduced-Pin andEnhanced-Functionality Test AccessPort andBoundary-Scan Architecture[S].USA:IEEE Computer Society,2010.
————————————————
收稿日期:2014-04-02
基金項目:大連民族學院大學生創新創業國家級項目(X2013008)
由以上分析可以得出,只要不同的廠商在設計基于ARM內核芯片時遵循了ARM相關協議和規范,開發人員在選擇和開發芯片時就能觸類旁通,大大減少相應的學習開發時間,降低開發成本。同時,更多的開發工具和開發平臺將能得到很好的重用,這對開發者來說是一個巨大的成本優勢。
4JTAG和SWD對比
Serial Wire Debug(SWD)是ARM體系結構中定義的新一代調試機制,具有占有引腳少,高速下運行穩定等特點,其所使用的基于分組的協議可提供比JTAG快一倍多的數據速率,SWD的誕生就旨在替代原始的JTAG調試方式。圖4所示為SWD下ARM調試機制示意圖。
圖4SWD作為接口的CoreSight調試與跟蹤系統
圖5展示了SWD與JTAG接口引腳的對比圖。從圖5中可以看出,SWD協議僅僅需要一個時鐘引腳和一個數據傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結合,提供類printf形式的跟蹤調試信息。相比于傳統的JTAG調試協議,新的SWD調試方式的各類優勢不言而喻。同時,在現有的SWD接口中,我們仍然可以使用JTAG的邊界掃描測試功能,當然,這需要我們具有JTAG-AP接口的實現。
JTAG 1149.1 Serial Wire Debug
Pin Purpose Pin Purpose
TCK Clock SWCLK Clock
TMS State Machine Control SWDIO Data In&Out
TDI Data In - -
TDO Data Out SWO -
TRST Reset - -
圖5SWD與JTAG 1149.1引腳對比
5結語
ARM的新一代調試體系結構極大的增強了ARM體系結構功能的完整性和健壯性,及時轉入新的調試體系結構是必要的,也是具有極大好處的。我們在選擇功能芯片時,在考慮了成本和開發難度的前提下,對芯片可維護性和延續性的考慮也要列入其中。同時,在選用開發工具和平臺的過程中,是否支持ARM新的調試機制也應該成為我們一個重要選擇因素。
參 考 文 獻
[1]ARM.Coresight[EB/OL].[2013-10-25].http://www.arm.com/zh/products/processors/cortex-m/index.php:ARM Ltd,2013
[2]ARM.ARM Cortex-M3 Technical Reference Manual[EB/OL].[2006].UK:ARM Ltd,2006.
[3]BOOTH Jean Anne and COZART Sun.Serial Wire Debug—IdealforMicrocontrollers[R].USA:TexasInstruments,2010.
[4]ARM.CoreSight Architecture Specification [EB/OL].[2013].UK:ARM Ltd,2013.
[5]ARM.ARM Debug InterfaceArchitecture SpecificationADIv5.0 to ADIv5.2 [EB/OL].[2013].UK:ARM Ltd,2013.
[6]STMicroelectronics.STM32 Reference manual[EB/OL].[2011-8-23].Switzerland:STMicroelectronics,2011.
[7]TI.StellarisReference manual[EB/OL].USA:Texas Instruments,2010.
[8]ASHFIELD Eddie.Serial Wire Debug and the CoreSightDebug and Trace Architecture[R].UK:ARM Ltd,2010.
[9]WILLIAMS Michael.Low Pin-count Debug Interfaces forMulti-device Systems[R].UK:ARM Ltd,2009.
[10]IEEE Computer Society.IEEE Std 1149.7?-2009 IEEE Standard for Reduced-Pin andEnhanced-Functionality Test AccessPort andBoundary-Scan Architecture[S].USA:IEEE Computer Society,2010.
————————————————
收稿日期:2014-04-02
基金項目:大連民族學院大學生創新創業國家級項目(X2013008)
由以上分析可以得出,只要不同的廠商在設計基于ARM內核芯片時遵循了ARM相關協議和規范,開發人員在選擇和開發芯片時就能觸類旁通,大大減少相應的學習開發時間,降低開發成本。同時,更多的開發工具和開發平臺將能得到很好的重用,這對開發者來說是一個巨大的成本優勢。
4JTAG和SWD對比
Serial Wire Debug(SWD)是ARM體系結構中定義的新一代調試機制,具有占有引腳少,高速下運行穩定等特點,其所使用的基于分組的協議可提供比JTAG快一倍多的數據速率,SWD的誕生就旨在替代原始的JTAG調試方式。圖4所示為SWD下ARM調試機制示意圖。
圖4SWD作為接口的CoreSight調試與跟蹤系統
圖5展示了SWD與JTAG接口引腳的對比圖。從圖5中可以看出,SWD協議僅僅需要一個時鐘引腳和一個數據傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結合,提供類printf形式的跟蹤調試信息。相比于傳統的JTAG調試協議,新的SWD調試方式的各類優勢不言而喻。同時,在現有的SWD接口中,我們仍然可以使用JTAG的邊界掃描測試功能,當然,這需要我們具有JTAG-AP接口的實現。
JTAG 1149.1 Serial Wire Debug
Pin Purpose Pin Purpose
TCK Clock SWCLK Clock
TMS State Machine Control SWDIO Data In&Out
TDI Data In - -
TDO Data Out SWO -
TRST Reset - -
圖5SWD與JTAG 1149.1引腳對比
5結語
ARM的新一代調試體系結構極大的增強了ARM體系結構功能的完整性和健壯性,及時轉入新的調試體系結構是必要的,也是具有極大好處的。我們在選擇功能芯片時,在考慮了成本和開發難度的前提下,對芯片可維護性和延續性的考慮也要列入其中。同時,在選用開發工具和平臺的過程中,是否支持ARM新的調試機制也應該成為我們一個重要選擇因素。
參 考 文 獻
[1]ARM.Coresight[EB/OL].[2013-10-25].http://www.arm.com/zh/products/processors/cortex-m/index.php:ARM Ltd,2013
[2]ARM.ARM Cortex-M3 Technical Reference Manual[EB/OL].[2006].UK:ARM Ltd,2006.
[3]BOOTH Jean Anne and COZART Sun.Serial Wire Debug—IdealforMicrocontrollers[R].USA:TexasInstruments,2010.
[4]ARM.CoreSight Architecture Specification [EB/OL].[2013].UK:ARM Ltd,2013.
[5]ARM.ARM Debug InterfaceArchitecture SpecificationADIv5.0 to ADIv5.2 [EB/OL].[2013].UK:ARM Ltd,2013.
[6]STMicroelectronics.STM32 Reference manual[EB/OL].[2011-8-23].Switzerland:STMicroelectronics,2011.
[7]TI.StellarisReference manual[EB/OL].USA:Texas Instruments,2010.
[8]ASHFIELD Eddie.Serial Wire Debug and the CoreSightDebug and Trace Architecture[R].UK:ARM Ltd,2010.
[9]WILLIAMS Michael.Low Pin-count Debug Interfaces forMulti-device Systems[R].UK:ARM Ltd,2009.
[10]IEEE Computer Society.IEEE Std 1149.7?-2009 IEEE Standard for Reduced-Pin andEnhanced-Functionality Test AccessPort andBoundary-Scan Architecture[S].USA:IEEE Computer Society,2010.
————————————————
收稿日期:2014-04-02
基金項目:大連民族學院大學生創新創業國家級項目(X2013008)