cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F746ZGT7 Linker error: "Non-constant or Forward Reference Address Expression"

Aashritha_Vuda
Associate II

 

Dear Support Team,

I am encountering an issue while building my project for the STM32F746ZGT7 in STM32CubeIDE version 1.16.0.And I'm working to "DISPLAY BOARD BRING - UP" During the linking process, I receive the following error message:

 

 
C:/ST/STM32CubeIDE_1.16.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe:C:\TouchGFXProjects\Display_Bring_Up\STM32F746ZGTX_FLASH.ld:184: non constant or forward reference address expression for section ... collect2.exe: error: ld returned 1 exit status make: *** [makefile:118: Display_Bring_Up.elf] Error 1
 

Steps to Reproduce:

  1. Open STM32CubeIDE version 1.16.0.
  2. Open the STM32F746ZGT7 project.
  3. Attempt to build the project.
  4. The error occurs during the linking phase.

Environment:

  • STM32CubeIDE Version: 1.16.0
  • Toolchain Version: GNU Tools for STM32 (12.3.1)
  • Board: STM32F746ZGT7
  • Operating System: Windows 10

Description of the Problem:

The error appears to be related to an invalid or forward reference address expression in the linker script STM32F746ZGTX_FLASH.ld at line 184. I have already checked the linker script for any invalid address or section definitions, but the issue persists

Steps Taken to Resolve the Issue:

  1. I verified the memory regions and configurations in STM32CubeMX, ensuring they are correctly defined.
  2. I cleaned the project and rebuilt it, but the error still occurs.

Could you kindly provide guidance on how to resolve this issue? Any assistance would be greatly appreciated

 

4 REPLIES 4
Souhaib MAZHOUD
ST Employee

Hello @Aashritha_Vuda 

Could you give a try to the latest version of CubeIDE 1.17.0?

KR, Souhaib

Linker Script not attached..

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Subject:

"Display Bring-up Issue on Custom STM32F746ZGT7 Board"

Ticket Description:

Hello,

I am working on bringing up a custom board with the STM32F746ZGT7 microcontroller and a TFT display (800x480 resolution, parallel interface). However, I am encountering an issue where the display is not showing any output. I would appreciate assistance with properly configuring and initializing the display for this custom setup.

Project Overview:

  • Microcontroller: STM32F746ZGT7
  • Display Type: TFT 800x480
  • Interface: 16-bit parallel (connected via FSMC or LTDC, based on your configuration)
  • Graphics Library: TouchGFX (or other graphical libraries like emWin or STM32CubeMX graphics)
  • Custom Board: The board is custom-designed, and I have used the STM32F746ZGT7 with minimal changes to the base Nucleo board's design.

Issue:

  • Symptom: The screen remains blank or does not display any graphical output. No image or text appears on the screen.
  • Expected Behavior: I expect to see the initialized graphical interface (e.g., a simple logo or color bar) on the screen after the display initialization.
  • Steps Taken:
    • I have configured the display interface (LTDC/FSMC) in STM32CubeMX.
    • I have set up the clock, GPIO pins, and peripheral initialization in STM32CubeMX and generated the initialization code.
    • I have tried initializing the display using the default initialization code and with manual settings, but the display remains blank.
    • I have confirmed that the display works on a known working board (e.g., STM32F7 Nucleo).

Configuration Details:

  • STM32CubeMX Configuration:
    • I have configured the LTDC or FSMC correctly (based on the display interface).
    • The resolution and color format (RGB565, for example) are set correctly in STM32CubeMX.
    • GPIO Pinout: Display data lines are connected to the appropriate GPIO pins.
  • TouchGFX Configuration: I have enabled TouchGFX middleware in STM32CubeMX and set up the appropriate layer and resolution settings.
  • Frame Buffer: I have configured the framebuffer address in SDRAM or SRAM.

Hardware Details:

  • Custom Board: I am using a custom board with the STM32F746ZGT7.
  • Display: 800x480 TFT display from XYZ Company (Model XYZ123).
  • External Components: There are no external components, but I am using a 5V power supply and level shifters (if needed) for the display.

Software/Tools Used:

  • IDE: STM32CubeIDE v1.8.0
  • Toolchain: GCC ARM 9.2.1
  • CubeMX Version: 5.6.1
  • TouchGFX Version: 4.24.2 (or other version if you use a different framework)
  • Driver: I am using the LTDC driver with TouchGFX.

Error Logs or Console Output:

  • There are no specific error messages being printed on the console or debug output.
  • The initialization seems to complete successfully, but the display remains blank.

Other Notes:

  • I have checked the power supply to the display and confirmed that the voltage levels (e.g., 3.3V or 5V) are correct.
  • The timing settings for the LTDC (horizontal/vertical sync, back porch, etc.) are configured according to the display datasheet, but the display still does not show any content.
  • The frame buffer is configured correctly in the memory space (SDRAM or SRAM).

Request for Help:

Could you please assist in troubleshooting this issue? I would appreciate any guidance on the following:

  1. Correct LTDC or FSMC configuration for a parallel TFT display.
  2. Timing settings and how to properly adjust them based on the display datasheet.
  3. Suggestions for debugging or checking any common mistakes or misconfigurations during display initialization.

Thank you!

@Aashritha_Vuda  How cubeMX 5.6.1(This older version) version is supportting touchgfx 4.24.2 (This latest Version).?

 

by the way .. similar kind of issue i also faced on my custom board... i resovled it by correcting QUADSPI, FMC and SDRAM configuration.

if you thing you have configured these peripherals properly then try to read and write some array of data to SDRAM and QUAD SPI or Other external storage your using.