學(xué)習(xí)STM32開(kāi)發(fā),肯定少不了DEBUG調(diào)試這一步驟。那么,本文帶你了解一下這個(gè)調(diào)試相關(guān)的知識(shí)。
本文以STM32F1、Cortex-M3為例,其它系列芯片或內(nèi)核,原理相同或類(lèi)似。
1概況
在STM32中,有很多調(diào)試組件。使用它們可以執(zhí)行各種調(diào)試功能,包括斷點(diǎn)、數(shù)據(jù)觀(guān)察點(diǎn)、 閃存地址重載以及各種跟蹤。
STM32F1使用Cortex?-M3內(nèi)核,該內(nèi)核內(nèi)含硬件調(diào)試模塊,支持復(fù)雜的調(diào)試操作。
硬件調(diào)試模塊允許內(nèi)核在取指(指令斷點(diǎn))或訪(fǎng)問(wèn)數(shù)據(jù)(數(shù)據(jù)斷點(diǎn))時(shí)停止。內(nèi)核停止時(shí),內(nèi)核的內(nèi)部狀態(tài)和系統(tǒng)的外部狀態(tài)都是可以查詢(xún)的。完成查詢(xún)后,內(nèi)核和外設(shè)可以被復(fù)原,程序?qū)⒗^續(xù)執(zhí)行。
當(dāng)STM32F10x微控制器連接到調(diào)試器并開(kāi)始調(diào)試時(shí),調(diào)試器將使用內(nèi)核的硬件調(diào)試模塊進(jìn)行調(diào)試操作。
2調(diào)試框圖
STM32F1和Cortex?-M3的調(diào)試框圖:
提示:Cortex?-M3內(nèi)核內(nèi)含的硬件調(diào)試模塊是ARM CoreSight開(kāi)發(fā)工具集的子集。
ARM Cortex?-M3內(nèi)核提供集成的片上調(diào)試功能。它由以下部分組成:
SWJ-DP:串行/JTAG調(diào)試端口
AHP-AP: AHB訪(fǎng)問(wèn)端口
ITM:執(zhí)行跟蹤單元
FPB:閃存指令斷點(diǎn)
DWT:數(shù)據(jù)觸發(fā)
TPUI:跟蹤單元接口(僅較大封裝的芯片支持)
ETM:嵌入式跟蹤微單元(在較大的封裝上才有支持此功能的引腳),專(zhuān)用于STM32F1的調(diào)試特性
靈活的調(diào)試引腳分配
MCU調(diào)試盒(支持低電源模式,控制外設(shè)時(shí)鐘等)
3調(diào)試接口
STM32支持兩種調(diào)試接口:
JTAG調(diào)試接口
STM32的5個(gè)普通I/O口可用作SWJ-DP(串行/JTAG調(diào)試)接口引腳:
4SWJ調(diào)試端口(serial wire and JTAG)
STM32內(nèi)核集成了串行/JTAG調(diào)試接口(SWJ-DP)。這是標(biāo)準(zhǔn)的ARM CoreSight調(diào)試接口,包括JTAG-DP接口(5個(gè)引腳)和SW-DP接口(2個(gè)引腳)。
1.JTAG調(diào)試接口(JTAG-DP)為AHP-AP模塊提供5針標(biāo)準(zhǔn)JTAG接口。
2. 串行調(diào)試接口(SW-DP)為AHP-AP模塊提供2針(時(shí)鐘+數(shù)據(jù))接口。
在SWJ-DP接口中, SW-DP接口的2個(gè)引腳和JTAG接口的5個(gè)引腳中的一些是復(fù)用的。
SWJ調(diào)試端口:
上面的圖顯示異步跟蹤輸出腳(TRACESWO)和TDO是復(fù)用的。因此異步跟蹤功能只能在SWDP調(diào)試接口上實(shí)現(xiàn),不能在JTAG-DP調(diào)試接口上實(shí)現(xiàn)。
JTAG-DP和SW-DP切換的機(jī)制
JTAG調(diào)試接口是默認(rèn)的調(diào)試接口。如果調(diào)試器想要切換到SW-DP,必須在TMS/TCK上輸出一指定的JTAG序列(分別映射到SWDIO和SWCLK),該序列禁止JTAG-DP,并激活SW-DP。該方法可以只通過(guò)SWCLK和SWDIO兩個(gè)引腳來(lái)激活SW-DP接口。
指定的序列是:
1. 輸出超過(guò)50個(gè)TCK周期的TMS(SWDIO)= 1信號(hào)
2. 輸出16個(gè)TMS(SWDIO)信號(hào) 0111100111100111 (MSB)
3. 輸出超過(guò)50個(gè)TCK周期的TMS(SWDIO)= 1信號(hào)
5JTAG腳上的內(nèi)部上拉和下拉
保證JTAG的輸入引腳不是懸空的是非常必要的,因?yàn)樗麄冎苯舆B接到D觸發(fā)器控制著調(diào)試模式。必須特別注意SWCLK/TCK引腳,因?yàn)樗麄冎苯舆B接到一些D觸發(fā)器的時(shí)鐘端。
為了避免任何未受控制的I/O電平, STM32在JTAG輸入腳上嵌入了內(nèi)部上拉和下拉。
JINTRST:內(nèi)部上拉
JTDI:內(nèi)部上拉
JTMS/SWDIO:內(nèi)部上拉
TCK/SWCLK:內(nèi)部下拉
一旦JTAG I/O被用戶(hù)代碼釋放, GPIO控制器再次取得控制。這些I/O口的狀態(tài)將恢復(fù)到復(fù)位時(shí)的狀態(tài)。
JNTRST:帶上拉的輸入
JTDI:帶上拉的輸入
JTMS/SWDIO:帶上拉的輸入
JICK/SWCLK:帶下拉的輸入
JTDO:浮動(dòng)輸入
軟件可以把這些I/O口作為普通的I/O口使用。
6利用串行接口并釋放不用的調(diào)試腳作為普通I/O口
為了利用串行調(diào)試接口來(lái)釋放一些普通I/O口,用戶(hù)軟件必須在復(fù)位后設(shè)置SWJ_CFG=010,從而釋放PA15, PB3和PB4用做普通I/O口。
在調(diào)試時(shí),調(diào)試器進(jìn)行以下操作:
在系統(tǒng)復(fù)位時(shí),所有SWJ引腳被分配為專(zhuān)用引腳(JTAG-DP + SW-DP)。
在系統(tǒng)復(fù)位狀態(tài)下,調(diào)試器發(fā)送指定JTAG序列,從JTAG-DP切換到SW-DP。
仍然在系統(tǒng)復(fù)位狀態(tài)下,調(diào)試器在復(fù)位地址處設(shè)置斷點(diǎn)
釋放復(fù)位信號(hào),內(nèi)核停止在復(fù)位地址處。
從這里開(kāi)始,所有的調(diào)試通信將使用SW-DP接口,其他JTAG引腳可以由用戶(hù)代碼改配為普通I/O口。
提示:這個(gè)地方就是需要大家配置相關(guān)的引腳。
7參看文獻(xiàn)
1.Cortex?-M3(r1p1版)技術(shù)參考手冊(cè)(TRM)
2.ARM調(diào)試接口V5
3.ARM CoreSight 開(kāi)發(fā)工具集(r1p0版)技術(shù)參考手冊(cè)
說(shuō)明:本文參考《STM32F1參考手冊(cè)》和《CM3技術(shù)手冊(cè)》。
上一篇:STM32片上外設(shè)時(shí)鐘使能、失能和復(fù)位的區(qū)別
下一篇:關(guān)于STM32的這幾個(gè)寄存器,你知道嗎?
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 【下載】LAT1526 利用SPI的下溢實(shí)現(xiàn)回顯功能
- 【下載】LAT1509 STM32G0B1的FDCAN進(jìn)行通信丟包和多包案例分享
- 【下載】LAT1511 運(yùn)行Ux_Host_HUB_HID_MSC通過(guò)Hub連接U盤(pán)讀寫(xiě)不穩(wěn)定問(wèn)題分析
- 【下載】LAT1466 USB x Device HID Standalone的移植
- 【下載】LAT1488 STM32 USBxDevice MSC standalone移植示例
- 【下載】LAT1482 STM32G0單線(xiàn)串口通信幀錯(cuò)誤問(wèn)題解析
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪(fǎng)問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 榜單!1700萬(wàn)輛座艙域控「紅利」,誰(shuí)是大贏(yíng)家?龍頭格局揭曉!
- 多點(diǎn)觸摸感應(yīng)技術(shù)給人機(jī)界面帶來(lái)的改變
- H.265:網(wǎng)絡(luò)視頻的高清時(shí)代
- 大聯(lián)大友尚集團(tuán)推出基于ST產(chǎn)品的工業(yè)PLC方案
- 電視棒工作原理很簡(jiǎn)單 有網(wǎng)絡(luò)就能變身智能電視
- 牛B的手勢(shì)操控是如何煉成的
- Bourns 擴(kuò)展符合 AEC-Q200 標(biāo)準(zhǔn)車(chē)規(guī)級(jí)電流檢測(cè)電阻產(chǎn)品線(xiàn)
- 基于G.729壓縮語(yǔ)音流隱蔽通信系統(tǒng)設(shè)計(jì)方案
- 觸摸控制器如何滿(mǎn)足大屏觸控設(shè)備抗噪新需求?
- Bourns 擴(kuò)展半屏蔽功率電感產(chǎn)品組合,推出具更高最大感值新系列
- 免費(fèi)申請(qǐng)測(cè)評(píng) | 泰坦觸覺(jué) TITAN Core開(kāi)發(fā)套件
- 安森美半導(dǎo)體——FOD83xx/T系列來(lái)襲! 答題贏(yíng)好禮,更可免費(fèi)申請(qǐng)樣片
- 下載有禮:ADI公司生化分析儀解決方案!
- 下載MPS汽車(chē)電機(jī)控制技術(shù)干貨,贏(yíng)【Keep體脂秤、自動(dòng)洗手機(jī)套裝、小米保溫杯】,開(kāi)啟汽車(chē)技術(shù)進(jìn)階之旅!
- 獨(dú)家拆解 | 語(yǔ)音控制在真無(wú)線(xiàn)立體聲TWS耳機(jī)上的創(chuàng)新應(yīng)用
- 有獎(jiǎng)直播|恩智浦嵌入式人機(jī)界面解決方案詳解
- MPS電機(jī)研究院 讓電機(jī)更聽(tīng)話(huà)的秘密! 第一站:電機(jī)應(yīng)用知識(shí)大考!
- 月度原創(chuàng)精選評(píng)選2018年5月(總第4期)
- 賈躍亭的夢(mèng)想再進(jìn)一步,F(xiàn)F 91第一臺(tái)白車(chē)身提前誕生
- 英國(guó)電動(dòng)汽車(chē)發(fā)展前景如何?
- 對(duì)比中美無(wú)人駕駛汽車(chē)領(lǐng)域,得到了哪些信息?
- 我國(guó)上半年電動(dòng)汽車(chē)銷(xiāo)量排行榜,誰(shuí)賣(mài)的最多?
- 美國(guó)新能源汽車(chē)產(chǎn)業(yè)為何要依賴(lài)中國(guó)發(fā)展?
- ?日經(jīng):日本半導(dǎo)體有三大優(yōu)勢(shì)
- 三個(gè)月兩輪,梅奧心磁完成Pre-A+輪融資,跨入手術(shù)機(jī)器人量產(chǎn)階段
- 【11.8-11.14】本周機(jī)器人行業(yè)大事件TOP5
- ABB推出全新SCARA機(jī)器人IRB 920T
- 獲比亞迪1.77億訂單,三豐智能在手訂單達(dá)29億
- 430單片機(jī)LaunchPad制作需要的軟件編程處理
- 超大規(guī)模集成電路(VLSI)設(shè)計(jì)流程2021版標(biāo)準(zhǔn)中的IP設(shè)計(jì)規(guī)范
- STM32驅(qū)動(dòng)彩屏
- 全國(guó)2013屆高校畢業(yè)生重點(diǎn)行業(yè)系列網(wǎng)絡(luò)招聘活動(dòng)
- ST60 短距離非接觸式60GHz毫米波連接器 實(shí)測(cè)
- J題電磁控制的 用電磁鐵貌似磁力不夠啊
- 【 ST NUCLEO-H743ZI測(cè)評(píng)】建立一個(gè)modbus/TCP的從站
- 什么是旁路電容?什么是去耦電容?它們有什么區(qū)別和聯(lián)系?
- 第2章 UNIX標(biāo)準(zhǔn)化及實(shí)現(xiàn)
- 一個(gè)PWM波占空比在0.1%~100%自動(dòng)變化的程序出錯(cuò)了?。?/span>