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

20 REPLIES 20

Hi
Thanks for the info.
Current Debugger and Target settings aredebugger.jpgtarget.jpg

 

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.*)
  }
}