国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ARM CoreSight調(diào)試與追蹤體系在Cortex M3內(nèi)核中的實(shí)現(xiàn)

2014-09-24 16:34:45韓格欣許翔劉嘯宇代麗男薄純娟
物聯(lián)網(wǎng)技術(shù) 2014年7期
關(guān)鍵詞:調(diào)試

韓格欣+許翔+劉嘯宇+代麗男+薄純娟

摘 要:以ARM Core Sight Architecture Specification規(guī)范和ARM Debug Interface Architecture Specification規(guī)范為出發(fā)點(diǎn),分析了ARM CoreSight調(diào)試與追蹤體系在ARM Cortex M3內(nèi)核中的實(shí)現(xiàn)過(guò)程。同時(shí),對(duì)比分析了新的Serial Wire Debug調(diào)試技術(shù)和經(jīng)典的JTAG調(diào)試技術(shù)的異同。

關(guān)鍵詞:SWD;JTAG;調(diào)試;Cortex M3;CoreSight

中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2014)07-0022-03

0引言

在芯片制造技術(shù)飛速發(fā)展的今天,高速、高集成度、低功耗的極致追求給芯片設(shè)計(jì)人員提出了一個(gè)又一個(gè)挑戰(zhàn),而在這樣的片上系統(tǒng)中調(diào)試與追蹤內(nèi)核狀態(tài)更是芯片調(diào)試技術(shù)的一個(gè)難題[1]。為了解決非侵入式、實(shí)時(shí)調(diào)試等多類問(wèn)題,ARM引入了全新的ARM CoreSight調(diào)試體系結(jié)構(gòu)。CoreSight是ARM公司于2003年開(kāi)發(fā)的、綜合而全面的調(diào)試與跟蹤架構(gòu)。部分ARM9與ARM11內(nèi)核采用早期版本的CoreSight,不過(guò)現(xiàn)在大范圍推廣的Cortex系列處理器已完全采用新版的調(diào)試體系并充分證明了它的優(yōu)勢(shì)。CoreSight包括眾多組件,每一種都能協(xié)助外部主機(jī)以極高的效率了解芯片的實(shí)時(shí)運(yùn)行情況。芯片中內(nèi)嵌的特定組件和為系統(tǒng)設(shè)計(jì)人員提供的調(diào)試工具使開(kāi)發(fā)人員可以友好的使用CoreSight構(gòu)架調(diào)試和跟蹤片上系統(tǒng),而不用再通過(guò)直接設(shè)置寄存器、遵循特定協(xié)議和處理電平信號(hào)來(lái)使用 。

為了擴(kuò)大成本和功耗敏感的MCU和終端應(yīng)用(如智能測(cè)量、人機(jī)接口設(shè)備、汽車和工業(yè)控制系統(tǒng)、大型家用電器、消費(fèi)性產(chǎn)品和醫(yī)療器械)市場(chǎng),ARM公司針對(duì)這類混合信號(hào)設(shè)備進(jìn)行了優(yōu)化,貫徹了新一代的CoreSight調(diào)試構(gòu)架,推出了新一代Cortex M系列微控制器。而意法半導(dǎo)體公司(ST)推出的STM32、德州儀器公司(TI)推出的Stellaris,都是一種ARM Cortex M3內(nèi)核的實(shí)現(xiàn)。32位RISC處理器、低功耗、高性能模擬技術(shù)、高速DMA通道、豐富的外設(shè)和新一代的調(diào)試體系,都賦予了其不俗的表現(xiàn)。

然而,新一代調(diào)試構(gòu)架定義的多種功能對(duì)不熟悉新調(diào)試機(jī)制的開(kāi)發(fā)者來(lái)說(shuō)略嫌繁瑣,特別是傳統(tǒng)JTAG調(diào)試和新一代的Serial Wire Debug(SWD)調(diào)試二合一的調(diào)試接口使不少開(kāi)發(fā)者無(wú)法理清頭緒。因此本文將從整體上分析ARM CoreSight調(diào)試構(gòu)架和ARM Debug Interface Architecture(ADI),并通過(guò)對(duì)比ST和TI推出的芯片來(lái)明確新調(diào)試體系的實(shí)現(xiàn)方式,為開(kāi)發(fā)者掃清調(diào)試障礙。

1ARM CoreSight調(diào)試構(gòu)架

ARM新一代CoreSight調(diào)試構(gòu)架提供了微處理器所需全部的調(diào)試與追蹤功能。片上程序流可通過(guò)豐富的硬件執(zhí)行斷點(diǎn)與高級(jí)觀察點(diǎn)、矢量捕獲和元數(shù)據(jù)跟蹤功能進(jìn)行監(jiān)控,甚至在啟用全部中斷時(shí)也得到監(jiān)控。在處理器運(yùn)行的同時(shí)也能讀寫寄存器與存儲(chǔ)器中的數(shù)據(jù),并能對(duì)片上資源的使用進(jìn)行驗(yàn)證。代碼描述可確定處理器在一定時(shí)間內(nèi)的工作情況,從而明確處理器何時(shí)會(huì)在無(wú)限循環(huán)中中止,或在何處全力加速程序執(zhí)行。此外,我們通過(guò)新的調(diào)試構(gòu)架還能看出哪些代碼從不執(zhí)行,從而釋放出寶貴的片上資源。程序員可確認(rèn)脈寬調(diào)制器是否能滿足要求,另外還可檢查堆棧是否存在潛在問(wèn)題,進(jìn)而確定意外情況的反饋以及狀態(tài)、條件碼和分支的有效性 。

ARM新一代調(diào)試構(gòu)架提供了對(duì)多種調(diào)試方式的支持。經(jīng)典的JTAG調(diào)試方式經(jīng)過(guò)多年、大范圍的應(yīng)用,已經(jīng)具有了成熟、規(guī)范、通行等優(yōu)點(diǎn)。然而,現(xiàn)在的MCU對(duì)于速度和封裝的要求已經(jīng)越來(lái)越高,傳統(tǒng)的4線(5線可選)JTAG協(xié)議已經(jīng)不能滿足對(duì)芯片封裝尺寸的嚴(yán)格要求和對(duì)引腳需求的嚴(yán)格控制。在這種需求下,ARM在新一代調(diào)試體系中引入了旨在替代舊式JTAG調(diào)試方式的Serial Wire Debug(SWD)調(diào)試方式,它很好地改良了ARM體系結(jié)構(gòu)下的產(chǎn)品調(diào)試機(jī)制。

ARM CoreSight構(gòu)架中的組件是通過(guò)存儲(chǔ)器映射機(jī)制訪問(wèn)它們自身的控制寄存器(例如AMBA 3 APB接口),而不通過(guò)傳統(tǒng)的JTAG訪問(wèn)其組件資源。ARM選擇這樣的實(shí)現(xiàn)方式有很多種原因,例如:傳統(tǒng)JTAG方式的時(shí)鐘信號(hào)TCK必須工作在所有調(diào)試組件共有的最低頻率,這極大限制了調(diào)試的速度(也許還將面對(duì)休眠態(tài)、工作在低頻率狀態(tài)的片上組件);傳統(tǒng)的同步JTAG接口在一個(gè)設(shè)備掉電時(shí)會(huì)導(dǎo)致整個(gè)調(diào)試鏈的終止等 。

ARM CoreSightarchitecture包含三類子構(gòu)架:

(1) Visible component architecture:規(guī)定了所有組件所必須遵守的、共有的編程者模型(軟件接口)。規(guī)定了對(duì)組件可用的拓?fù)涮皆L結(jié)構(gòu);

(2) Reusable component architecture:規(guī)定了調(diào)試體系的物理接口;

(3) System architecture:規(guī)定了系統(tǒng)級(jí)需要的時(shí)鐘、控制信息、ROM表、追蹤信息格式等。

在ARM CoreSight構(gòu)架基礎(chǔ)上,ARM指定了具體的調(diào)試接口規(guī)范,旨在統(tǒng)一所有采用CoreSight調(diào)試體系的片上系統(tǒng)。

2ARM調(diào)試接口規(guī)范

采用ARM設(shè)計(jì)IP的芯片廠商在設(shè)計(jì)調(diào)試支持的時(shí)候,都必須要遵守ARM Debug InterfaceArchitecture Specification(ARM調(diào)試接口體系結(jié)構(gòu)規(guī)范,ADI)。ARM調(diào)試接口規(guī)范為嵌入式片上系統(tǒng)(SoC)中的調(diào)試組件定義了標(biāo)準(zhǔn)調(diào)試接口,其功能邏輯框圖如圖1所示。

圖1ARM ADI功能邏輯框圖

ADI中定義了一個(gè)由Debug Port(DP)和Access Port(AP)組成的調(diào)試訪問(wèn)接口Debug Access Port(DAP),外部的調(diào)試設(shè)備統(tǒng)一由DAP來(lái)鏈接被調(diào)試的片上系統(tǒng)資源。

ADI中定義了一個(gè)單一的外部調(diào)試設(shè)備物理連接接口:Debug Port(DP)。ADI允許三種不同的DP實(shí)現(xiàn):JTAG-DP,SWD-DP,SWJ-DP。其中JTAG-DP即為經(jīng)典的JTAG調(diào)試機(jī)制物理接口,而SWD-DP則是ARM新引入的兩引腳串行線調(diào)試結(jié)構(gòu)。SWJ-DP則為JTAG/SWD二合一接口。

同時(shí),ADI還定義了訪問(wèn)接口:Access Port(AP)。AP為DAP與被調(diào)試資源的鏈接提供了接口。AP通過(guò)資源特定的連接方式(例如一個(gè)debug bus)鏈接到被調(diào)試的資源,根據(jù)被鏈接調(diào)試資源類型的不同,ADI定義了兩類AP的實(shí)現(xiàn):MEM-AP和JTAG-AP。MEM-AP用來(lái)鏈接到存儲(chǔ)器映射(Memory mapped)類型的資源,而JTAG-AP主要用來(lái)鏈接到經(jīng)典的IEEE 1149.1 JTAG設(shè)備上。我們常用的是MEM-AP類型,通過(guò)對(duì)ARM存儲(chǔ)器映射機(jī)制下的系統(tǒng)資源的訪問(wèn),我們可以調(diào)試幾乎所有的片上資源。而當(dāng)我們使用IEEE 1149.1 JTAG調(diào)試設(shè)備做掃描邊界測(cè)試時(shí),我們需要用到JTAG-AP實(shí)現(xiàn)。

3基于Cortex M3內(nèi)核調(diào)試的MCU實(shí)現(xiàn)

首先,我們先對(duì)比兩個(gè)具體的實(shí)現(xiàn)方案。其一是意法半導(dǎo)體公司的STM32MCU,而另一個(gè)則為德州儀器公司的Stellaris。

圖2所示為STM32的調(diào)試體系構(gòu)架。

圖3所示為Stellaris的調(diào)試體系構(gòu)架。

圖3Stellaris MCU調(diào)試支持框圖

STM32MCU和Stellaris MCU的設(shè)計(jì)都遵循了ARM的ADI規(guī)范。

STM32選用了SWD和JTAG二合一DP接口:SWJ-DP,這樣的選擇方便了對(duì)老式JTAG調(diào)試設(shè)備的兼容。通過(guò)固定的操作脈沖,調(diào)試設(shè)備開(kāi)發(fā)者可以輕松實(shí)現(xiàn)在JTAG和SWD方式之間的切換。而不同的硬件設(shè)備是復(fù)用接口引腳的,這對(duì)引腳分配嚴(yán)苛的MCU設(shè)計(jì)提供了很大便利。而Stellaris則只選用了SWD-DP一種物理連接實(shí)現(xiàn),這體現(xiàn)了TI設(shè)計(jì)人員對(duì)SWD調(diào)試方式能力的信任與把握,因?yàn)楣?jié)省出來(lái)的不僅僅是管腳,更是硅片的體積和成本。

同時(shí),STM32的AHB-AP是一種MEM-AP的實(shí)現(xiàn)。通過(guò)Internal private peripheral bus(PPB),調(diào)試者可以訪問(wèn)掛接到ARM高性能總線的所有片上資源。而TI的Stellaris也通過(guò)類似的機(jī)制實(shí)現(xiàn)了對(duì)片上資源的訪問(wèn)控制。

ST公司在STM32系列的不同型號(hào)中還提供了可選的調(diào)試組件,當(dāng)然,這得益于CoreSight調(diào)試構(gòu)架中的組件化、模塊化設(shè)計(jì)。其中DWT、FPB的結(jié)合給調(diào)試者提供了數(shù)據(jù)觀察點(diǎn)、硬件斷點(diǎn)和FLASH重映射等功能,而ITM、ETM和TPIU的結(jié)合給調(diào)試者提供了不輸于大型系統(tǒng)調(diào)試方案的指令流、數(shù)據(jù)流監(jiān)控功能。而TI的Stellaris并沒(méi)有提供可選的ETM組件。TI官方也給出了令人信服的解釋:嵌入式跟蹤宏單元(ETM)旨在為開(kāi)發(fā)工具提供明確的逐指令跟蹤信息。該功能對(duì)較復(fù)雜的微處理器尤其實(shí)用,特別是那些所用片上資源太過(guò)動(dòng)態(tài),難以實(shí)現(xiàn)外部實(shí)時(shí)決定性的處理器。例如,片上高速緩存會(huì)根據(jù)程序環(huán)路執(zhí)行的具體變化而變化,同時(shí)數(shù)據(jù)和輸入也在不斷變化,因此無(wú)法以合理的價(jià)格通過(guò)外部工具來(lái)復(fù)制。但是,MCU不使用高速緩存,所以ETM作用不大。

由以上分析可以得出,只要不同的廠商在設(shè)計(jì)基于ARM內(nèi)核芯片時(shí)遵循了ARM相關(guān)協(xié)議和規(guī)范,開(kāi)發(fā)人員在選擇和開(kāi)發(fā)芯片時(shí)就能觸類旁通,大大減少相應(yīng)的學(xué)習(xí)開(kāi)發(fā)時(shí)間,降低開(kāi)發(fā)成本。同時(shí),更多的開(kāi)發(fā)工具和開(kāi)發(fā)平臺(tái)將能得到很好的重用,這對(duì)開(kāi)發(fā)者來(lái)說(shuō)是一個(gè)巨大的成本優(yōu)勢(shì)。

4JTAG和SWD對(duì)比

Serial Wire Debug(SWD)是ARM體系結(jié)構(gòu)中定義的新一代調(diào)試機(jī)制,具有占有引腳少,高速下運(yùn)行穩(wěn)定等特點(diǎn),其所使用的基于分組的協(xié)議可提供比JTAG快一倍多的數(shù)據(jù)速率,SWD的誕生就旨在替代原始的JTAG調(diào)試方式。圖4所示為SWD下ARM調(diào)試機(jī)制示意圖。

圖4SWD作為接口的CoreSight調(diào)試與跟蹤系統(tǒng)

圖5展示了SWD與JTAG接口引腳的對(duì)比圖。從圖5中可以看出,SWD協(xié)議僅僅需要一個(gè)時(shí)鐘引腳和一個(gè)數(shù)據(jù)傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結(jié)合,提供類printf形式的跟蹤調(diào)試信息。相比于傳統(tǒng)的JTAG調(diào)試協(xié)議,新的SWD調(diào)試方式的各類優(yōu)勢(shì)不言而喻。同時(shí),在現(xiàn)有的SWD接口中,我們?nèi)匀豢梢允褂肑TAG的邊界掃描測(cè)試功能,當(dāng)然,這需要我們具有JTAG-AP接口的實(shí)現(xiàn)。

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引腳對(duì)比

5結(jié)語(yǔ)

ARM的新一代調(diào)試體系結(jié)構(gòu)極大的增強(qiáng)了ARM體系結(jié)構(gòu)功能的完整性和健壯性,及時(shí)轉(zhuǎn)入新的調(diào)試體系結(jié)構(gòu)是必要的,也是具有極大好處的。我們?cè)谶x擇功能芯片時(shí),在考慮了成本和開(kāi)發(fā)難度的前提下,對(duì)芯片可維護(hù)性和延續(xù)性的考慮也要列入其中。同時(shí),在選用開(kāi)發(fā)工具和平臺(tái)的過(guò)程中,是否支持ARM新的調(diào)試機(jī)制也應(yīng)該成為我們一個(gè)重要選擇因素。

參 考 文 獻(xiàn)

[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引言

在芯片制造技術(shù)飛速發(fā)展的今天,高速、高集成度、低功耗的極致追求給芯片設(shè)計(jì)人員提出了一個(gè)又一個(gè)挑戰(zhàn),而在這樣的片上系統(tǒng)中調(diào)試與追蹤內(nèi)核狀態(tài)更是芯片調(diào)試技術(shù)的一個(gè)難題[1]。為了解決非侵入式、實(shí)時(shí)調(diào)試等多類問(wèn)題,ARM引入了全新的ARM CoreSight調(diào)試體系結(jié)構(gòu)。CoreSight是ARM公司于2003年開(kāi)發(fā)的、綜合而全面的調(diào)試與跟蹤架構(gòu)。部分ARM9與ARM11內(nèi)核采用早期版本的CoreSight,不過(guò)現(xiàn)在大范圍推廣的Cortex系列處理器已完全采用新版的調(diào)試體系并充分證明了它的優(yōu)勢(shì)。CoreSight包括眾多組件,每一種都能協(xié)助外部主機(jī)以極高的效率了解芯片的實(shí)時(shí)運(yùn)行情況。芯片中內(nèi)嵌的特定組件和為系統(tǒng)設(shè)計(jì)人員提供的調(diào)試工具使開(kāi)發(fā)人員可以友好的使用CoreSight構(gòu)架調(diào)試和跟蹤片上系統(tǒng),而不用再通過(guò)直接設(shè)置寄存器、遵循特定協(xié)議和處理電平信號(hào)來(lái)使用 。

為了擴(kuò)大成本和功耗敏感的MCU和終端應(yīng)用(如智能測(cè)量、人機(jī)接口設(shè)備、汽車和工業(yè)控制系統(tǒng)、大型家用電器、消費(fèi)性產(chǎn)品和醫(yī)療器械)市場(chǎng),ARM公司針對(duì)這類混合信號(hào)設(shè)備進(jìn)行了優(yōu)化,貫徹了新一代的CoreSight調(diào)試構(gòu)架,推出了新一代Cortex M系列微控制器。而意法半導(dǎo)體公司(ST)推出的STM32、德州儀器公司(TI)推出的Stellaris,都是一種ARM Cortex M3內(nèi)核的實(shí)現(xiàn)。32位RISC處理器、低功耗、高性能模擬技術(shù)、高速DMA通道、豐富的外設(shè)和新一代的調(diào)試體系,都賦予了其不俗的表現(xiàn)。

然而,新一代調(diào)試構(gòu)架定義的多種功能對(duì)不熟悉新調(diào)試機(jī)制的開(kāi)發(fā)者來(lái)說(shuō)略嫌繁瑣,特別是傳統(tǒng)JTAG調(diào)試和新一代的Serial Wire Debug(SWD)調(diào)試二合一的調(diào)試接口使不少開(kāi)發(fā)者無(wú)法理清頭緒。因此本文將從整體上分析ARM CoreSight調(diào)試構(gòu)架和ARM Debug Interface Architecture(ADI),并通過(guò)對(duì)比ST和TI推出的芯片來(lái)明確新調(diào)試體系的實(shí)現(xiàn)方式,為開(kāi)發(fā)者掃清調(diào)試障礙。

1ARM CoreSight調(diào)試構(gòu)架

ARM新一代CoreSight調(diào)試構(gòu)架提供了微處理器所需全部的調(diào)試與追蹤功能。片上程序流可通過(guò)豐富的硬件執(zhí)行斷點(diǎn)與高級(jí)觀察點(diǎn)、矢量捕獲和元數(shù)據(jù)跟蹤功能進(jìn)行監(jiān)控,甚至在啟用全部中斷時(shí)也得到監(jiān)控。在處理器運(yùn)行的同時(shí)也能讀寫寄存器與存儲(chǔ)器中的數(shù)據(jù),并能對(duì)片上資源的使用進(jìn)行驗(yàn)證。代碼描述可確定處理器在一定時(shí)間內(nèi)的工作情況,從而明確處理器何時(shí)會(huì)在無(wú)限循環(huán)中中止,或在何處全力加速程序執(zhí)行。此外,我們通過(guò)新的調(diào)試構(gòu)架還能看出哪些代碼從不執(zhí)行,從而釋放出寶貴的片上資源。程序員可確認(rèn)脈寬調(diào)制器是否能滿足要求,另外還可檢查堆棧是否存在潛在問(wèn)題,進(jìn)而確定意外情況的反饋以及狀態(tài)、條件碼和分支的有效性 。

ARM新一代調(diào)試構(gòu)架提供了對(duì)多種調(diào)試方式的支持。經(jīng)典的JTAG調(diào)試方式經(jīng)過(guò)多年、大范圍的應(yīng)用,已經(jīng)具有了成熟、規(guī)范、通行等優(yōu)點(diǎn)。然而,現(xiàn)在的MCU對(duì)于速度和封裝的要求已經(jīng)越來(lái)越高,傳統(tǒng)的4線(5線可選)JTAG協(xié)議已經(jīng)不能滿足對(duì)芯片封裝尺寸的嚴(yán)格要求和對(duì)引腳需求的嚴(yán)格控制。在這種需求下,ARM在新一代調(diào)試體系中引入了旨在替代舊式JTAG調(diào)試方式的Serial Wire Debug(SWD)調(diào)試方式,它很好地改良了ARM體系結(jié)構(gòu)下的產(chǎn)品調(diào)試機(jī)制。

ARM CoreSight構(gòu)架中的組件是通過(guò)存儲(chǔ)器映射機(jī)制訪問(wèn)它們自身的控制寄存器(例如AMBA 3 APB接口),而不通過(guò)傳統(tǒng)的JTAG訪問(wèn)其組件資源。ARM選擇這樣的實(shí)現(xiàn)方式有很多種原因,例如:傳統(tǒng)JTAG方式的時(shí)鐘信號(hào)TCK必須工作在所有調(diào)試組件共有的最低頻率,這極大限制了調(diào)試的速度(也許還將面對(duì)休眠態(tài)、工作在低頻率狀態(tài)的片上組件);傳統(tǒng)的同步JTAG接口在一個(gè)設(shè)備掉電時(shí)會(huì)導(dǎo)致整個(gè)調(diào)試鏈的終止等 。

ARM CoreSightarchitecture包含三類子構(gòu)架:

(1) Visible component architecture:規(guī)定了所有組件所必須遵守的、共有的編程者模型(軟件接口)。規(guī)定了對(duì)組件可用的拓?fù)涮皆L結(jié)構(gòu);

(2) Reusable component architecture:規(guī)定了調(diào)試體系的物理接口;

(3) System architecture:規(guī)定了系統(tǒng)級(jí)需要的時(shí)鐘、控制信息、ROM表、追蹤信息格式等。

在ARM CoreSight構(gòu)架基礎(chǔ)上,ARM指定了具體的調(diào)試接口規(guī)范,旨在統(tǒng)一所有采用CoreSight調(diào)試體系的片上系統(tǒng)。

2ARM調(diào)試接口規(guī)范

采用ARM設(shè)計(jì)IP的芯片廠商在設(shè)計(jì)調(diào)試支持的時(shí)候,都必須要遵守ARM Debug InterfaceArchitecture Specification(ARM調(diào)試接口體系結(jié)構(gòu)規(guī)范,ADI)。ARM調(diào)試接口規(guī)范為嵌入式片上系統(tǒng)(SoC)中的調(diào)試組件定義了標(biāo)準(zhǔn)調(diào)試接口,其功能邏輯框圖如圖1所示。

圖1ARM ADI功能邏輯框圖

ADI中定義了一個(gè)由Debug Port(DP)和Access Port(AP)組成的調(diào)試訪問(wèn)接口Debug Access Port(DAP),外部的調(diào)試設(shè)備統(tǒng)一由DAP來(lái)鏈接被調(diào)試的片上系統(tǒng)資源。

ADI中定義了一個(gè)單一的外部調(diào)試設(shè)備物理連接接口:Debug Port(DP)。ADI允許三種不同的DP實(shí)現(xiàn):JTAG-DP,SWD-DP,SWJ-DP。其中JTAG-DP即為經(jīng)典的JTAG調(diào)試機(jī)制物理接口,而SWD-DP則是ARM新引入的兩引腳串行線調(diào)試結(jié)構(gòu)。SWJ-DP則為JTAG/SWD二合一接口。

同時(shí),ADI還定義了訪問(wèn)接口:Access Port(AP)。AP為DAP與被調(diào)試資源的鏈接提供了接口。AP通過(guò)資源特定的連接方式(例如一個(gè)debug bus)鏈接到被調(diào)試的資源,根據(jù)被鏈接調(diào)試資源類型的不同,ADI定義了兩類AP的實(shí)現(xiàn):MEM-AP和JTAG-AP。MEM-AP用來(lái)鏈接到存儲(chǔ)器映射(Memory mapped)類型的資源,而JTAG-AP主要用來(lái)鏈接到經(jīng)典的IEEE 1149.1 JTAG設(shè)備上。我們常用的是MEM-AP類型,通過(guò)對(duì)ARM存儲(chǔ)器映射機(jī)制下的系統(tǒng)資源的訪問(wèn),我們可以調(diào)試幾乎所有的片上資源。而當(dāng)我們使用IEEE 1149.1 JTAG調(diào)試設(shè)備做掃描邊界測(cè)試時(shí),我們需要用到JTAG-AP實(shí)現(xiàn)。

3基于Cortex M3內(nèi)核調(diào)試的MCU實(shí)現(xiàn)

首先,我們先對(duì)比兩個(gè)具體的實(shí)現(xiàn)方案。其一是意法半導(dǎo)體公司的STM32MCU,而另一個(gè)則為德州儀器公司的Stellaris。

圖2所示為STM32的調(diào)試體系構(gòu)架。

圖3所示為Stellaris的調(diào)試體系構(gòu)架。

圖3Stellaris MCU調(diào)試支持框圖

STM32MCU和Stellaris MCU的設(shè)計(jì)都遵循了ARM的ADI規(guī)范。

STM32選用了SWD和JTAG二合一DP接口:SWJ-DP,這樣的選擇方便了對(duì)老式JTAG調(diào)試設(shè)備的兼容。通過(guò)固定的操作脈沖,調(diào)試設(shè)備開(kāi)發(fā)者可以輕松實(shí)現(xiàn)在JTAG和SWD方式之間的切換。而不同的硬件設(shè)備是復(fù)用接口引腳的,這對(duì)引腳分配嚴(yán)苛的MCU設(shè)計(jì)提供了很大便利。而Stellaris則只選用了SWD-DP一種物理連接實(shí)現(xiàn),這體現(xiàn)了TI設(shè)計(jì)人員對(duì)SWD調(diào)試方式能力的信任與把握,因?yàn)楣?jié)省出來(lái)的不僅僅是管腳,更是硅片的體積和成本。

同時(shí),STM32的AHB-AP是一種MEM-AP的實(shí)現(xiàn)。通過(guò)Internal private peripheral bus(PPB),調(diào)試者可以訪問(wèn)掛接到ARM高性能總線的所有片上資源。而TI的Stellaris也通過(guò)類似的機(jī)制實(shí)現(xiàn)了對(duì)片上資源的訪問(wèn)控制。

ST公司在STM32系列的不同型號(hào)中還提供了可選的調(diào)試組件,當(dāng)然,這得益于CoreSight調(diào)試構(gòu)架中的組件化、模塊化設(shè)計(jì)。其中DWT、FPB的結(jié)合給調(diào)試者提供了數(shù)據(jù)觀察點(diǎn)、硬件斷點(diǎn)和FLASH重映射等功能,而ITM、ETM和TPIU的結(jié)合給調(diào)試者提供了不輸于大型系統(tǒng)調(diào)試方案的指令流、數(shù)據(jù)流監(jiān)控功能。而TI的Stellaris并沒(méi)有提供可選的ETM組件。TI官方也給出了令人信服的解釋:嵌入式跟蹤宏單元(ETM)旨在為開(kāi)發(fā)工具提供明確的逐指令跟蹤信息。該功能對(duì)較復(fù)雜的微處理器尤其實(shí)用,特別是那些所用片上資源太過(guò)動(dòng)態(tài),難以實(shí)現(xiàn)外部實(shí)時(shí)決定性的處理器。例如,片上高速緩存會(huì)根據(jù)程序環(huán)路執(zhí)行的具體變化而變化,同時(shí)數(shù)據(jù)和輸入也在不斷變化,因此無(wú)法以合理的價(jià)格通過(guò)外部工具來(lái)復(fù)制。但是,MCU不使用高速緩存,所以ETM作用不大。

由以上分析可以得出,只要不同的廠商在設(shè)計(jì)基于ARM內(nèi)核芯片時(shí)遵循了ARM相關(guān)協(xié)議和規(guī)范,開(kāi)發(fā)人員在選擇和開(kāi)發(fā)芯片時(shí)就能觸類旁通,大大減少相應(yīng)的學(xué)習(xí)開(kāi)發(fā)時(shí)間,降低開(kāi)發(fā)成本。同時(shí),更多的開(kāi)發(fā)工具和開(kāi)發(fā)平臺(tái)將能得到很好的重用,這對(duì)開(kāi)發(fā)者來(lái)說(shuō)是一個(gè)巨大的成本優(yōu)勢(shì)。

4JTAG和SWD對(duì)比

Serial Wire Debug(SWD)是ARM體系結(jié)構(gòu)中定義的新一代調(diào)試機(jī)制,具有占有引腳少,高速下運(yùn)行穩(wěn)定等特點(diǎn),其所使用的基于分組的協(xié)議可提供比JTAG快一倍多的數(shù)據(jù)速率,SWD的誕生就旨在替代原始的JTAG調(diào)試方式。圖4所示為SWD下ARM調(diào)試機(jī)制示意圖。

圖4SWD作為接口的CoreSight調(diào)試與跟蹤系統(tǒng)

圖5展示了SWD與JTAG接口引腳的對(duì)比圖。從圖5中可以看出,SWD協(xié)議僅僅需要一個(gè)時(shí)鐘引腳和一個(gè)數(shù)據(jù)傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結(jié)合,提供類printf形式的跟蹤調(diào)試信息。相比于傳統(tǒng)的JTAG調(diào)試協(xié)議,新的SWD調(diào)試方式的各類優(yōu)勢(shì)不言而喻。同時(shí),在現(xiàn)有的SWD接口中,我們?nèi)匀豢梢允褂肑TAG的邊界掃描測(cè)試功能,當(dāng)然,這需要我們具有JTAG-AP接口的實(shí)現(xiàn)。

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引腳對(duì)比

5結(jié)語(yǔ)

ARM的新一代調(diào)試體系結(jié)構(gòu)極大的增強(qiáng)了ARM體系結(jié)構(gòu)功能的完整性和健壯性,及時(shí)轉(zhuǎn)入新的調(diào)試體系結(jié)構(gòu)是必要的,也是具有極大好處的。我們?cè)谶x擇功能芯片時(shí),在考慮了成本和開(kāi)發(fā)難度的前提下,對(duì)芯片可維護(hù)性和延續(xù)性的考慮也要列入其中。同時(shí),在選用開(kāi)發(fā)工具和平臺(tái)的過(guò)程中,是否支持ARM新的調(diào)試機(jī)制也應(yīng)該成為我們一個(gè)重要選擇因素。

參 考 文 獻(xiàn)

[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

基金項(xiàng)目:大連民族學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)國(guó)家級(jí)項(xiàng)目(X2013008)

由以上分析可以得出,只要不同的廠商在設(shè)計(jì)基于ARM內(nèi)核芯片時(shí)遵循了ARM相關(guān)協(xié)議和規(guī)范,開(kāi)發(fā)人員在選擇和開(kāi)發(fā)芯片時(shí)就能觸類旁通,大大減少相應(yīng)的學(xué)習(xí)開(kāi)發(fā)時(shí)間,降低開(kāi)發(fā)成本。同時(shí),更多的開(kāi)發(fā)工具和開(kāi)發(fā)平臺(tái)將能得到很好的重用,這對(duì)開(kāi)發(fā)者來(lái)說(shuō)是一個(gè)巨大的成本優(yōu)勢(shì)。

4JTAG和SWD對(duì)比

Serial Wire Debug(SWD)是ARM體系結(jié)構(gòu)中定義的新一代調(diào)試機(jī)制,具有占有引腳少,高速下運(yùn)行穩(wěn)定等特點(diǎn),其所使用的基于分組的協(xié)議可提供比JTAG快一倍多的數(shù)據(jù)速率,SWD的誕生就旨在替代原始的JTAG調(diào)試方式。圖4所示為SWD下ARM調(diào)試機(jī)制示意圖。

圖4SWD作為接口的CoreSight調(diào)試與跟蹤系統(tǒng)

圖5展示了SWD與JTAG接口引腳的對(duì)比圖。從圖5中可以看出,SWD協(xié)議僅僅需要一個(gè)時(shí)鐘引腳和一個(gè)數(shù)據(jù)傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結(jié)合,提供類printf形式的跟蹤調(diào)試信息。相比于傳統(tǒng)的JTAG調(diào)試協(xié)議,新的SWD調(diào)試方式的各類優(yōu)勢(shì)不言而喻。同時(shí),在現(xiàn)有的SWD接口中,我們?nèi)匀豢梢允褂肑TAG的邊界掃描測(cè)試功能,當(dāng)然,這需要我們具有JTAG-AP接口的實(shí)現(xiàn)。

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引腳對(duì)比

5結(jié)語(yǔ)

ARM的新一代調(diào)試體系結(jié)構(gòu)極大的增強(qiáng)了ARM體系結(jié)構(gòu)功能的完整性和健壯性,及時(shí)轉(zhuǎn)入新的調(diào)試體系結(jié)構(gòu)是必要的,也是具有極大好處的。我們?cè)谶x擇功能芯片時(shí),在考慮了成本和開(kāi)發(fā)難度的前提下,對(duì)芯片可維護(hù)性和延續(xù)性的考慮也要列入其中。同時(shí),在選用開(kāi)發(fā)工具和平臺(tái)的過(guò)程中,是否支持ARM新的調(diào)試機(jī)制也應(yīng)該成為我們一個(gè)重要選擇因素。

參 考 文 獻(xiàn)

[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

基金項(xiàng)目:大連民族學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)國(guó)家級(jí)項(xiàng)目(X2013008)

由以上分析可以得出,只要不同的廠商在設(shè)計(jì)基于ARM內(nèi)核芯片時(shí)遵循了ARM相關(guān)協(xié)議和規(guī)范,開(kāi)發(fā)人員在選擇和開(kāi)發(fā)芯片時(shí)就能觸類旁通,大大減少相應(yīng)的學(xué)習(xí)開(kāi)發(fā)時(shí)間,降低開(kāi)發(fā)成本。同時(shí),更多的開(kāi)發(fā)工具和開(kāi)發(fā)平臺(tái)將能得到很好的重用,這對(duì)開(kāi)發(fā)者來(lái)說(shuō)是一個(gè)巨大的成本優(yōu)勢(shì)。

4JTAG和SWD對(duì)比

Serial Wire Debug(SWD)是ARM體系結(jié)構(gòu)中定義的新一代調(diào)試機(jī)制,具有占有引腳少,高速下運(yùn)行穩(wěn)定等特點(diǎn),其所使用的基于分組的協(xié)議可提供比JTAG快一倍多的數(shù)據(jù)速率,SWD的誕生就旨在替代原始的JTAG調(diào)試方式。圖4所示為SWD下ARM調(diào)試機(jī)制示意圖。

圖4SWD作為接口的CoreSight調(diào)試與跟蹤系統(tǒng)

圖5展示了SWD與JTAG接口引腳的對(duì)比圖。從圖5中可以看出,SWD協(xié)議僅僅需要一個(gè)時(shí)鐘引腳和一個(gè)數(shù)據(jù)傳輸引腳即可完成工作。而可選的SWO引腳可以與ITM組件結(jié)合,提供類printf形式的跟蹤調(diào)試信息。相比于傳統(tǒng)的JTAG調(diào)試協(xié)議,新的SWD調(diào)試方式的各類優(yōu)勢(shì)不言而喻。同時(shí),在現(xiàn)有的SWD接口中,我們?nèi)匀豢梢允褂肑TAG的邊界掃描測(cè)試功能,當(dāng)然,這需要我們具有JTAG-AP接口的實(shí)現(xiàn)。

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引腳對(duì)比

5結(jié)語(yǔ)

ARM的新一代調(diào)試體系結(jié)構(gòu)極大的增強(qiáng)了ARM體系結(jié)構(gòu)功能的完整性和健壯性,及時(shí)轉(zhuǎn)入新的調(diào)試體系結(jié)構(gòu)是必要的,也是具有極大好處的。我們?cè)谶x擇功能芯片時(shí),在考慮了成本和開(kāi)發(fā)難度的前提下,對(duì)芯片可維護(hù)性和延續(xù)性的考慮也要列入其中。同時(shí),在選用開(kāi)發(fā)工具和平臺(tái)的過(guò)程中,是否支持ARM新的調(diào)試機(jī)制也應(yīng)該成為我們一個(gè)重要選擇因素。

參 考 文 獻(xiàn)

[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

基金項(xiàng)目:大連民族學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)國(guó)家級(jí)項(xiàng)目(X2013008)

猜你喜歡
調(diào)試
基于航拍無(wú)人機(jī)的設(shè)計(jì)與調(diào)試
電子制作(2018年12期)2018-08-01 00:47:44
燃?xì)廨啓C(jī)發(fā)電機(jī)組運(yùn)行調(diào)試
FOCAS功能在機(jī)床調(diào)試中的開(kāi)發(fā)與應(yīng)用
核電廠主給水系統(tǒng)調(diào)試
無(wú)線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
電子制作(2017年19期)2017-02-02 07:08:38
調(diào)壓柜的調(diào)試與試運(yùn)行探討
工業(yè)電氣設(shè)備控制系統(tǒng)的安裝與調(diào)試
音頻處理器的調(diào)試
同期繼電保護(hù)調(diào)試中出現(xiàn)的問(wèn)題及處理
基于JTAG的SoC片上調(diào)試系統(tǒng)設(shè)計(jì)
关岭| 贵州省| 卢湾区| 安泽县| 德保县| 南靖县| 怀宁县| 柯坪县| 耒阳市| 黄龙县| 云安县| 宣武区| 天门市| 南开区| 安溪县| 义乌市| 息烽县| 云浮市| 天门市| 漯河市| 剑川县| 平江县| 界首市| 阿拉善右旗| 海宁市| 朔州市| 淳化县| 闵行区| 青铜峡市| 德格县| 谷城县| 洛浦县| 台州市| 岚皋县| 扶余县| 资阳市| 饶河县| 伊金霍洛旗| 大余县| 沅陵县| 会同县|