cancel
Showing results for 
Search instead for 
Did you mean: 

Riverdi 121STM32H7 linking problem with Keil

mcumake
Associate II

Hello I have a problem compiling TouchGFX for Keil. My procedure:

1/ Run TouchGFX Designer 4.25

2/ Create New project

3/ Go to tab – By Partners – select board Riverdi STM32 121STM32H7
riverdi.jpg
4/ Click to Create

5/ Add Button ( for example)

6/ Click Generate CODE

7/ Go to project Folder and open ioc file Riverdi_121STM32H7_1_6.ioc STM32CubeMx v6.5

8/ Go to tab Middleware and Software pack Select FreeRTOS M7 Select tab Advanced settings USE_NEWLIB_REENTRAND ← disable !!! ( for keil it must be turned off )

9/ Go to project manager Switch toolchain IDE to MDK keil

 

10/ Save and Generate CODE

11/ After generate code by STM32CubeMx I'm going back to Touchgfx Designer and click generate code again TouchGfx generate code for keil.

12/ Run project in Keil


13/ Go to Option for target Go to tab OUTPUT
riverdi3.jpg
and uncheck Browse information
14/ Project build target

15 / Keil linking problem Not enough information to list image symbols.
Not enough information to list load addresses in the image map.

Finished: 2 information, 0 warning and 81 error messages.
"Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf" - 81 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:14
riverdi4.jpg
Can anyone please solve the problem with compiling this Riverdi display for KEIL? Please try to compile a simple project for Riverdi STM32H7 display in MDK KEIL.
Thanks

4 REPLIES 4
Osman SOYKURT
ST Employee

Hello @mcumake,

I've contacted our partner Riverdi who created the TBS. I'm sure they could help.

Osman SOYKURT
ST Software Developer | TouchGFX
Osman SOYKURT
ST Employee

Hello @mcumake ,

The Riverdi 121STM32H7 TBS that is available on the TouchGFX Designer is ready to be working with STM32CubeIDE, but it needs a bit more of work to be working with other toolchains. The linker file is for example not complete and has to be written by the user. 

I'm still waiting for an answer from our partner Riverdi. Meanwhile, could you try this linker script and see if that resolves linking issue?

LR_IROM1 0x08000000 0x00100000  {    ; load region for FLASH (1MB)
  ER_IROM1 0x08000000 0x00100000  {  ; execution region for FLASH
    *.o (RESET, +First)           ; Vector table
    *(InRoot$$Sections)
    .ANY (+RO)
    .ANY (+XO)
    .ANY (.text*)
    .ANY (.rodata*)
    .ANY (.ARM.extab*)
    .ANY (.ARM.exidx*)
    .ANY (.init_array*)
    .ANY (.fini_array*)
    .ANY (.preinit_array*)
  }
}

LR_RAM_D1 0x24000000 0x00080000  {  ; RAM_D1 (512K)
  ER_RAM_D1 0x24000000 0x00080000  {
    .ANY (+RW +ZI)
    .ANY (.data*)
    .ANY (.bss*)
    .ANY (.RamFunc*)
    .ANY (.RamFunc*)
    .ANY (.bss)
    .ANY (COMMON)
    .ANY (._user_heap_stack)
  }
}


LR_RAM_D2 0x30000000 0x00048000  {  ; RAM_D2 (288K)
  ER_RAM_D2 0x30000000 0x00048000  {
    .ANY (.RxDecripSection)
    .ANY (.TxDecripSection)
    .ANY (.Rx_PoolSection)
  }
}

LR_QUADSPI 0x90000000 0x04000000  { ; QUADSPI (64MB)
  ER_QUADSPI 0x90000000 0x04000000  {
    .ANY (ExtFlashSection)
    .ANY (ExtFlashSection.*)
    .ANY (.gnu.linkonce.r.*)
  }
}

LR_SDRAM 0xD0000000 0x005DC000  {   ; SDRAM (6000K)
  ER_SDRAM 0xD0000000 0x005DC000  {
    .ANY (TouchGFX_Framebuffer)
    .ANY (TouchGFX_Framebuffer.*)
    .ANY (.gnu.linkonce.r.*)
  }
}

LR_SDRAM2 0xD05DC000 0x00224000  {  ; SDRAM2 (2192K)
  ER_SDRAM2 0xD05DC000 0x00224000  {
    .ANY (Video_RGB_Buffer)
    .ANY (Video_RGB_Buffer.*)
    .ANY (.gnu.linkonce.r.*)
  }
}

 

Osman SOYKURT
ST Software Developer | TouchGFX
Hi OSMAN I tried your SCATTER file.
The compiler reports this error
 

linking...
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Error: L6218E: Undefined symbol ExitRun0Mode (referred from startup_stm32h757xx_cm7.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 1 error messages.
"Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf" - 1 Error(s), 0 Warning(s).
Target not created.

another attempt with the V6 compiler
l
inking...
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: abstractpartition.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: lcd16bpp.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: application.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: bitmap.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: box.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: button.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: constfont.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: container.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: dma.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: font.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: fontmanager.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: hal.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: lcd.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: screen.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: textprovider.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: typedtext.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: unicode.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: utils.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: abstractbutton.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: displaytransformation.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: drawable.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: gestures.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: stm32_crc_lock.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: texturemaptypes.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Warning: L6869W: touchcalibration.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Error: L6218E: Undefined symbol ExitRun0Mode (referred from startup_stm32h757xx_cm7.o).
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Error: L6218E: Undefined symbol __aeabi_vec_ctor_nocookie_nodtor (referred from application.o).
Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf: Error: L6218E: Undefined symbol typeinfo for touchgfx::Font (referred from constfont.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 25 warning and 3 error messages.
"Riverdi_121STM32H7_1_6_CM7\Riverdi_121STM32H7_1_6_CM7.axf" - 3 Error(s), 25 Warning(s).
Target not created.