2025-05-27 8:47 AM
Hello,
I have built a project in touchGFX and it loads and runs on my STM32H735G-DK discovery board using the TouchGFX software only. However, I need to be able to expand this program to do more things so I want to use TouchGFX with Keil. This is what I have been told to do to make this work:
1) Generate the project using TouchGFX
2) Open .ioc file and change the tool chain to Keil MDK and Generate Code
3) Go back to TouchGFX and generate code again
4) Go back to CubeMX and generate code again
5) Open project in Keil and Go to Project Options --> Debug --> Settings --> Flash Download and make sure the RAM for Algorithm has a large enough size. I change these settings to Start: 0x24000000 Size 0x0000FFF4
After making these changes and building the project and loading it to my Discovery Board it should allow me to just click "Run" once and the program should run...however in the command window I get the following message:
Cannot access Memory (@ 0x70000000, Read, Acc Size: 450 Byte)
I have to click run three times and I get this message each time before the project finally runs and get a completely gray screen. I look at the frame buffer which resides at 0x70000000 and it's full of 0x55. Looks like there is an issue with accessing the external SRAM on OSPI2, but only when I run through Keil...not going directly through TouchGFX.
Is there a setting in Keil or even CubeMX I need to change to allow it to access this RAM location properly?
2025-05-27 9:09 AM
ok, so The "Cannot access Memory" message in the command window looks like it does not appear if I do not have 0x70000000 loaded in the Memory 1 Watch window. So this may not be the actual problem. The actual problem seems to be that the program requires me to click "Run" three times and once the program actually starts running the TouchGFX code only loads all 0x55 into the entire framebuffer. Any help with this would be greatly appreciated.
2025-05-28 7:41 AM
Hello @Nicholas Yunker_2 ,
What happens when you just try to run the board?
What happens if you do not do step 5?
If you get a grey screen it means it works since you pre-load the framebuffer with 0x55.
Regards,