91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談STM32調(diào)試DEBUG相關(guān)知識(shí)

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-06 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

學(xué)習(xí)STM32開發(fā),肯定少不了DEBUG調(diào)試這一步驟。那么,本文帶你了解一下這個(gè)調(diào)試相關(guān)的知識(shí)。

本文以STM32F1、Cortex-M3為例,其它系列芯片或內(nèi)核,原理相同或類似。

1概況

在STM32中,有很多調(diào)試組件。使用它們可以執(zhí)行各種調(diào)試功能,包括斷點(diǎn)、數(shù)據(jù)觀察點(diǎn)、 閃存地址重載以及各種跟蹤。

STM32F1使用Cortex-M3內(nèi)核,該內(nèi)核內(nèi)含硬件調(diào)試模塊,支持復(fù)雜的調(diào)試操作。

硬件調(diào)試模塊允許內(nèi)核在取指(指令斷點(diǎn))或訪問數(shù)據(jù)(數(shù)據(jù)斷點(diǎn))時(shí)停止。內(nèi)核停止時(shí),內(nèi)核的內(nèi)部狀態(tài)和系統(tǒng)的外部狀態(tài)都是可以查詢的。完成查詢后,內(nèi)核和外設(shè)可以被復(fù)原,程序?qū)⒗^續(xù)執(zhí)行。

當(dāng)STM32F10x微控制器連接到調(diào)試器并開始調(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開發(fā)工具集的子集。

ARM Cortex-M3內(nèi)核提供集成的片上調(diào)試功能。它由以下部分組成:

SWJ-DP:串行/JTAG調(diào)試端口

AHP-AP: AHB訪問端口

ITM:執(zhí)行跟蹤單元

FPB:閃存指令斷點(diǎn)

DWT:數(shù)據(jù)觸發(fā)

TPUI:跟蹤單元接口(僅較大封裝的芯片支持)

ETM:嵌入式跟蹤微單元(在較大的封裝上才有支持此功能的引腳),專用于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)試)接口引腳:

4

SWJ調(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。該方法可以只通過SWCLK和SWDIO兩個(gè)引腳來激活SW-DP接口。

指定的序列是:

1. 輸出超過50個(gè)TCK周期的TMS(SWDIO)= 1信號(hào)

2. 輸出16個(gè)TMS(SWDIO)信號(hào) 0111100111100111 (MSB)

3. 輸出超過50個(gè)TCK周期的TMS(SWDIO)= 1信號(hào)

5

JTAG腳上的內(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被用戶代碼釋放, 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)試接口來釋放一些普通I/O口,用戶軟件必須在復(fù)位后設(shè)置SWJ_CFG=010,從而釋放PA15, PB3和PB4用做普通I/O口。

在調(diào)試時(shí),調(diào)試器進(jìn)行以下操作:

在系統(tǒng)復(fù)位時(shí),所有SWJ引腳被分配為專用引腳(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ù)位地址處。

從這里開始,所有的調(diào)試通信將使用SW-DP接口,其他JTAG引腳可以由用戶代碼改配為普通I/O口。


提示:這個(gè)地方就是需要大家配置相關(guān)的引腳。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17979

    瀏覽量

    366731
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364808
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    95

    瀏覽量

    20544
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32H745XIH6不能進(jìn)行雙核調(diào)試,CM4不能進(jìn)行在線調(diào)試怎么解決?

    你好, 問題: STM32H745XIH6不能進(jìn)行雙核調(diào)試,CM4不能進(jìn)行在線調(diào)試軟件:KEIL 5.41調(diào)試器STLINK V3按照手冊(cè)文檔AN5286雙核
    發(fā)表于 06-09 06:58

    STM32H750VB sys為什么無法選擇debug模式?

    STM32H750VB sys無法選擇debug 模式, 哪位大佬可以解答一下,非常感謝
    發(fā)表于 03-19 18:32

    如何通過J-Link實(shí)現(xiàn)STM32H5控制調(diào)試端口

    基于J-Link實(shí)現(xiàn)STM32H5安全編程介紹了在禁用TrustZone時(shí),如何通過J-Link實(shí)現(xiàn)STM32H5控制調(diào)試端口的安全鎖定或回歸打開。
    的頭像 發(fā)表于 03-17 10:25 ?507次閱讀
    如何通過J-Link實(shí)現(xiàn)<b class='flag-5'>STM32</b>H5控制<b class='flag-5'>調(diào)試</b>端口

    stm32f103c8t6編碼器模式在keil的debug調(diào)試時(shí)遇到的問題求解

    stm32f103c8t6編碼器模式在keil的debug調(diào)試時(shí),手動(dòng)把編碼器的計(jì)數(shù)器置為一個(gè)數(shù)500(比如計(jì)數(shù)器溢出值是4000),然后在在讓編碼器繼續(xù)開始輸出,此時(shí)計(jì)數(shù)器的計(jì)數(shù)變?yōu)樵瓉碚5膬杀读?,直到?jì)數(shù)器溢出一次就變正常
    發(fā)表于 03-14 06:06

    debug選項(xiàng)卡中的trace enable選項(xiàng)是灰色的無法勾選,為什么?

    想用debug測(cè)程序運(yùn)行的時(shí)間,但是這個(gè)trace enable選項(xiàng)是灰色的無法勾選,這是怎么回事,在網(wǎng)上也沒搜到相關(guān)的解決方法,請(qǐng)高手給指條明路,感謝! 采用的是CMSIS-DAP下載器,會(huì)不會(huì)是這個(gè)問題,因?yàn)槲铱匆恍┚W(wǎng)絡(luò)教程他們都用的是ST-link下載器來進(jìn)行
    發(fā)表于 03-12 08:02

    使用stm32cubeide debug是可以運(yùn)行的,但是就是不能跳轉(zhuǎn),為什么?

    使用stm32cubeide debug是可以運(yùn)行的,但是就是不能跳轉(zhuǎn),很奇怪
    發(fā)表于 03-12 08:01

    FPGA設(shè)計(jì)調(diào)試流程

    調(diào)試,即Debug,有一定開發(fā)經(jīng)驗(yàn)的人一定會(huì)明確這是設(shè)計(jì)中最復(fù)雜最磨人的部分。對(duì)于一個(gè)龐大復(fù)雜的FPGA工程而言,出現(xiàn)問題的概率極大,這時(shí)如果沒有一個(gè)清晰的Debug思路,調(diào)試過程只能
    的頭像 發(fā)表于 03-04 11:02 ?1207次閱讀
    FPGA設(shè)計(jì)<b class='flag-5'>調(diào)試</b>流程

    Cadence Verisium Debug:統(tǒng)一調(diào)試平臺(tái),加速SoC設(shè)計(jì)

    Cadence的統(tǒng)一調(diào)試平臺(tái)Verisium Debug,為從IP到SoC級(jí)別的復(fù)雜設(shè)計(jì)提供了全面的調(diào)試解決方案。該平臺(tái)集成了多種調(diào)試功能,包括RTL
    的頭像 發(fā)表于 02-17 11:10 ?748次閱讀

    keil在Debug的高級(jí)用法

    ,不建議安裝網(wǎng)上的一些漢化包之類的。另外建立的工程文件路徑也盡量不要存在中文,否則可能會(huì)出現(xiàn)一些異常。第二節(jié)基本調(diào)試方法1,基本調(diào)試操作:首先點(diǎn)擊"Debug->
    的頭像 發(fā)表于 12-26 21:01 ?1938次閱讀
    keil在<b class='flag-5'>Debug</b>的高級(jí)用法

    單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令

    。以下是對(duì)單片機(jī)調(diào)試工具性能的簡(jiǎn)要對(duì)比以及一些常用的調(diào)試命令。 單片機(jī)Debug工具性能對(duì)比 Keil uVision 性能 :Keil uVision 是一款功能強(qiáng)大的集成開發(fā)環(huán)境(IDE),支持多種單片機(jī),特別是ARM Co
    的頭像 發(fā)表于 12-19 09:56 ?1418次閱讀

    單片機(jī)Debug與仿真區(qū)別

    單片機(jī)的開發(fā)是一個(gè)復(fù)雜的過程,涉及到硬件設(shè)計(jì)、軟件開發(fā)和測(cè)試等多個(gè)環(huán)節(jié)。為了確保單片機(jī)能夠按照預(yù)期工作,開發(fā)者需要使用Debug和仿真技術(shù)來檢測(cè)和修正代碼中的錯(cuò)誤。 Debug調(diào)試Deb
    的頭像 發(fā)表于 12-19 09:47 ?920次閱讀

    接口測(cè)試?yán)碚?、疑問收錄與擴(kuò)展相關(guān)知識(shí)點(diǎn)

    本文章使用王者榮耀游戲接口、企業(yè)微信接口的展示結(jié)合理論知識(shí),講解什么是接口測(cè)試、接口測(cè)試?yán)碚摗⒁蓡柺珍浥c擴(kuò)展相關(guān)知識(shí)點(diǎn)的知識(shí)學(xué)院,快來一起看看吧~
    的頭像 發(fā)表于 11-15 09:12 ?740次閱讀
    接口測(cè)試?yán)碚?、疑問收錄與擴(kuò)展<b class='flag-5'>相關(guān)</b><b class='flag-5'>知識(shí)</b>點(diǎn)

    GD32用Embedded軟件debug在線調(diào)試失敗的原因?

    請(qǐng)問GD32用Embedded軟件debug在線調(diào)試失敗可能是什么原因?
    發(fā)表于 09-27 07:13

    開發(fā)攻略之STM32調(diào)試端口的映射

    最近有一個(gè)項(xiàng)目用到了STM32F103RB系列單片機(jī),由于引腳數(shù)量較少,不得不使用到了單片機(jī)的PB3和PB4兩個(gè)引腳。而這兩個(gè)引腳剛好又是STM32系列的JTAG調(diào)試引腳,如果要用于普通IO的功能
    的頭像 發(fā)表于 08-03 08:11 ?897次閱讀
    開發(fā)攻略之<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b>端口的映射

    什么在windows上配置不好esp32c6的調(diào)試,debug模式運(yùn)行不起來怎么解決?

    什么我在windows上配置不好esp32c6的調(diào)試debug模式運(yùn)行不起來。。
    發(fā)表于 07-22 07:09
    主站蜘蛛池模板: 夜夜爽天天爽 | 天天操天天爱天天干 | 91久久婷婷国产综合精品青草 | 末满18以下勿进色禁网站 | 一级毛片看真人在线视频 | 91大神视频网站 | 天天做天天爱天天大综合 | 1000部啪啪未满十八勿入中国 | 一二三区乱码一区二区三区码 | 国产在线视频资源 | 国产成人啪精品午夜在线观看 | 2017天天干夜夜操 | 免费一级毛片女人图片 | 国产色产综合色产在线观看视频 | 深夜视频免费看 | 在线亚洲一区二区 | 热门国产xvideos中文 | 美女扒开尿口给男人爽的视频 | 久久狠色噜噜狠狠狠狠97 | 久久久久性 | 国产精品女仆装在线播放 | 久久精品久 | 亚洲欧洲日韩综合 | 五月天激情综合网 | xxxx日本69护士 | 天天视频国产免费入口 | 手机看片福利国产 | 一级毛毛片毛片毛片毛片在线看 | 国产精品四虎在线观看免费 | 亚洲欧美视频二区 | 亚洲高清在线视频 | 成人在线看片 | 国产在线视频h | 大尺度免费高清在线观看视频 | 国产三级精品三级在线观看 | 扒开双腿猛进入jk校视频 | 色片免费网站 | 亚洲国产精品久久久久婷婷老年 | 久久久99精品免费观看精品 | 亚洲综合涩| 欧美精品久久久久久久小说 |