How to fix build errors in IAR EWARM V9.32.1 and/ or Keil uVision V5.38.0.0 for TouchGFX projects V4.21.1 and STM32CubeMX V6.7.0 ?
I created a very simple GUI in TouchGFX and generated the code. I then opened the .ioc file in ST32CubeMX and generated the code for each different IDE. The code works in STM32CubeIDE but fails for both EWARM and uVision. Obviously generating the code for each IDE before trying each IDE.
In both EWARM and uVision, I managed to add all the include directories so that the projects could at least find all the .hpp files to try and build.
In EWARM, I finally get the following output;
STM32F769I_DISCO.out
Error[Li005]: no definition for "BitmapDatabase::getInstanceSize()" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Li005]: no definition for "BitmapDatabase::getInstance()" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Li005]: no definition for "touchgfx::Texts::setLanguage(unsigned short)" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Li005]: no definition for "Model::Model()" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Li005]: no definition for "FrontendApplication::FrontendApplication(Model &, FrontendHeap &)" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Li005]: no definition for "FrontendApplicationBase::gotoScreen1ScreenNoTransition()" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Li005]: no definition for "Virtual function table for ApplicationFontProvider" [referenced from C:\TouchGFXProjects\test02\EWARM\STM32F769I_DISCO\Obj\Application\User\TouchGFX\target\generated\TouchGFXConfiguration.o]
Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x19'b4b4 bytes (max align 0x4) in <[0x2002'0000-0x2007'bfff], [0x2007'c000-0x2007'ffff]> (total uncommitted space 0x6'0000).
Uncommitted:
[0x2002'0000-0x2007'bfff]: 0x5'c000
[0x2007'c000-0x2007'ffff]: 0x4000
Total number of errors: 8
Total number of warnings: 3
Build failed
While in uVision I get: (small portion)
STM32F769I_DISCO\STM32F769I_DISCO.axf: Error: L6218E: Undefined symbol touchgfx::DMA_Interface::execute() (referred from stm32dma.o).
STM32F769I_DISCO\STM32F769I_DISCO.axf: Error: L6218E: Undefined symbol touchgfx::LockFreeDMA_Queue::LockFreeDMA_Queue(touchgfx::BlitOp*, unsigned long) (referred from stm32dma.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 108 error messages.
"STM32F769I_DISCO\STM32F769I_DISCO.axf" - 108 Error(s), 2 Warning(s).
Target not created.
Has anybody managed to use IAR EWARM or Keil uVision to successfully create and work on projects using the latest versions of each?
Is there a simple solution I'm missing?
Thanks in advance for the help.