STM32 Cube Programmer 和 STM32 Cube IDE 協(xié)同調(diào)試的方法
1. 前言
本文引用地址:http://cafeforensic.com/article/202401/454484.htm很多人以為使用 STM32 Cube IDE 的時候就不能同時使用 STM32 Cube Programmer ,其 實不然。ST-LINK 共享模式功能很早就已經(jīng)具備,但是很多人并沒有在意。 STM32 Cube Programmer 和 STM32 Cube IDE 都能夠使用 ST-LINK 共享模式。使用 ST- LINK 共享模式,在使用 STM32 Cube IDE 單步調(diào)試時,也可以使用 STM32 Cube Programmer 查看寄存器、內(nèi)存以及選項字節(jié)。
2.ST-LINK 共享模式
想要發(fā)掘工具的所有潛力,一種方法是仔細閱讀工具的文檔。對于使用 STM32 Cube Programmer 的用戶,我推薦大家將<<UM2237 STM32 Cube Programmer 用 戶手冊>>通讀一遍。對于使用 STM32 Cube IDE 的用戶,我推薦大家將<<UM2609 STM32 Cube IDE 用戶指南>>通讀一遍。在讀的過程中,我們能夠發(fā)現(xiàn)這兩個文檔里提到 了一個 ST-LINK 共享模式。
·STM32 Cube Programmer
我們可以看到 UM2237 如下所示提到了 STM32 Cube Programmer 支持 Shared 配 置,意思是使能 shared 模式可以允許 2 個或者多個 STM32 Cube Programmer 或者其他調(diào) 試工具連接同一個 ST-LINK。這里的其他調(diào)試工具可以是 STM32 Cube IDE。
·STM32 Cube IDE
我們可以看到 UM2609 中說得更加詳細。如下所示,它提到了,ST-LINK 共享模 式的原理是使用 ST-LINK Server;在共享模式下,STM32 Cube IDE 和 STM32 Cube Programmer 可以同時使用;ST-LINK Server 的共享模式的端口默認是 7184 而且不能修改。
3.STM32 Cube IDE 和 STM32 Cube Programmer 的協(xié)同調(diào)試的配置。
我們先來找個簡單的例子看下如何使用 ST-LINK 共享模式來進行協(xié)同調(diào)試。我們選取 STM32H563 的 GPIO_IOToggle 例程,它位于 STM32CubeRepositorySTM32Cube_FW_H5_V1.0.0ProjectsNUCLEO- H563ZIExamplesGPIOGPIO_IOToggle。請各位讀者注意,你可以選擇任何例程,不限于 新發(fā)布的產(chǎn)品 STM32H5,也不限于簡單的例程 GPIO_IOToggle。而且,即使你使用的
STM32 Cube IDE 和 STM32 Cube Programmer 版本比我使用的要舊,這個功能大概率已經(jīng)在 哪里。當(dāng)然我們總是推薦你保持 STM32 Cube 工具為最新的穩(wěn)定版本。
對于 STM32 Cube IDE,我們需要在調(diào)試配置里多進行一項配置。我們可以看到如下圖所 示藍色選中的[Shared ST-LINK]。默認這一項是不選中的,我們需要這項功能就去打個勾。
接下來就是正常的編譯,啟動調(diào)試界面,讓它在調(diào)試界面正常運行。我們不需要掛起 它。你看到的應(yīng)該是下圖這個樣子。
然后我們轉(zhuǎn)向 STM32 Cube Programmer 窗口。如果我們不用 ST-LINK 共享模式,我們 這個時候是不能使用 STM32 Cube Programmer 進行連接,因為 ST-LINK 已經(jīng)被占用。如下 圖所示。
同樣共享模式不是 STM32 Cube Programmer 的默認配置。我們需要將STM32 Cube Programmer 改成支持 ST-LINK 共享。
我們不想讓程序從頭開始,所以這里我們使用 “Hot plug”Mode。這樣配置就完成了。 我們可以得到如下圖所示連接成功的樣子:
4. 幾個調(diào)試案例
這里舉出幾個協(xié)同調(diào)試案例,供大家參考。STM32 用戶若遇見STM32 Cube Programmer 支持得更好的功能,就可以考慮協(xié)同調(diào)試的方法。
4.1. 寄存器抓取與保存
寄存器抓取與保存是早期 STM32 Cube IDE 和 STM32 Cube Programmer 協(xié)同調(diào)試的一個 典型場景。早期的 STM32 Cube IDE 并不支持寄存器保存,雖然能查看寄存器,但是不能將 寄存器的內(nèi)容保存下來進行比較。當(dāng)然現(xiàn)在 STM32 Cube IDE 已經(jīng)支持寄存器內(nèi)容的保存, 并且支持運行時動態(tài)刷新。不過在文本格式上,STM32 Cube Programmer 依然更加的清 晰。所以我們在使用 STM32 Cube IDE 進行調(diào)試的同時,仍然有使用 STM32 Cube Programmer 來抓取寄存器和進行保存的需求。
寄存器的保存使用的菜單時高亮的[REG](Registers – BETA)。當(dāng)我們點擊[Read],然后 點擊[Save to file]選擇[All peripherals]或者[Currently displayed peripherals],就可以保存所 有的寄存器內(nèi)容。保存的寄存器格式易于查看,帶有相應(yīng)的寄存器地址。
4.2. 查看選項字節(jié)
查看選項字節(jié)是 STM32 Cube Programmer 的優(yōu)勢。當(dāng) STM32 Cube IDE 正在調(diào)試應(yīng)用 時,若我們懷疑某個選項字節(jié)設(shè)置不對,我們可以不必關(guān)閉 STM32 Cube IDE,而直接使用 STM32 Cube Programmer 進行查看。
圖1.
4.3. 文件比較
如果我們懷疑 Flash 的內(nèi)容與需要下載的程序不同,同樣我們在不關(guān)閉 STM32 Cube IDE
的調(diào)試界面就可以使用 STM32 Cube Programmer 檢查 Flash。例如:
圖2.
5. 小結(jié)
ST-LINK 共享模式是一種很有用的功能,可以讓 STM32Cube 多個工具發(fā)揮各自的特 長,對同一設(shè)備在同一時間進行協(xié)同調(diào)試,可以極大的提高 STM32 開發(fā)效率。
*LAT1317 - Rav 1.0 - Sep.2023*
相關(guān)下載鏈接:https://share.eepw.com.cn/share/download/id/391380
評論