Skip to main content
George.P
Associate III
October 24, 2024
Question

IAR Project generation issues

  • October 24, 2024
  • 4 replies
  • 1120 views

Hello,

I'm experiencing issues with TouchGFX file/folder generation.

Below the steps I've followed and issues encountered:

  • Create and generate CubeMX project (NUCLEO-U545RE-Q) with TouchGFX, ThreadX and SPI for IAR
  • Open touchgfx.part file, add some text on the startup screen, generate code
  • Declare the frame buffer in TouchGFXGeneratedHAL.cpp (didn't think of a better way to statically allocate it) 
    • static uint16_t touchGfxBuffer[145][240];
  • Open IAR workspace, compile, following missing files errors
    • Fatal Error[Pe1696]: cannot open source file "touchgfx/hal/BlitOp.hpp" 
    • Fatal Error[Pe1696]: cannot open source file "platform/driver/touch/TouchController.hpp" 
    • Fatal Error[Pe1696]: cannot open source file "touchgfx/hal/GPIO.hpp" 
    • Fatal Error[Pe1696]: cannot open source file "touchgfx/hal/HAL.hpp" 
    • Fatal Error[Pe1696]: cannot open source file "texts/TypedTextDatabase.hpp" 
  • Fix the path errors adding in preprocessor
    • $PROJ_DIR$\..\TouchGFX/generated\texts\include
      $PROJ_DIR$\..\TouchGFX/generated\fonts\include
      $PROJ_DIR$\..\TouchGFX\generated\gui_generated\include
      $PROJ_DIR$\..\TouchGFX\generated\images\include
      $PROJ_DIR$\..\TouchGFX\gui\include
      $PROJ_DIR$\..\Middlewares\ST\touchgfx\framework\include
  • Linker errors probably because .cpp modules have not been added in the IAR project by the generator
    • Error[Li005]: no definition for "touchgfx::LCD16bpp::LCD16bpp()"
    • Error[Li005]: no definition for "touchgfx::HAL::instance"
    • Error[Li005]: no definition for "touchgfx::HAL::DISPLAY_WIDTH"
    • And more, 26 Li005 errors in total

IAR EWARM 9.50.2

CubeMX 6.12.1

TouchGFX Generator 4.24.1

TouchGFX Designer 4.24.1

Does this work on IAR 8.50?

Please advise.

Best regards,

George

 

 

This topic has been closed for replies.

4 replies

GaetanGodart
ST Employee
November 5, 2024

Hello @George.P ,

 

Why do you set the buffer location to "By address" instead of "By allocation". We usually recommend using "By allocation".

TouchGFX does work for IAR 8.50.

Can you do a text search in your folder to look for the function LCD16bpp()?

Maybe you are missing the TouchGFX library (.a file), they should be in Middlewares\ST\touchgfx\lib\core\cortex_m33

 

Regards,

Gaetan GodartSoftware engineer at ST (TouchGFX)
GaetanGodart
ST Employee
November 25, 2024

Hello @George.P ,

 

Have you been able to move forward on your issue?

 

Regards,

Gaetan GodartSoftware engineer at ST (TouchGFX)
George.P
George.PAuthor
Associate III
November 26, 2024

Hello, @GaetanGodart,

Thank you for your feedback.


Why do you set the buffer location to "By address" instead of "By allocation". We usually recommend using "By allocation".


No specific reason, I just wanted to make sure the buffer is properly allocated, without searching the generated code for the buffer's location. I'll try it next time to see how it behaves.

I haven't touched the project since my last message a month ago. I'll update once I do so.

Thanks again.

Best regards,

GaetanGodart
ST Employee
November 26, 2024

Ok no problem! :smiling_face_with_smiling_eyes:

 

Regards,

Gaetan GodartSoftware engineer at ST (TouchGFX)