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 可獲得...