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