cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H747IITx undefined reference to `touchgfx_init' its STM32 Cube MX generated code and giving this error.

pankajauengg
Associate II

0693W000007ZXNzQAO.pngI can navigate to that from right click and go to declaration. On converting to C++ it starts to give other issues.

14 REPLIES 14
Khouloud ZEMMELI
ST Employee

Hello @Community member​ 

Could you please share your ioc file to check your case?

Thanks,Khouloud

 

Hello @Community member​ 

You're right, issue reproduced and it will be fixed.

Thank you for raising this problem to our attention :)

Khouloud

...same here.

Do you know when the update will be out to fix this bug?

Note: If you are select "c++" as target language, the bug is gone...0693W000008wYBfQAM.jpg

Do we have a proper work around without selecting c++ as he Target Language?

Fact is TouchGFX usage is requiring C++

BGerb.1 Do you mean we need to reconstruct project from scratch with target language C++. Is there no other way to configure linker? if so please share. I am also facing the same issue: Here is the build:

/../TouchGFX/App/app_touchgfx.c:29: undefined reference to `touchgfx_init'

collect2.exe: error: ld returned 1 exit status

make: *** [makefile:86: TEST_MAX_AI_430.elf] Error 1

"make -j8 all" terminated with exit code 2. Build might be incomplete.

Ajoub.1
Associate II

any solution please, I'm facing the same problem.

Mecanix
Senior

Same bug here. Here's my notes for the workaround which works great at least until this gets resolved.

Steps needs to be followed in the order below... I've numbered them to help with that.

Step 1: Create a New STM32CubeIDE Project

1) In STM32CubeIDE > File > New > Select Part Number > Next > Set ProjectName > Click Finish

2) Enable SYS > Serial Wire (other configs can be made later)

3) Save and close ProjectName.IOC

4) Build Project (Compiling should be successful!)

Step 2: Add TouchGFX 4.17 to the Project

5) Open ProjectName.IOC > Enable CRC > Software Packs > Select Component > TouchGFX 4.17

6) Expand Software Packs > Enable Graphic Application > *LEAVE ALL TouchGFX SETTINGS TO DEFAULT*

7) Save and close IOC *DO NOT BUILD THE PROJECT *

Step 3: Generate TouchGFX 4.17 Templates

8) Double-click on \TouchGFX\ApplicationTemplate.touchgfx.part

9) Select "Blank UI" > Click red Import button > Click Generate Code > Close Designer using the X

Step 4: Clean & Compile Project

10) Right-click ProjectName > Select "Clean Project"

11) Right-click ProjectName > Select "Build Project" (Compiling should be successful at this stage!)

Step 5: ToughGFX Configurations and Code generation

12) Open ProjectName.IOC > Software Packs > TouchGFX > Set Screen Resolution e.g. 240x240, etc

13) Double-click on \TouchGFX\ApplicationTemplate.touchgfx.part, Click Generate Code > Close Designer using the X

14) Right-click ProjectName > Select "Clean Project"

15) Right-click ProjectName > Select "Build Project" (Compiling should be successful at this stage!)

done!

Note: If Partial Buffer is required and selected in the TouchGFX configs:

16) Move attached "TouchGFX_DataTransfer.h" and "TouchGFX_DataTransfer.c" into the \TouchGFX\target\ folder

17) CLEAN PROJECT and Build Project