新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 Cube Programmer 和 STM32 Cube IDE 協(xié)同調(diào)試的方法

STM32 Cube Programmer 和 STM32 Cube IDE 協(xié)同調(diào)試的方法

作者: 時(shí)間:2024-01-04 來(lái)源:ST 收藏

1. 前言

本文引用地址:http://2s4d.com/article/202401/454484.htm

很多人以為使用 Cube 的時(shí)候就不能同時(shí)使用 Cube Programmer ,其 實(shí)不然。 共享模式功能很早就已經(jīng)具備,但是很多人并沒(méi)有在意。 Cube Programmer 和 STM32 Cube 都能夠使用 共享模式。使用 ST- LINK 共享模式,在使用 STM32 Cube 單步調(diào)試時(shí),也可以使用 STM32 Cube Programmer 查看寄存器、內(nèi)存以及選項(xiàng)字節(jié)。

2. 共享模式

想要發(fā)掘工具的所有潛力,一種方法是仔細(xì)閱讀工具的文檔。對(duì)于使用 STM32 Cube Programmer 的用戶(hù),我推薦大家將<<UM2237 STM32 Cube Programmer 用 戶(hù)手冊(cè)>>通讀一遍。對(duì)于使用 STM32 Cube IDE 的用戶(hù),我推薦大家將<<UM2609 STM32 Cube IDE 用戶(hù)指南>>通讀一遍。在讀的過(guò)程中,我們能夠發(fā)現(xiàn)這兩個(gè)文檔里提到 了一個(gè) ST-LINK 共享模式。

·STM32 Cube Programmer

我們可以看到 UM2237 如下所示提到了 STM32 Cube Programmer 支持 Shared 配 置,意思是使能 shared 模式可以允許 2 個(gè)或者多個(gè) STM32 Cube Programmer 或者其他調(diào) 試工具連接同一個(gè) ST-LINK。這里的其他調(diào)試工具可以是 STM32 Cube IDE。

圖片.png

·STM32 Cube IDE

我們可以看到 UM2609 中說(shuō)得更加詳細(xì)。如下所示,它提到了,ST-LINK 共享模 式的原理是使用 ST-LINK Server;在共享模式下,STM32 Cube IDE 和 STM32 Cube Programmer 可以同時(shí)使用;ST-LINK Server 的共享模式的端口默認(rèn)是 7184 而且不能修改。

圖片.png

3.STM32 Cube IDE 和 STM32 Cube Programmer 的協(xié)同調(diào)試的配置。

我們先來(lái)找個(gè)簡(jiǎn)單的例子看下如何使用 ST-LINK 共享模式來(lái)進(jìn)行協(xié)同調(diào)試。我們選取 STM32H563 的 GPIO_IOToggle 例程,它位于 STM32CubeRepositorySTM32Cube_FW_H5_V1.0.0ProjectsNUCLEO- H563ZIExamplesGPIOGPIO_IOToggle。請(qǐng)各位讀者注意,你可以選擇任何例程,不限于 新發(fā)布的產(chǎn)品 STM32H5,也不限于簡(jiǎn)單的例程 GPIO_IOToggle。而且,即使你使用的

STM32 Cube IDE 和 STM32 Cube Programmer 版本比我使用的要舊,這個(gè)功能大概率已經(jīng)在 哪里。當(dāng)然我們總是推薦你保持 STM32 Cube 工具為最新的穩(wěn)定版本。

對(duì)于 STM32 Cube IDE,我們需要在調(diào)試配置里多進(jìn)行一項(xiàng)配置。我們可以看到如下圖所 示藍(lán)色選中的[Shared ST-LINK]。默認(rèn)這一項(xiàng)是不選中的,我們需要這項(xiàng)功能就去打個(gè)勾。

圖片.png

接下來(lái)就是正常的編譯,啟動(dòng)調(diào)試界面,讓它在調(diào)試界面正常運(yùn)行。我們不需要掛起 它。你看到的應(yīng)該是下圖這個(gè)樣子。

圖片.png

然后我們轉(zhuǎn)向 STM32 Cube Programmer 窗口。如果我們不用 ST-LINK 共享模式,我們 這個(gè)時(shí)候是不能使用 STM32 Cube Programmer 進(jìn)行連接,因?yàn)?ST-LINK 已經(jīng)被占用。如下 圖所示。

圖片.png

同樣共享模式不是 STM32 Cube Programmer 的默認(rèn)配置。我們需要將STM32 Cube Programmer 改成支持 ST-LINK 共享。

圖片.png

我們不想讓程序從頭開(kāi)始,所以這里我們使用 “Hot plug”Mode。這樣配置就完成了。 我們可以得到如下圖所示連接成功的樣子:

圖片.png

4. 幾個(gè)調(diào)試案例

這里舉出幾個(gè)協(xié)同調(diào)試案例,供大家參考。STM32 用戶(hù)若遇見(jiàn)STM32 Cube Programmer 支持得更好的功能,就可以考慮協(xié)同調(diào)試的方法。

4.1. 寄存器抓取與保存

寄存器抓取與保存是早期 STM32 Cube IDE 和 STM32 Cube Programmer 協(xié)同調(diào)試的一個(gè) 典型場(chǎng)景。早期的 STM32 Cube IDE 并不支持寄存器保存,雖然能查看寄存器,但是不能將 寄存器的內(nèi)容保存下來(lái)進(jìn)行比較。當(dāng)然現(xiàn)在 STM32 Cube IDE 已經(jīng)支持寄存器內(nèi)容的保存, 并且支持運(yùn)行時(shí)動(dòng)態(tài)刷新。不過(guò)在文本格式上,STM32 Cube Programmer 依然更加的清 晰。所以我們?cè)谑褂?STM32 Cube IDE 進(jìn)行調(diào)試的同時(shí),仍然有使用 STM32 Cube Programmer 來(lái)抓取寄存器和進(jìn)行保存的需求。

寄存器的保存使用的菜單時(shí)高亮的[REG](Registers – BETA)。當(dāng)我們點(diǎn)擊[Read],然后 點(diǎn)擊[Save to file]選擇[All peripherals]或者[Currently displayed peripherals],就可以保存所 有的寄存器內(nèi)容。保存的寄存器格式易于查看,帶有相應(yīng)的寄存器地址。

圖片.png

4.2. 查看選項(xiàng)字節(jié)

查看選項(xiàng)字節(jié)是 STM32 Cube Programmer 的優(yōu)勢(shì)。當(dāng) STM32 Cube IDE 正在調(diào)試應(yīng)用 時(shí),若我們懷疑某個(gè)選項(xiàng)字節(jié)設(shè)置不對(duì),我們可以不必關(guān)閉 STM32 Cube IDE,而直接使用 STM32 Cube Programmer 進(jìn)行查看。

圖片.png

圖1.

4.3. 文件比較

如果我們懷疑 Flash 的內(nèi)容與需要下載的程序不同,同樣我們?cè)诓魂P(guān)閉 STM32 Cube IDE

的調(diào)試界面就可以使用 STM32 Cube Programmer 檢查 Flash。例如:

圖片.png

圖2.

5. 小結(jié)

ST-LINK 共享模式是一種很有用的功能,可以讓 STM32Cube 多個(gè)工具發(fā)揮各自的特 長(zhǎng),對(duì)同一設(shè)備在同一時(shí)間進(jìn)行協(xié)同調(diào)試,可以極大的提高 STM32 開(kāi)發(fā)效率。

*LAT1317 - Rav 1.0 - Sep.2023*

相關(guān)下載鏈接:https://share.eepw.com.cn/share/download/id/391380



關(guān)鍵詞: STM32 IDE ST-LINK

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉