Skip to main content
Associate
November 14, 2023
Question

TouchGFX Riverdi compile error on examples

  • November 14, 2023
  • 3 replies
  • 2517 views

I am working with a Riverdi screen (RVT50HQSFWCA0) and TouchGFX for the first time. I followed the installation instructions and tried working with multiple TouchGFX examples and new simple projects. I get a compiler error in both TouchGFX and importing into STMCubeIDE. The error comes from nema_hal.c. I saw a known issue related to the nema file, so I downgraded STMCubeMX from 6.9 to 6.8, but that did not change anything. A picture of the compiler error is attached. 

The versions I am working with:

TouchGFX Designer: 4.22.1

STMCubeMX: 6.8.1

STMCubeIDE: 1.13.2

 

Does anyone have any recommendations?


Thanks

 

This topic has been closed for replies.

3 replies

Tesla DeLorean
Guru
November 14, 2023

Is this a Riverdi project or one from ControllersTech ?

nemagfx_pool_mem

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
Tesla DeLorean
Guru
November 14, 2023

I suspect you're going to need to unpack the line, the compiler settings, and any defines, to better understand what exactly the compiler is unhappy with.

Looks to be something C++ or .cpp related, double check the syntax of the line, and order of encounter.

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
Associate
November 14, 2023

This is happening both with the Riverdi example projects and demos, as well as the STMicroelectronics examples for this chip. It is part of the TouchGFX generated code, so I am mostly concerned there's a bug or I misconfigured something. I am continuing to poke around at the files in the mean time. 

Orabnetay
Visitor II
November 16, 2023

Hi elegantMorse,

yesterday I made the same experience with the TouchGFX Designer 4.22.1 with the same Riverdi display.

My solution was change of file nema_hal.c - changing line 46.

 

 

//LOCATION_ALIGN_8BYTES(static uint8_t nemagfx_pool_mem[NEMAGFX_BYTE_POOL_SIZE]); /* NemaGFX memory pool */
static uint8_t nemagfx_pool_mem[NEMAGFX_BYTE_POOL_SIZE]; /* NemaGFX memory pool */

 

The macro LOCATION_ALIGN_8BYTES() is nowhere defined in the project.

Without, it removes the variable declaration inside the brackets.

After this change, my sample project compiled and it also run on hardware.

I need to figure out the purpose of the missing memory alignment and how to set it properly.

 

Regards

Associate II
April 2, 2024

Recently had the same issue. Thankfully, your suggestion solved it quickly.

Is Riverdi/TouchGFX aware of that issue yet?

Andrew Neil
Super User
April 2, 2024

@gatmt wrote:

Is Riverdi ... aware of that issue yet?


You could ask/tell them:

https://riverdi.com/contact 

contact@riverdi.com

 

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.