cancel
Showing results for 
Search instead for 
Did you mean: 

What causes an "Invalid project path: Missing project folder or file: \PROJECT_NAME\GRAPHICS for Source path"

scottSD
Lead

This is a warning listed under the "Problems" tab in STM32CubeIDE (1.1.0). I am seeing some strange behavior and am wondering if this is the cause.

The strange behavior I am seeing is that often when I change something in the TouchGFX Designer and click "Generate Code" then do a Run > Debug in STM32CubeIDE, the change does not take effect. What runs on the target is some previous build (without the changes).

Sometimes if I disconnect the target and reconnect it, the latest code is correctly running on the target.

1 ACCEPTED SOLUTION

Accepted Solutions

No problem, Scott.

What a nice little evening exchange we're having here on multiple threads. This definitely looks like something is broken in the project generation from CubeMX/IDE. Those "entries" refer to source paths as you can obviously tell, but there's no such thing as a "GRAPHICS" folder. Not sure where that comes from - I'll have to verify tomorrow at the office.

You can remove it by going to project settings. There's a list of source entries probably in the compiler settings.

/Martin

View solution in original post

17 REPLIES 17
Martin KJELDSEN
Chief III

Are you sure that "Run->Debug" will also build your current project (and thus the changes made through the designer?)

If you're compiling the new changes then the conclusion must be that the target isn't programmed properly.

/Martin

But if the target isn't correctly being programmed, why does disconnecting/reconnecting showing the most recent build?

And...what causes the warning "Invalid project path: Missing project folder or file: \PROJECT_NAME\GRAPHICS for Source path"?

I will start fresh and create yet again (a tedious task =) ) a new project in STM32CubeIDE and see if I can replicate this warning message.

One thing I am seeing now is that the STM32CubeIDE debugger constantly breaks in my handleTickEvent() function even when no breakpoint is set. Is this normal? Is there a way to prevent it?

Upon further investigation, it is possible that this is what I was seeing and misinterpreted it as not loading the target correctly (since recycling power on the target showed it was loaded).

Cartu38 OpenDev
Lead II

Most probably issue is the one pointed by Martin. As far as TouchGFX Designer is doing, out of CubeIDE context, file system update, Eclipse cannot be aware of.

Have a try to refresh your project tree (F5 key once project selected or right click > Refresh on project selection) prior initiating a new debug session. Doing such Eclipse will resync. its workspace content according file system material and so initiate proper processes prior flashing target device. One of possible inititaed process would be a project compilation if some file update detected vs. prior compilation task.

I believe the two issues I am seeing are not related.

I am still wondering what causes the warning "Invalid project path: Missing project folder or file: \PROJECT_NAME\GRAPHICS for Source path"

I created a new project in STM32CubeIDE 1.1.0 , and followed the steps to create a simple design in the TouchGFX designer.

It is a simple project with an imageProgress widget in it. Below is what the Project Explorer shows (yes, I did Right Click > Refresh):

0690X00000ArifOQAR.png

Below is the warning:

0690X00000ArifTQAR.png

Should there be a GRAPHICS folder in the project?

Yeah, it sounds like the code you have in front of you does not represent what's running on target.

Could you try loading the hex file using st-link or stCubeProgrammer standalone?

/Martin

Can you try to inspect the .cproject file or .project file for where this reference is coming from and paste it here? It looks strange.

/Martin

Thanks for the reply, Martin.

GRAPHICS does not appear in the .project file.

It appears in the .cproject file in two places:

Here is one place (under storageModule moduleId="cdtBuildSystem"):

<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1796982624" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F746G-DISCO || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../USB_HOST/App | ../FATFS/App | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../TouchGFX/gui/include | ../TouchGFX/generated/fonts/include | ../Drivers/CMSIS/Device/ST/STM32F7xx/Include | ../TouchGFX/generated/texts/include | ../Drivers/STM32F7xx_HAL_Driver/Inc | ../TouchGFX/generated/images/include | ../Middlewares/ST/STM32_USB_Host_Library/Core/Inc | ../Middlewares/ST/STM32_USB_Host_Library/Class/CDC/Inc | ../Drivers/CMSIS/Include | ../Core/Inc | ../Middlewares/ST/TouchGFX/touchgfx/framework/include | ../TouchGFX/generated/gui_generated/include | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1 | ../FATFS/Target | ../USB_HOST/Target | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS | ../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy | ../Middlewares/Third_Party/FatFs/src | ../TouchGFX/target ||  ||  || USE_HAL_DRIVER | STM32F746xx ||  || Drivers | USB_HOST | TouchGFX | Core/Startup | GRAPHICS | Middlewares | Core | FATFS ||  || ../Middlewares/ST/TouchGFX/touchgfx/lib/core/cortex_m7/gcc/libtouchgfx-float-abi-hard.a || ${workspace_loc:/${ProjName}/STM32F746NGHX_FLASH.ld} || true || NonSecure ||  || secure_nsclib.o || " valueType="string"/>

Here is the other (which is under "sourceEntries"):

<sourceEntries>
						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="GRAPHICS"/>
						<entry excluding="ST/TouchGFX/touchgfx/framework/source/platform/hal/simulator/sdl2/HALSDL2.cpp|ST/TouchGFX/touchgfx/framework/source/platform/hal/simulator/sdl2/HALSDL2_icon.cpp|ST/TouchGFX/touchgfx/framework/source/platform/hal/simulator/sdl2/OSWrappers.cpp|ST/TouchGFX/touchgfx/os/OSWrappers_cmsis.cpp|ST/TouchGFX/touchgfx/framework/source/platform/driver/touch/SDL2TouchController.cpp|ST/TouchGFX/touchgfx_backup*" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
						<entry excluding="generated/simulator/src/mainBase.cpp|simulator/main.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="TouchGFX"/>
						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="USB_HOST"/>
						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FATFS"/>
						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
					</sourceEntries>

No problem, Scott.

What a nice little evening exchange we're having here on multiple threads. This definitely looks like something is broken in the project generation from CubeMX/IDE. Those "entries" refer to source paths as you can obviously tell, but there's no such thing as a "GRAPHICS" folder. Not sure where that comes from - I'll have to verify tomorrow at the office.

You can remove it by going to project settings. There's a list of source entries probably in the compiler settings.

/Martin