當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎ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 WireDebug調(diào)試技術(shù)和經(jīng)典的JTAG調(diào)試技術(shù)的異同。

引言

在芯片制造技術(shù)飛速發(fā)展的今天,高速、高集成度、低功耗的極致追求給芯片設(shè)計(jì)人員提出了一個(gè)又一個(gè)挑戰(zhàn),而在這樣的片上系統(tǒng)中調(diào)試與追蹤內(nèi)核狀態(tài)更是芯片調(diào)試技術(shù)的一個(gè)難題。為了解決非侵入式、實(shí)時(shí)調(diào)試等多類問(wèn)題,ARM引入了全新的ARMCoreSight調(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)架,推出了新一代CortexM系列微控制器。而意法半導(dǎo)體公司(ST)推出的STM32、德州儀器公司(TI)推出的Stellaris,都是一種ARMCortexM3內(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)試和新一代的SerialWireDebug(SWD)調(diào)試二合一的調(diào)試接口使不少開(kāi)發(fā)者無(wú)法理清頭緒。因此本文將從整體上分析ARMCoreSight調(diào)試構(gòu)架和ARMDebugInterfaceArchitecture(ADI),并通過(guò)對(duì)比ST和TI推出的芯片來(lái)明確新調(diào)試體系的實(shí)現(xiàn)方式,為開(kāi)發(fā)者掃清調(diào)試障礙。

1ARMCoreSight調(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í)也能讀寫(xiě)寄存器與存儲(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)試方式的SerialWireDebug(SWD)調(diào)試方式,它很好地改良了ARM體系結(jié)構(gòu)下的產(chǎn)品調(diào)試機(jī)制。

ARMCoreSight構(gòu)架中的組件是通過(guò)存儲(chǔ)器映射機(jī)制訪問(wèn)它們自身的控制寄存器(例如AMBA3APB接口),而不通過(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)試鏈的終止等。

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

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

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

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

在ARMCoreSight構(gòu)架基礎(chǔ)上,ARM指定了具體的調(diào)據(jù)被鏈接調(diào)試資源類型的不同,ADI定義了兩類AP的實(shí)現(xiàn):MEM-AP和JTAG-AP。MEM-AP用來(lái)鏈接到存儲(chǔ)器映射(Memorymapped)類型的資源,而JTAG-AP主要用來(lái)鏈接到經(jīng)典的IEEE1149.1JTAG設(shè)備上。我們常用的是MEM-AP類型,通過(guò)對(duì)ARM存儲(chǔ)器映射機(jī)制下的系統(tǒng)資源的訪問(wèn),我們可以調(diào)試幾乎所有的片上資源。而當(dāng)我們使用IEEE1149.1JTAG調(diào)試設(shè)備做掃描邊界測(cè)試時(shí),我們需要用到JTAG-AP實(shí)現(xiàn)。

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

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

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

試接口規(guī)范,旨在統(tǒng)一所有采用CoreSight調(diào)試體系的片上系統(tǒng)。

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

采用ARM設(shè)計(jì)IP的芯片廠商在設(shè)計(jì)調(diào)試支持的時(shí)候,都必須要遵守ARMDebugInterfaceArchitectureSpecification(ARM調(diào)試接口體系結(jié)構(gòu)規(guī)范,ADI)。ARM調(diào)試接口規(guī)范為嵌入式片上系統(tǒng)

(SoC)中的調(diào)試組件定義了標(biāo)準(zhǔn)調(diào)試接口,其功能邏輯框圖如圖1所示。

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

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

ADI中定義了一個(gè)單一的外部調(diào)試設(shè)備物理連接接口:DebugPort(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)接口:AccessPort(AP)。AP為DAP與被調(diào)試資源的鏈接提供了接口。AP通過(guò)資源特定的連接方式(例如一個(gè)debugbus)鏈接到被調(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.1JTAG 調(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)架。


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


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


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

STM32MCU和StellarisMCU的設(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ò)Internalprivateperipheralbus(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ì)比

SerialWireDebug(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ī)制示意圖。

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

從圖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
SerialW
ireDebug
Pin
Purpose
Pin
Purpose
TCK
Clock
SWCLK
Clock
TMS
StaleMachine
Contro1
SWDIO
DataIn&Out
TDI
Da/In


TDO
Da/Out
SWO

TRST
Reset


圖5 SWD與JTAG1149.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è)重要選擇因素。

20211123_619d050896007__ARMCoreSight調(diào)試與追蹤體系在CortexM3內(nèi)核中的實(shí)現(xiàn)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉