前言
某客戶在使用 TouchGFX Designer 4.22 創(chuàng)建 TouchGFX GUI 應(yīng)用時(shí),使用STM32U599 開發(fā)某款 GUI 產(chǎn)品,用 STM32CubeIDE 作為 IDE 發(fā)現(xiàn)無(wú)法下載成功,每下載到 93%時(shí)就停滯并且報(bào)錯(cuò)。然而,如果選擇 IAR 作為 IDE 則可以成功下載和仿真??蛻舯硎井?dāng)前使用的 STM32CubeIDE 已經(jīng)是最新版本,同時(shí)也嘗試過(guò)使用更老的版本或創(chuàng)建其他的 demo 應(yīng)用均是同樣的結(jié)果。
現(xiàn)場(chǎng)調(diào)研與問(wèn)題復(fù)現(xiàn)
經(jīng)現(xiàn)場(chǎng)詢問(wèn),客戶板子外擴(kuò)了 NorFlash,懷疑可能是 Flash loader 或 NorFlash 硬件存在問(wèn)題。首先通過(guò) OSPI 裸機(jī)程序?qū)?NorFlash 進(jìn)行讀寫訪問(wèn)均正常,排除硬件故障。進(jìn)一步詢問(wèn)客戶表示 NorFlash 硬件采用了與 STM32U599J_DK 一樣的接法。因此,采用STM32U599J_DK 板子的 Flash loader 肯定是可以的,現(xiàn)場(chǎng)使用 STM32Cubeprogrammer選擇 STM32U599J_DK 板的 flashloader,對(duì)客戶板子外部 NorFlash 進(jìn)行讀寫操作均能操作成功,說(shuō)明 NorFlash 確實(shí)與 STM32U599J_DK 接法一樣。
問(wèn)題分析與解決
既然使用 STM32Cubeprogrammer 都能夠正常下載,那么 STM32CubeIDE 按道理肯定也是可以的。經(jīng)過(guò)跟蹤編譯過(guò)程發(fā)現(xiàn),STM32CubeIDE 與 STM32Cubeprogrammer 使用的下載文件是各自獨(dú)立的。也就是說(shuō) CubeIDE 并沒有使用 STM32Cubeprogrammer 安裝路徑下的 bin 目錄下的 STM32_Programmer_CLI 和相關(guān)資源文件。CubeIDE 下載使用的bin 路徑為:
STM32CubeIDE_1.14.0STM32CubeIDEpluginscom.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.100.202311100844toolsbinSTM32_Programmer_CLI.exe
總結(jié)
由于在 MCU 上運(yùn)行的應(yīng)用程序越來(lái)越復(fù)雜,因此,對(duì)于在片外 Flash 運(yùn)行代碼的需求越來(lái)越多,特別是針對(duì) Flashless 形態(tài)的 MCU 都需要用戶自己開發(fā) Flashloader, 建議用戶可使用與開發(fā)板一樣的硬件接法。這樣,就不必自己去重新開發(fā) Flashloader 了。