日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

學(xué)習(xí)STM32開(kāi)發(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))或訪問(wè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)試器并開(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訪問(wèn)端口

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。該方法可以只通過(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)

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)試接口來(lái)釋放一些普通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ù)位地址處。

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


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

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

    關(guān)注

    147

    文章

    19160

    瀏覽量

    404818
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374751
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    95

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    使用 VS Code 和 cortex-debug 調(diào)試運(yùn)行 Zephyr OS 的 MR-CANHUBK3,是否有可供下載的 SVD 文件?

    我們想使用 VSCode 和 cortex-debug 調(diào)試運(yùn)行 Zephyr OS 的 MR-CANHUBK3。需要一個(gè) SVD 文件才能查看寄存器值。 是否有可供下載的 SVD 文件?
    發(fā)表于 04-20 11:45

    STM32N6 在 PSRAM 上運(yùn)行代碼的調(diào)試

    開(kāi)發(fā)其產(chǎn)品過(guò)程中,使用了 STM32N657X0H3Q。客戶的代碼很大,不能放在SRAM 上運(yùn)行,想放在 PSRAM 上去運(yùn)行,并咨詢?nèi)绾卧?STM32CubeIDE 上進(jìn)行調(diào)試。2.2. 重現(xiàn)問(wèn)題關(guān)于如何將用戶代碼放置在 PS
    發(fā)表于 04-15 16:02 ?0次下載

    LAT1621_STM32N6 在 PSRAM 上運(yùn)行代碼的調(diào)試

    STM32N657X0H3Q。客戶的代碼很大,不能放在SRAM 上運(yùn)行,想放在 PSRAM 上去運(yùn)行,并咨詢?nèi)绾卧?STM32CubeIDE 上進(jìn)行調(diào)試
    發(fā)表于 03-11 10:44 ?0次下載

    告別USB線!無(wú)線ADB調(diào)試,附全志/瑞芯微實(shí)戰(zhàn)教程

    前言:作為嵌入式開(kāi)發(fā)者,很多人習(xí)慣性使用ADB而不是調(diào)試debug串口。尤其是在使用buildroot或ubuntu這類非Android系統(tǒng)的嵌入式設(shè)備時(shí),傳統(tǒng)的ADB調(diào)試依賴于通過(guò)USB線將設(shè)
    的頭像 發(fā)表于 01-23 08:32 ?5787次閱讀
    告別USB線!無(wú)線ADB<b class='flag-5'>調(diào)試</b>,附全志/瑞芯微實(shí)戰(zhàn)教程

    Unix的相關(guān)知識(shí)

    調(diào)試。 健壯原則:健壯源于透明與簡(jiǎn)潔。 表示原則:把知識(shí)疊入數(shù)據(jù)以求邏輯質(zhì)樸而健壯。 通俗原則:接口設(shè)計(jì)避免標(biāo)新立異。 緘默原則:如果程序沒(méi)什么好說(shuō)的,就保持沉默。 補(bǔ)救原則:出現(xiàn)異常時(shí),馬上退出并
    發(fā)表于 12-10 07:13

    進(jìn)迭時(shí)空 debug upstream | 取之于開(kāi)源,貢獻(xiàn)于開(kāi)源

    。Debug相關(guān)軟件項(xiàng)目概覽RISC-V調(diào)試所涉及的核心開(kāi)源軟件主要包括GDB和OpenOCD。GDB(GNUDebugger)是GNU項(xiàng)目下的功能強(qiáng)大的源碼級(jí)調(diào)
    的頭像 發(fā)表于 11-17 09:33 ?5726次閱讀
    進(jìn)迭時(shí)空 <b class='flag-5'>debug</b> upstream | 取之于開(kāi)源,貢獻(xiàn)于開(kāi)源

    e203 debug失敗是什么原因?qū)е碌模?/a>

    使用芯來(lái)的調(diào)試器+其它的fpga開(kāi)發(fā)板+linux進(jìn)行debug時(shí),flash版本的出現(xiàn)錯(cuò)誤,itcm版本的能下載,但是不能進(jìn)行仿真,詳細(xì)請(qǐng)查看附件連接,有哪位遇到過(guò)這種問(wèn)題?歡迎解答下,感謝。啟動(dòng)時(shí)在0x0處中斷了。
    發(fā)表于 11-07 07:38

    Nuclei Studio軟件調(diào)試debug分享

    一、問(wèn)題描述 想調(diào)試MCU200t板子,參考“4.4.5. Run Hello World Project”的流程,沒(méi)有跑通。設(shè)置: “RV-Tools -&gt; SDK
    發(fā)表于 10-31 07:35

    Nuclei Studio 編譯調(diào)試工程

    和bss段,以及總大小的十進(jìn)制和十六進(jìn)制數(shù)值。 GD-Link調(diào)試 在“Run-&gt;Debug Configurations”下可配置調(diào)試信息 1.雙擊GDB OpenOCD
    發(fā)表于 10-30 06:31

    基于FPGA平臺(tái)的蜂鳥(niǎo)E203 JTAG debug出錯(cuò)問(wèn)題的解決思路

    大概花了三天時(shí)間完成了蜂鳥(niǎo)E203 SOC在zynq7100 FPGA的移植工作,并完成了hello world程序的在線debug調(diào)試。 蜂鳥(niǎo)E203的移植在網(wǎng)上有大把的demo,其中bit文件
    發(fā)表于 10-28 07:38

    如何實(shí)現(xiàn)Infineon TRAVEO T2G系列MCU的安全調(diào)試

    隨著汽車電子系統(tǒng)變得越來(lái)越智能,對(duì)功能安全(Safety)的要求越來(lái)越高,同時(shí)信息安全(Security)也越來(lái)越被關(guān)注,安全調(diào)試(Secure Debug)機(jī)制已成為一個(gè)重要的信息安全特性
    的頭像 發(fā)表于 09-05 09:37 ?3588次閱讀
    如何實(shí)現(xiàn)Infineon TRAVEO T2G系列MCU的安全<b class='flag-5'>調(diào)試</b>

    如何調(diào)試nRF5 SDK

    本文將講述Nordic nRF5 SDK的主要調(diào)試手段,以幫助大家快速定位問(wèn)題,并解決問(wèn)題。一般來(lái)說(shuō),你可以通過(guò)打log方式,IDE的debug模式,SDK自帶的app_error_check函數(shù)
    的頭像 發(fā)表于 06-24 08:59 ?1161次閱讀
    如何<b class='flag-5'>調(diào)試</b>nRF5 SDK

    硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧

    摘要: 本文深入探討了 JLink 調(diào)試器在嵌入式系統(tǒng)硬件調(diào)試中的應(yīng)用,詳細(xì)闡述了 JLink 驅(qū)動(dòng)配置的方法以及硬件調(diào)試技巧。本文以國(guó)科安芯的AS32系列MCU芯片為例,通過(guò)分析 JLink
    的頭像 發(fā)表于 06-12 23:20 ?1923次閱讀
    硬件<b class='flag-5'>調(diào)試</b>:JLink 驅(qū)動(dòng)配置與<b class='flag-5'>調(diào)試</b>技巧

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

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

    使用STM32CubeIDE對(duì)STM32H7進(jìn)行開(kāi)發(fā)和調(diào)試,CM4始終報(bào)\"Failed to read ROM table via AP 3\"錯(cuò)誤怎么解決?

    我正在使用STM32CubeIDE對(duì)STM32H7系列雙核微控制器進(jìn)行開(kāi)發(fā)和調(diào)試,但遇到了一個(gè)頑固的問(wèn)題,希望能得到社區(qū)的幫助和建議。 ### 問(wèn)題描述 我根據(jù)應(yīng)用手冊(cè)AN5361,使用內(nèi)置示例
    發(fā)表于 05-14 06:20
    来安县| 海门市| 河池市| 诸暨市| 观塘区| 梁山县| 重庆市| 屏东县| 赫章县| 长丰县| 越西县| 汪清县| 梧州市| 曲松县| 丰镇市| 海门市| 房产| 高雄市| 阜宁县| 曲水县| 西吉县| 南阳市| 宜川县| 四子王旗| 达尔| 西宁市| 寿阳县| 西畴县| 隆子县| 曲阳县| 永登县| 黄梅县| 双桥区| 武城县| 炉霍县| 社旗县| 洛隆县| 涿州市| 太仓市| 襄樊市| 油尖旺区|