cancel
Showing results for 
Search instead for 
Did you mean: 

Running TouchGFX on STM32F2 series MCU

JBoec.1
Associate II

Hi,

I need al little help running TouchGFX to a STM32F207VG MCU. We already have a custom board featuring this MCU and a touchscreen with an ILI9341 driver IC. The screen communication is done using the FSMC on the MCU. I've got code working to write data to the framebuffer integrated into the screen and I also tried a couple of examples on Discovery boards featuring other MCUs.

Now I want to combine these. I quickly realized that code generation for TouchGFX is not supported in CubeMX for this chip. Can I just generate a gui and add it to a project generated with CubeMX and manually add my driver code? Or is there another way?

Thanks in advance!

12 REPLIES 12
ALomb
Senior

Hello @Alexandre RENOUX​ ,

thanks for the explanation.

I look forward to your feedback on the FreeRTOS problem.

I believe there are many scenarios with TouchGFX, SPI Display and FreeRTOS. Definitely not in the case of the STM32G071 with limited memory, but on others such as STM32F4xx without LTDC.

I'm working on the STM42F446RE (because I also need the CAN interface) on which I have already successfully ported the demo for G071RB. I had to implement the external loader as well.

This weekend I tried to find a possible solution in the forum and I found this thread where @Martin KJELDSEN​ talks about a possible problem in CMSIS V2 OSWrapper generated by TouchGFX Generator, but I didn't understand if it was fixed in the last version 4.15.0 and if it impacts our scenario.

@Richard Lowe​ , we await a reply with patience 😊

I am full available for testing and integration.

Thanks.

/Antonello

Martin KJELDSEN
Chief III

We've fixed an error where `touchgfx::OSWrappers::signalRenderingDone()' was required, despite RTOS being selected (it's only useful it there's no OS).

/Martin

ALomb
Senior

Hello,

I think I have made some progress!

I had to statically configure the TouchGFX task with a buffer of 4096.

osThreadId_t TouchGFXTaskHandle;
uint32_t TouchGFXTaskBuffer[ 4096 ];
osStaticThreadDef_t TouchGFXTaskControlBlock;
const osThreadAttr_t TouchGFXTask_attributes = {
  .name = "TouchGFXTask",
  .stack_mem = &TouchGFXTaskBuffer[0],
  .stack_size = sizeof(TouchGFXTaskBuffer),
  .cb_mem = &TouchGFXTaskControlBlock,
  .cb_size = sizeof(TouchGFXTaskControlBlock),
  .priority = (osPriority_t) osPriorityNormal,
};

Currently there is only the MB1642BDisplay driver: MB1642BButtonController and MB1642BDataReader drivers are missing. I have published the project at this link if it is useful!

Is there a way to correctly size the TouchGFX_Task stack_size ?

/Antonello