關(guān)注、星標公眾號,不錯過精彩內(nèi)容
作者 | strongerHuang 微信公眾號 | strongerHuang
如今眾多Cortex-M處理器能這么方便調(diào)試,在于有一項基于Arm Cortex-M處理器設(shè)備的CoreSight技術(shù),該技術(shù)引入了強大的新調(diào)試(Debug)和跟蹤(Trace)功能。
下面就來重點講講關(guān)于CoreSight中調(diào)試和跟蹤的相關(guān)內(nèi)容。
strongerHuang
1
調(diào)試和跟蹤功能
CoreSight兩個主要功能就是調(diào)試和跟蹤功能。
1.調(diào)試功能
- 運行處理器的控制,允許啟動和停止程序
- 單步調(diào)試源碼和匯編代碼
- 在處理器運行時設(shè)置斷點
- 即時讀取/寫入存儲器內(nèi)容和外設(shè)寄存器
- 編程內(nèi)部和外部FLASH存儲器
2.跟蹤功能
串行線查看器(SWV)提供程序計數(shù)器(PC)采樣,數(shù)據(jù)跟蹤,事件跟蹤和儀器跟蹤信息
指令(ETM)跟蹤直接流式傳輸?shù)侥腜C,從而實現(xiàn)歷史序列的調(diào)試,軟件性能分析和代碼覆蓋率分析
一張圖了解整體內(nèi)容:
strongerHuang
2
JTAG
JTAG是行業(yè)標準的接口,用于下載和調(diào)試目標處理器上的程序以及許多其他功能。它提供了連接設(shè)備的簡便方法,并且在所有基于Arm處理器的設(shè)備上都可用。JTAG接口可與基于Cortex-M的設(shè)備一起使用,以訪問CoreSight調(diào)試功能。
1.JTAG歷史
JTAG是聯(lián)合測試工作組(Joint Test Action Group)的簡稱,是在名為標準測試訪問端口和邊界掃描結(jié)構(gòu)的IEEE的標準1149.1的常用名稱。此標準用于驗證設(shè)計與測試生產(chǎn)出的印刷電路板功能。
1990年JTAG正式由IEEE的1149.1-1990號文檔標準化,在1994年,加入了補充文檔對邊界掃描描述語言(BSDL)進行了說明。從那時開始,這個標準被全球的電子企業(yè)廣泛采用,邊界掃描幾乎成為了JTAG的同義詞。
---引用維基百科
2.JTAG接口
JTAG的接口通常是4/5個接腳接口連到芯片上:
TDI(測試數(shù)據(jù)輸入)
TDO(測試數(shù)據(jù)輸出)
TCK(測試時鐘)
TMS(測試模式選擇)
TRST(測試復(fù)位)可選
strongerHuang
3
SWD串行線調(diào)試
SWD,Serial Wire Debug(串行線調(diào)試)模式是標準JTAG接口的替代方法,它僅使用兩個引腳即可提供與JTAG相同的調(diào)試功能,而不會降低性能,并通過串行線查看器(SWV)引入了數(shù)據(jù)跟蹤功能。
在JTAG引腳中包含SWD接口引腳,從而允許標準目標連接器中使用。引腳包含:
TCLK-SWCLK(串行時鐘)
TMS-SWDIO(串行數(shù)據(jù)輸入/輸出)
TDO-SWO(串行線輸出-SWV使用)
關(guān)于SWV
SWV:Serial Wire Viewer,串行線查看器
基于Cortex-M3、 M4、 M7的設(shè)備能夠根據(jù)所需信息或分析的類型,以多種方式提供高速數(shù)據(jù)跟蹤信息。當系統(tǒng)處理器繼續(xù)全速運行時,它通過SWO引腳傳輸。
可從ITM(儀器跟蹤宏單元)和DWT(數(shù)據(jù)觀察點和跟蹤)單元獲得信息,其中包括:
PC(程序計數(shù)器)采樣
顯示CPU周期統(tǒng)計信息的事件計數(shù)器
具有定時統(tǒng)計信息的異常和中斷執(zhí)行
跟蹤數(shù)據(jù)-用于時序分析的數(shù)據(jù)讀取和寫入
用于簡單printf樣式調(diào)試的ITM跟蹤信息
可參看我之前的文章《printf系列教程》,后臺回復(fù)【printf系列教程】查看更多。
strongerHuang
4
拓展:下載調(diào)試器
之前給大家分享過《下載調(diào)試接口 SWD 和 JTAG的區(qū)別》,選擇下載調(diào)試器時也可以對比一下二者差異。
支持JTAG和SWD模式的下載調(diào)試器很多,J-Link、 ST-LINK、 ULINK這些大眾化的工具都支持,還有很多小眾的下載調(diào)試器(比如e-Link、 GD-Link等)同樣也支持SWD模式。
那么,我們該選擇哪一種呢? 哪一種更香呢?
支持全面的一點的算J-Link了,但正版的價格,對于普通個人來說,有壓力。
有多種版本,算下來好幾千一個。
同樣,正版ULINK也和J-Link一樣,價格上千。當然,很多人買到的ULINK和J-Link都是盜版。
相比ULINK和J-Link而言,正版的ST-Link價格就很劃算,一個正版ST-Link V2才兩三百,但缺點就是只能針對STM8/32使用。
當然,ST-Link還有一個神操作:變成J-link,請參看我的文章《ST-Link如何秒變J-link,手把手教你實現(xiàn)該功能》。
------------ END ------------
推薦閱讀:
什么是自由軟件?
幾種特殊的函數(shù)宏封裝方式
Keil MDK如何將變量存儲在指定內(nèi)存地址
關(guān)注 微信公眾號『strongerHuang』,后臺回復(fù)“1024”查看更多內(nèi)容,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。
長按前往圖中包含的公眾號關(guān)注
點擊“ 閱讀原文 ”查看更多分享,歡迎點分享、收藏、點贊、在看。
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!