cancel
Showing results for 
Search instead for 
Did you mean: 

Problem when porting from 4.9.3 to 4.12.3

egoltzman
Senior

I'm facing problems when I try to port a 4.9.3 project to 4.12.3.

  • First, I have many places in the original 4.9.3 designer project that I defined a change screen interaction with no trigger, I then use it in the code when I want to switch screens. When I open the ported 4.12.3 project those interactions have the action field empty even thought the interaction header still "remember" the original action. (See attached screen shoots)
  • Then, after a full rebuild of the project I get the below undefined reference after link (I'm working with CubeIDE)
C:/Projects/StepAhead/smart/Debug/../generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:379: undefined reference to `FrontendApplicationBase::gotoLoadingFileProgressScreenScreenNoTransition()'
Src/BoardConfiguration.o: In function `touchgfx::HAL& touchgfx::touchgfx_generic_init<STM32F7HAL_MIA0130>(touchgfx::DMA_Interface&, touchgfx::LCD&, touchgfx::TouchController&, short, short, unsigned short*, unsigned long, unsigned long)':
C:/Projects/StepAhead/smart/touchgfx/framework/include/common/TouchGFXInit.hpp:89: undefined reference to `BitmapDatabase::getInstance()'
C:/Projects/StepAhead/smart/touchgfx/framework/include/common/TouchGFXInit.hpp:89: undefined reference to `BitmapDatabase::getInstanceSize()'
C:/Projects/StepAhead/smart/touchgfx/framework/include/common/TouchGFXInit.hpp:96: undefined reference to `touchgfx::Texts::setLanguage(unsigned short)'
Src/BoardConfiguration.o: In function `ApplicationFontProvider::~ApplicationFontProvider()':
C:/Projects/StepAhead/smart/Debug/../generated/fonts/include/fonts/ApplicationFontProvider.hpp:46: undefined reference to `vtable for ApplicationFontProvider'
Src/STM32F7HAL_MIA0130.o:(.rodata+0x100): undefined reference to `touchgfx::HAL::blitCopy(unsigned short const*, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned char, bool, unsigned short, touchgfx::Bitmap::BitmapFormat, touchgfx::Bitmap::BitmapFormat)'
Src/STM32F7HAL_MIA0130.o:(.rodata+0x110): undefined reference to `touchgfx::HAL::blitFill(touchgfx::colortype, unsigned short, unsigned short, unsigned short, unsigned short, unsigned char, unsigned short, touchgfx::Bitmap::BitmapFormat)'
Src/STM32F7HAL_MIA0130.o:(.rodata+0x120): undefined reference to `touchgfx::HAL::copyFBRegionToMemory(touchgfx::Rect, unsigned short*, unsigned long)'
Src/STM32F7HAL_MIA0130.o:(.rodata+0x144): undefined reference to `touchgfx::HAL::configurePartialFrameBuffer(unsigned short, unsigned short, unsigned short, unsigned short)'
Src/STM32F7HAL_MIA0130.o:(.rodata+0x154): undefined reference to `touchgfx::HAL::drawDrawableInDynamicBitmap(touchgfx::Drawable&, unsigned short)'
Src/STM32F7HAL_MIA0130.o:(.rodata+0x158): undefined reference to `touchgfx::HAL::drawDrawableInDynamicBitmap(touchgfx::Drawable&, unsigned short, touchgfx::Rect const&)'
gui/src/common/FrontendApplication.o: In function `FrontendApplication::FrontendApplication(Model&, FrontendHeap&)':
C:/Projects/StepAhead/smart/Debug/../gui/src/common/FrontendApplication.cpp:10: undefined reference to `FrontendApplicationBase::FrontendApplicationBase(Model&, FrontendHeap&)'
gui/src/model/Model.o: In function `Model::tick()':
C:/Projects/StepAhead/smart/Debug/../gui/src/model/Model.cpp:142: undefined reference to `FrontendApplicationBase::gotoHypersyncScreenScreenSlideTransitionWest()'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [makefile:133: Smart.elf] Error 1

Note that one of the undefined is the goto screen from the above issue

Do you have any idea what is causing to these issues?

Thanks

Eyal

3 REPLIES 3
Martin KJELDSEN
Chief III

Hi Eyal,

This issue has already been fixed in the upcoming 4.13.0. For the "Change screen" action, in particular, the designer won't display it across switching screens in the designer, and as you have experienced, also during import. In your case this will cause compilation errors because the "goto"-methods won't get generated. So you'll have to redo this configuration manually for this import and be aware that you may "lose" the change screen action when changing screens in the designer, but the code is still generated.

Thanks for the report!

/Martin

egoltzman
Senior

Thanks Martin,

Two things:

  1. What do you mean by "redo this configuration manually for this import "? Can you elaborate?
  2. This explain the undefined reference to `FrontendApplicationBase::gotoLoadingFileProgressScreenScreenNoTransition()' but what about the others (see my initial question) undefined references in the link? Is this related to this too? How?

Thanks,

Eyal

Martin KJELDSEN
Chief III

Hi,

  1. By "redo" i mean, configure your "change-screen"-interactions in 4.12.3 as they were in 4.9.3 (To get back your generated goto methods).
  2. In 4.12.3 you need to "Generate" code manually in order to get all of TouchGFX bootstrapped to your application. Some of these errors seem like they may be related to the fact that you are simply not compiling all necessary files. Give that a try and let me know.

/Martin