ST意法半导体
直播中

王银喜

7年用户 2386经验值
私信 关注
[问答]

TouchGFX Keil uVision IDE项目显示错误如何解决

当我在项目中添加超过 65 个屏幕时,Keil 项目显示错误(在少于或等于 65 个屏幕时工作正常)。我通过创建多个新项目多次检查了这一点,甚至多个版本的 cubemx 和 touchgfx 设计师仍然没有运气。我已经尝试了 cubemx 5.3、cubemx 5.6、cube mx 6.0,基本上从 5.3 开始的每个版本。我什至尝试了从 4.10 到 4.15 的不同 touchgfx 设计器。当我为 STM32cubeIDE 创建超过 65 个屏幕的同一个项目时,它工作得很好。
这是我遵循的程序
  • 打开 touchGFX 设计器
  • 选择我的板子STM32F469i-DISCO和Blank ui
  • 添加66个屏幕和2-3个按钮
  • 生成项目
  • 打开工程的cubemx文件,选择MDK ARM 5.28.0.0 Keil IDE,为keil生成工程
  • 在keil中打开工程
  • 在属于 touchgfx 框架而非用户文件的 meta.h 文件中编译错误
如果按照上述步骤进行小于或等于 65 个屏幕,它工作正常。一切都适用于 STM32CubeIDE 甚至 66+ 屏幕
您可以按照上述步骤轻松重现此错误
../middlewares/st/touchgfx/framework/include/common/Meta.hpp(90): 错误: #456: 实例化类 "touchgfx::meta::select_type_maxsize>>"
struct select_type_maxsize > : public type_max::类型>
     检测期间:
      实例化类“touchgfx::meta::select_type_maxsize> [with First=Screen64View, Next=touchgfx::meta::TypeList>]" 第 90 行

../middlewares/st/touchgfx/framework/include/common/Meta.hpp(90): error: #70: 不完整的类型是不允许的
struct select_type_maxsize > : public type_max::类型>
     检测期间:
      实例化类“touchgfx::meta::select_type_maxsize> [with First=Screen64View, Next=touchgfx::meta::TypeList>]" 第 90 行

../TouchGFX/target/generated/TouchGFXConfiguration.cpp: 0 个警告,4 个错误
“STM32F469I-DISCOSTM32F469I-DISCO.axf”- 12 个错误,0 个警告。

回帖(1)

王莹

2022-12-26 11:43:58
修复了使用“--pending_instantiations number”IAR/Keil 编译器选项的问题,其中 number > 64,适用于遇到相同问题的任何其他人。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分