cancel
Showing results for 
Search instead for 
Did you mean: 

Notes on my experience getting a TouchGFX project going

I usually use a Mac, but don't hold that against me.

First, no Mac support. You're making me fire up windows, TouchGFX better be good. Fine, move on.

I've gone through the videos and created a few screens and have them running updating values, buttons working, so I'm not a COMPLETE noob, just going through the motions to figure out what a noob might run into.

Create a new project in TouchGFX Designer for STM32F429i-DISC1, call it fu429Disco for a 429 discovery board. Rotate the display by 90 degrees. Generate code and save. (I put 'fu' at the beginning of project names that are throwaway and okay to delete without thinking)

Go into CubeIDE, <File><Open Projects from File System...>. Search around for my project. Go back into Designer and find out that the project was stored in a directory in c:\ instead of my home directory. Why? That's an odd decision, isn't Windows a multi-user OS? Aren't you supposed to keep your files out of the root directory? That was a rule 20 years ago. Whatever, move on.

Back to the <Open Projects from File System...>, it finds TWO projects in my project. Confusing, which do I choose? Fine, do both. Looks okay. Is it correct? (shrug)

Open the only .IOC file in the file list ...  "Invalid Input: Must be project's active .ioc file.". Sigh.

Rename STM32F429i_DISCO_REV_E01.ioc to fu429Disco.ioc. IOC now opens.

Let's try something crazy, let's save a project into my home directory instead. No, can't do that. Windows creates accounts with a home directory of <firstName><space><lastName> and Designer can't cope with paths that contain <space> characters. AH, that's why it was stuffing my project into the root directory. Man, even CubeIDE can handle spaces in path names. Whatever, maybe the Designer team and the Cube teams don't like each other.

I want to use ThreadX, like the rest of the processors in my system, can I have ThreadX as an RTOS rather than FreeRTOS. There are 3 boards that list ThreadX, but not the 429. Hmm, it's possible then. I wonder...off to Cube.

How about switching from FreeRTOS to ThreadX? Nope, CubeIDE doesn't seem to want to let me choose ThreadX/AZRTOS, it just spins for a while and gives up. Will this even make sense or will Designer just force it back to FreeRTOS if I change a screen?

Restart CubeIDE, now it lets me choose ThreadX. Generate code. Notice that none of the directories in the project are marked as source directories. This project really isn't set up to use CubeIDE is it? My hope is fading fast.

Back to Designer, add a background. Run in simulator, looks right. Run on my board, FAIL. The project is still hooked to FreeRTOS. Not unexpected.

Hunt around Designer for a while to see how to change the RTOS to ThreadX. I can't find an affordance to do that.

Okay, it looks like I'll have to find the video on how to create a custom board. The alternative is that I use my customer's old emWin code, but I'd rather do it the ST way but, so far, this has a lot of sharp edges.

 

1 ACCEPTED SOLUTION

Accepted Solutions
GaetanGodart
ST Employee

The default location for TouchGFX projects is in the C so it is normal.

You can just open STM32CubeIDE by opening the .project in the STM32CubeIDE folder in your project's folder and you won't have any issue.

Please find the official documentation here :support.touchgfx.com

Also, we explain how to setup an OS here : support.touchgfx.com/docs/basic-concepts/operating-system

Gaetan Godart
Software engineer at ST (TouchGFX)

View solution in original post

1 REPLY 1
GaetanGodart
ST Employee

The default location for TouchGFX projects is in the C so it is normal.

You can just open STM32CubeIDE by opening the .project in the STM32CubeIDE folder in your project's folder and you won't have any issue.

Please find the official documentation here :support.touchgfx.com

Also, we explain how to setup an OS here : support.touchgfx.com/docs/basic-concepts/operating-system

Gaetan Godart
Software engineer at ST (TouchGFX)