你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

实战经验 | 基于STM32CubeIDE下载TouchGFX GUI应用的出错分析

[复制链接]
STMCU-管管 发布时间:2025-2-6 10:01
017 i! U- w: k9 K% t; ?
前言+ E. C! e7 K, A4 C
某客户在使用 TouchGFX Designer 4.22 创建 TouchGFX GUI 应用时,使用 STM32U599 开发某款 GUI 产品,用 STM32CubeIDE 作为 IDE 发现无法下载成功,每下载到 93% 时就停滞并且报错。然而,如果选择 IAR 作为 IDE 则可以成功下载和仿真。客户表示当前使用的 STM32CubeIDE 已经是最新版本,同时也尝试过使用更老的版本或创建其 他的 demo 应用均是同样的结果。
' j# \. I8 O! G: Y+ c6 M! t7 s8 Z2 @2 X' C0 u: Q9 ~$ r/ I% p
02) F' ]* L' p# `! ?
现场调研与问题复现4 H9 t: A. R) `8 p" ^
经现场询问,客户板子外扩了 NorFlash,怀疑可能是 Flash loader 或 NorFlash 硬件存在问题。首先通过 OSPI 裸机程序对 NorFlash 进行读写访问均正常,排除硬件故障。进一步询问客户表示 NorFlash 硬件采用了与 STM32U599J_DK 一样的接法。因此,采用 STM32U599J_DK 板子的 Flash loader 肯定是可以的,现场使用 STM32Cubeprogrammer 选择 STM32U599J_DK 板的 flashloader,对客户板子外部 NorFlash 进行读写操作均能操 作成功,说明 NorFlash 确实与 STM32U599J_DK 接法一样。
: o9 G5 ~! N. i. t1 O3 R
; P( i) {) j/ P( s
STM32CubeIDE 下载错误提示如下图所示:' T! t/ C, e* k2 L
12.png
13.png
033 U* j, B4 V$ T% U5 w4 h' c
问题分析与解决1 V- X" ~7 A2 v( t7 P6 k
既然使用 STM32Cubeprogrammer 都能够正常下载,那么 STM32CubeIDE 按道理肯定也是可以的。经过跟踪编译过程发现,STM32CubeIDE 与 STM32Cubeprogrammer 使用的下载文件是各自独立的。也就是说 CubeIDE 并没有使用 STM32Cubeprogrammer 安装路径下的 bin 目录下的 STM32_Programmer_CLI 和相关资源文件。CubeIDE 下载使用的 bin 路径为:STM32CubeIDE_1.14.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.100.202311100844\tools\bin\STM32_Programmer_C LI.exe* t) d# ]! b$ r' N+ a2 X
+ O# l( Q4 `4 k6 j5 n( S
找到 CubeIDE 安装路径下的 Flash loader 目录:
5 {9 |) q- C/ F2 @4 P" g; s
14.png
在 ExternalLoader 目录下只发现了一个 STM32U599J_DK 相关的 Flashloader, STM32U599J_DK 应该就是使用的这个 Flashloader 文件。- V" T4 z# m$ k. z; n" |2 C0 m" J
9 V; [! P7 x" _: g7 P4 g
再次比对核实用户所创建的 CubeIDE 工程所用的 Flashloader:
  X7 J  S6 a' @3 b( W+ r2 I* Y
15.png
原来 TouchGFX designer 所创建的 project 所使用的 Flashloader 名称为 MX25LM51245G_STM32U599J-DK.stldr,而在 CubeIDE 安装路径下 ExternalLoader 里面的名称则为 MX25UM51245G_STM32U5x9J-DK.stldr,二者名称不一致,使 CubeIDE 无法成功加载 FlashLoader,导致下载出错。问题原因已经找到,通过修改 CubeIDE 中 FlashLoader 的配置即可解决此问题,具体修改方式如下:
/ @  w. i0 p. [+ W* h
16.png
修改后,测试下载与仿真均正常。
" S6 q9 v; ]/ E# A
4 Q% }, A' K5 a$ x9 N0 z0 z
04
* z9 b- ]$ V7 C; m- ^5 v总结8 A3 |6 V( ]9 _  I; w7 r
由于在 MCU 上运行的应用程序越来越复杂,因此,对于在片外 Flash 运行代码的需求越来越多,特别是针对 Flashless 形态的 MCU 都需要用户自己开发 Flashloader,建议用户使用与开发板一样的硬件接法。这样,就不必自己去重新开发 Flashloader 了。
6 J: y: q. i9 p5 c8 H$ M/ g+ Q4 w# X. K5 x( X: h) _4 O5 k7 M0 _

: b- C: N- ^* E$ n# d
▼▼▼

: |5 q& |; w( B
赞 收藏 评论0 发布时间:2025-2-6 10:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版