ST意法半导体
直播中

莫联雪

9年用户 1203经验值
私信 关注
[问答]

为什么计算机导入的TouchGFX项目无法进行编译呢

由于某种原因,无法让我从另一台计算机导入的TouchGFX项目在目标上编译运行。不过,我可以让它在模拟器中运行得很好。以下是一些细节:
  • error: 'setFrameBufferStartAddress' is not a member of 'touchgfx::HAL'
这是完整的控制台输出:
  • Run Target
  •     Generate
  •         Done
  •     Generate Assets
  •         make -f simulator/gcc/Makefile assets -j10
  •         Converting images
  •         Reading ./application.config
  •         Done
  •     Post Generate
  •         touchgfx update_project --project-file=simulator/msvs/Application.vcxproj && touchgfx update_project --project-file=target/IAR/application.ewp && touchgfx update_project --project-file=target/IAR8.x/application.ewp && touchgfx update_project --project-file=target/Keil/application.uvproj
  •         Compiler: ARMCC.
  •         Done
  •     Compile
  •         make -f target/gcc/Makefile -j10
  •         Converting images
  •         Reading ./application.config
  •         Compiling target/bsp/source/platform/hal/mcu/STM32f4cube/STM32F4HAL_DSI.cpp
  •         Compiling target/bsp/source/BoardConfiguration.cpp
  •         Compiling target/bsp/source/vendor/STM32469I-Discovery/stm32469i_discovery.c
  •         Compiling target/bsp/source/vendor/STM32469I-Discovery/stm32469i_discovery_lcd.c
  •         Compiling target/bsp/source/vendor/STM32469I-Discovery/stm32469i_discovery_qspi.c
  •         Compiling target/bsp/source/vendor/STM32469I-Discovery/stm32469i_discovery_sdram.c
  •         Compiling target/bsp/source/vendor/STM32469I-Discovery/stm32469i_discovery_ts.c
  •         Compiling target/bsp/source/vendor/Components/ft6x06/ft6x06.c
  •         Compiling target/bsp/source/vendor/Components/otm8009a/otm8009a.c
  •         Compiling target/bsp/source/platform/hal/mcu/stm32f4cube/STM32F4xx_HAL_Driver/stm32f4xx_hal.c
  •         target/bsp/source/platform/hal/mcu/stm32f4cube/STM32F4HAL_DSI.cpp: In member function 'virtual void STM32F4HAL_DSI::setFrameBufferStartAddress(void*, uint16_t, bool, bool)':
  •         target/bsp/source/platform/hal/mcu/stm32f4cube/STM32F4HAL_DSI.cpp:94:10: error: 'setFrameBufferStartAddress' is not a member of 'touchgfx::HAL'
  •              HAL::setFrameBufferStartAddress(adr, depth, useDoubleBuffering, useAnimationStorage);
  •                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
  •         target/gcc/Makefile:333: recipe for target 'build/ST/STM32469IDISCO/target/bsp/source/platform/hal/mcu/stm32f4cube/STM32F4HAL_DSI.o' failed
  •         make[2]: *** [build/ST/STM32469IDISCO/target/bsp/source/platform/hal/mcu/stm32f4cube/STM32F4HAL_DSI.o] Error 1
  •         make[2]: *** Waiting for unfinished jobs....
  •         Compiling target/bsp/source/platform/hal/mcu/stm32f4cube/STM32F4xx_HAL_Driver/stm32f4xx_hal_cortex.c
  •         target/bsp/source/BoardConfiguration.cpp: In function 'void touchgfx::touchgfx_init()':
  •         target/bsp/source/BoardConfiguration.cpp:209:9: error: 'class touchgfx::HAL' has no member named 'setFrameBufferStartAddress'; did you mean 'setFrameBufferStartAddresses'?
  •              hal.setFrameBufferStartAddress((uint16_t*)frameBuf0, bitDepth, false);
  •                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
  •                  setFrameBufferStartAddresses
  •         target/gcc/Makefile:333: recipe for target 'build/ST/STM32469IDISCO/target/bsp/source/BoardConfiguration.o' failed
  •         make[2]: *** [build/ST/STM32469IDISCO/target/bsp/source/BoardConfiguration.o] Error 1
  •         target/gcc/Makefile:300: recipe for target 'generate_assets' failed
  •         make[1]: *** [generate_assets] Error 2
  •         target/gcc/Makefile:42: recipe for target 'all' failed
  •         make: *** [all] Error 2
  •         Failed
  •     Failed
你能帮我弄清楚发生了什么,我能做些什么来解决它吗?谢谢!

回帖(1)

邹昀

2022-12-23 10:09:33
挖掘这个。函数 setFrameBufferStartAddress() 是 TouchGFX 4.14 及更早版本中使用的函数。在最新版本中,该函数称为 setFrameBufferStartAddresses()。我的猜测是您共享的项目很旧,并且您正在开发更新版本的 TouchGFX,其中该功能已在 HAL.hpp 中删除,如您的错误消息所示。我还可以看到,事实上您有一个名为 BoardConfiguration 的文件,当项目更新为包含 STM32CubeMX 时,我们(TouchGFX 团队)现在已经删除了该文件。
举报

更多回帖

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