CortexM4 stm32f411 除錯介面

2021-09-13 14:34:35 字數 1716 閱讀 9759

origin: 簡述

對stm32f411所支援的除錯介面及其方式進行簡單的學習。

除錯介面

stm32f411的除錯介面硬體示意如下:

這裡寫描述

在除錯模式下,mcu核在某條特定指令獲取(斷點),或者是資料獲取時(watch point)時可以被停住,mcu核的內部狀態以及外部狀態均可被測量,在測量完成後,mcu核會恢復並繼續執行。

stm32f411的除錯介面支援兩種:

serial wire(swd)

jtag debug port

另外上圖中的一些術語意思如下:

術語     說明     附加說明

swj-dp     serial wire / jtag debug port, dp即除錯介面debug port的簡寫。swj表示是swd和jtag     

ahb-ap     ahb access port, ahb是arm架構中常見的高速內部匯流排一種,即說明除錯介面會通過這個ahb-ap與內部的許多除錯單元通過ahb進行互動     

itm     instrumentation trace macrocell,即可以進行測量跟蹤的,常見的是在**中通過這個來輸出除錯資訊     

fpb     flash patch breadpoint,因為指令一般存在於flash中,這個可能和除錯時打斷點相關     

dwt     data watchpoint trigger,資料監視視窗用,許多除錯工具都會有watch point的功能的     

tpui     trace port unit inte***ce,可能也是用作輸出吧,只有大尺寸封裝的ic有此功能,應當需要額外的pin     上面圖示中寫成tpiu了

etm     embedded trace macrocell,也是只有大尺寸封裝的ic有此功能,應當需要額外的pin     上面圖示中沒有看到這個

接下來簡單說明下這裡面部分的詳細內容以及可能的用法。

swj-dp

這個是arm標準的coresight debug port,其中,使用jtag dp的話有5根pin,用sw dp的話2根pin。stm32f411的這兩個介面是復用的~,其硬體框圖如下:

這裡寫描述

下面用**的方式說明下這兩個dp的引腳連線的區別:

引腳     jtag-dp介面     jtag功能     sw-dp介面     sw功能     pin num

jtdo     tdo     資料輸出     traceswo     trace輸出     pb3

jtdi     tdi     資料輸入             pa15

njtrst     ntrst     復位             pb4

jtms/swdio     tms     測試模式選擇     swdio     資料輸入輸出     pa13

jtck/swclk     tck     時鐘     swclk     時鐘     pa14

上圖中還有乙個swd/jtag select的單元,其實就是用來選擇是使用jtag或sw的。另外表中的traceswo並不是sw-dp的介面~應當是後面要提到的itm會用到的介面。

itmitm資料會通過tpiu,tpiu會加上額外的包再傳送給除錯主機。

使用itm功能之前,必須使能debug exception的trcen bit和monitor control暫存器。itm相關暫存器如下圖:

這裡寫描述

基於stm32f407建立stm32F427工程

分為三個部分 1.啟動檔案 2.fwilib 包含兩個資料夾inc和src。src裡面是stm32資源的c檔案,inc則是32資源的h檔案 3.user這也是我不太理解的部分 ddbugconfig只包含了用於debug的初始化,則是f4的系統檔案。我是在f407的基礎上改的 總的來說 1.改了晶元...

stm32f4 定時捕獲

概述 1000hz 20 80 占空比現象 1000hz 51 58 占空比現象 關於本文的更多詳情請往下看。筆者針對於初學者提供的例程都是去掉了許多不必要的功能,精簡了官方的 對初學者一看就明白,以簡單明瞭的工程供大家學習。stm32f4 tim輸入波形捕獲 脈衝頻率 占空比 例項 訪問密碼 st...

STM32F4與STM32F1的區別

作為cortex m3市場的最大佔有者,st公司在2011年又推出基於cortex m4核心的stm32f4系列產品,相對與stm32f1 f2等cortex m3產品,stm32f4最大的優勢,就是新增了硬體fpu單元以及dsp指令,同時,stm32f4的主頻也提高了很多,達到168mhz 可獲得...