Skip to main content
Associate II
October 21, 2024
Solved

erros openamp with touchgfx

  • October 21, 2024
  • 1 reply
  • 2708 views

I have an STM32H745 Kit with two processors: M7 and M4.
I created graphics using TouchGFX and built several screens.
I set up the M4 to work with the RTC, and I want to send information from the M4 to the M7 using OpenAMP.
I modified the linker file and built the M4 file.
The issue occurred when I tried to integrate OpenAMP into the HPP and CPP files for each screen. Errors appeared, and I don't know how to deal with them.

 

motaz9898_0-1729497414177.png

10:55:10 **** Incremental Build of configuration Debug for project STM32H745I_DISCO_CM7 ****

make -j8 all

arm-none-eabi-g++ "C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/gui/src/settings_screen/settingsPresenter.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H745xx -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DRPMSG_BUFFER_SIZE=512 -DVIRTIO_MASTER_ONLY -DNO_ATOMIC_64_SUPPORT -c -I../../../CM7/Core/Inc -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/BSP/Components/Common -I../../../Drivers/BSP/STM32H745I-DISCO -I../../../Utilities/JPEG -I../../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../../../Drivers/CMSIS/Include -I../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include -I../../CM7/../../CM7/TouchGFX/generated/fonts/include -I../../CM7/../../CM7/TouchGFX/generated/gui_generated/include -I../../CM7/../../CM7/TouchGFX/generated/images/include -I../../CM7/../../CM7/TouchGFX/generated/texts/include -I../../CM7/../../CM7/TouchGFX/generated/videos/include -I../../CM7/../../CM7/TouchGFX/gui/include -I../../../CM7/OPENAMP -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/compiler/gcc -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/rpmsg -I"C:/TouchGFXProjects/noooooooooo/Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -femit-class-debug-always -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Application/User/gui/settingsPresenter.d" -MT"Application/User/gui/settingsPresenter.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Application/User/gui/settingsPresenter.o"

arm-none-eabi-g++ "C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/gui/src/settings_screen/settingsView.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H745xx -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DRPMSG_BUFFER_SIZE=512 -DVIRTIO_MASTER_ONLY -DNO_ATOMIC_64_SUPPORT -c -I../../../CM7/Core/Inc -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/BSP/Components/Common -I../../../Drivers/BSP/STM32H745I-DISCO -I../../../Utilities/JPEG -I../../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../../../Drivers/CMSIS/Include -I../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include -I../../CM7/../../CM7/TouchGFX/generated/fonts/include -I../../CM7/../../CM7/TouchGFX/generated/gui_generated/include -I../../CM7/../../CM7/TouchGFX/generated/images/include -I../../CM7/../../CM7/TouchGFX/generated/texts/include -I../../CM7/../../CM7/TouchGFX/generated/videos/include -I../../CM7/../../CM7/TouchGFX/gui/include -I../../../CM7/OPENAMP -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/compiler/gcc -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/rpmsg -I"C:/TouchGFXProjects/noooooooooo/Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -femit-class-debug-always -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Application/User/gui/settingsView.d" -MT"Application/User/gui/settingsView.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Application/User/gui/settingsView.o"

arm-none-eabi-g++ "C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H745xx -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DRPMSG_BUFFER_SIZE=512 -DVIRTIO_MASTER_ONLY -DNO_ATOMIC_64_SUPPORT -c -I../../../CM7/Core/Inc -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/BSP/Components/Common -I../../../Drivers/BSP/STM32H745I-DISCO -I../../../Utilities/JPEG -I../../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../../../Drivers/CMSIS/Include -I../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include -I../../CM7/../../CM7/TouchGFX/generated/fonts/include -I../../CM7/../../CM7/TouchGFX/generated/gui_generated/include -I../../CM7/../../CM7/TouchGFX/generated/images/include -I../../CM7/../../CM7/TouchGFX/generated/texts/include -I../../CM7/../../CM7/TouchGFX/generated/videos/include -I../../CM7/../../CM7/TouchGFX/gui/include -I../../../CM7/OPENAMP -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/compiler/gcc -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/rpmsg -I"C:/TouchGFXProjects/noooooooooo/Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -femit-class-debug-always -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Application/User/generated/FrontendApplicationBase.d" -MT"Application/User/generated/FrontendApplicationBase.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Application/User/generated/FrontendApplicationBase.o"

arm-none-eabi-g++ "C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/target/generated/TouchGFXConfiguration.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H745xx -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DRPMSG_BUFFER_SIZE=512 -DVIRTIO_MASTER_ONLY -DNO_ATOMIC_64_SUPPORT -c -I../../../CM7/Core/Inc -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/BSP/Components/Common -I../../../Drivers/BSP/STM32H745I-DISCO -I../../../Utilities/JPEG -I../../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../../../Drivers/CMSIS/Include -I../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include -I../../CM7/../../CM7/TouchGFX/generated/fonts/include -I../../CM7/../../CM7/TouchGFX/generated/gui_generated/include -I../../CM7/../../CM7/TouchGFX/generated/images/include -I../../CM7/../../CM7/TouchGFX/generated/texts/include -I../../CM7/../../CM7/TouchGFX/generated/videos/include -I../../CM7/../../CM7/TouchGFX/gui/include -I../../../CM7/OPENAMP -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/compiler/gcc -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/rpmsg -I"C:/TouchGFXProjects/noooooooooo/Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -femit-class-debug-always -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Application/User/TouchGFX/target/generated/TouchGFXConfiguration.d" -MT"Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o"

arm-none-eabi-g++ "C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H745xx -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DRPMSG_BUFFER_SIZE=512 -DVIRTIO_MASTER_ONLY -DNO_ATOMIC_64_SUPPORT -c -I../../../CM7/Core/Inc -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/BSP/Components/Common -I../../../Drivers/BSP/STM32H745I-DISCO -I../../../Utilities/JPEG -I../../../Drivers/STM32H7xx_HAL_Driver/Inc -I../../../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../../../Drivers/CMSIS/Include -I../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include -I../../CM7/../../CM7/TouchGFX/generated/fonts/include -I../../CM7/../../CM7/TouchGFX/generated/gui_generated/include -I../../CM7/../../CM7/TouchGFX/generated/images/include -I../../CM7/../../CM7/TouchGFX/generated/texts/include -I../../CM7/../../CM7/TouchGFX/generated/videos/include -I../../CM7/../../CM7/TouchGFX/gui/include -I../../../CM7/OPENAMP -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include -I../../../Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/compiler/gcc -I../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/rpmsg -I"C:/TouchGFXProjects/noooooooooo/Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp" -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-use-cxa-atexit -Wall -femit-class-debug-always -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.d" -MT"Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o"

In file included from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtio.h:10,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/rpmsg_virtio.h:18,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/open_amp.h:12,

from ../../../CM7/OPENAMP/openamp.h:27,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/settings_screen/settingsView.hpp:7,

from C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/gui/src/settings_screen/settingsPresenter.cpp:1:

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h: In function 'virtqueue* virtqueue_allocate(unsigned int)':

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:211:35: error: invalid application of 'sizeof' to incomplete type 'virtqueue_allocate(unsigned int)::vq_desc_extra'

211 | num_desc_extra * sizeof(struct vq_desc_extra);

| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtio.h:10,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/rpmsg_virtio.h:18,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/open_amp.h:12,

from ../../../CM7/OPENAMP/openamp.h:27,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/settings_screen/settingsView.hpp:7,

from C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/gui/src/settings_screen/settingsView.cpp:1:

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h: In function 'virtqueue* virtqueue_allocate(unsigned int)':

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:211:35: error: invalid application of 'sizeof' to incomplete type 'virtqueue_allocate(unsigned int)::vq_desc_extra'

211 | num_desc_extra * sizeof(struct vq_desc_extra);

| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

make: *** [Application/User/gui/subdir.mk:58: Application/User/gui/settingsPresenter.o] Error 1

make: *** Waiting for unfinished jobs....

make: *** [Application/User/gui/subdir.mk:60: Application/User/gui/settingsView.o] Error 1

In file included from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtio.h:10,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/rpmsg_virtio.h:18,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/open_amp.h:12,

from ../../../CM7/OPENAMP/openamp.h:27,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/settings_screen/settingsView.hpp:7,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:22,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/common/FrontendHeap.hpp:4,

from C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp:6:

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h: In function 'virtqueue* virtqueue_allocate(unsigned int)':

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:211:35: error: invalid application of 'sizeof' to incomplete type 'virtqueue_allocate(unsigned int)::vq_desc_extra'

211 | num_desc_extra * sizeof(struct vq_desc_extra);

| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:216:23: error: call of overloaded 'memset(virtqueue*&, int, uint32_t&)' is ambiguous

216 | memset(vqs, 0x00, vq_size);

| ~~~~~~^~~~~~~~~~~~~~~~~~~~

In file included from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/AbstractPainter.hpp:21,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Rasterizer.hpp:22,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/CWRUtil.hpp:22,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/graph/AbstractDataGraph.hpp:25,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/graph/GraphWrapAndClear.hpp:22,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/screen1_screen/Screen1ViewBase.hpp:12,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/screen1_screen/Screen1View.hpp:4,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:18:

C:\ST\STM32CubeIDE_1.16.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.200.202406191623\tools\bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/include/string.h:33:10: note: candidate: 'void* memset(void*, int, size_t)'

33 | void * memset (void *, int, size_t);

| ^~~~~~

In file included from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/CWRUtil.hpp:21:

../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/Utils.hpp:74:6: note: candidate: 'void touchgfx::memset(void*, uint8_t, uint32_t)'

74 | void memset(void* data, uint8_t c, uint32_t size);

| ^~~~~~

make: *** [Application/User/generated/subdir.mk:217: Application/User/generated/FrontendApplicationBase.o] Error 1

In file included from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtio.h:10,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/rpmsg_virtio.h:18,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/open_amp.h:12,

from ../../../CM7/OPENAMP/openamp.h:27,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/settings_screen/settingsView.hpp:7,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:22,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/common/FrontendHeap.hpp:4,

from C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/target/generated/TouchGFXConfiguration.cpp:21:

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h: In function 'virtqueue* virtqueue_allocate(unsigned int)':

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:211:35: error: invalid application of 'sizeof' to incomplete type 'virtqueue_allocate(unsigned int)::vq_desc_extra'

211 | num_desc_extra * sizeof(struct vq_desc_extra);

| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:216:23: error: call of overloaded 'memset(virtqueue*&, int, uint32_t&)' is ambiguous

216 | memset(vqs, 0x00, vq_size);

| ~~~~~~^~~~~~~~~~~~~~~~~~~~

In file included from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/AbstractPainter.hpp:21,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Rasterizer.hpp:22,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/CWRUtil.hpp:22,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/graph/AbstractDataGraph.hpp:25,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/graph/GraphWrapAndClear.hpp:22,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/screen1_screen/Screen1ViewBase.hpp:12,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/screen1_screen/Screen1View.hpp:4,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:18:

C:\ST\STM32CubeIDE_1.16.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.200.202406191623\tools\bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/include/string.h:33:10: note: candidate: 'void* memset(void*, int, size_t)'

33 | void * memset (void *, int, size_t);

| ^~~~~~

In file included from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/CWRUtil.hpp:21:

../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/Utils.hpp:74:6: note: candidate: 'void touchgfx::memset(void*, uint8_t, uint32_t)'

74 | void memset(void* data, uint8_t c, uint32_t size);

| ^~~~~~

In file included from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtio.h:10,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/rpmsg_virtio.h:18,

from ../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/open_amp.h:12,

from ../../../CM7/OPENAMP/openamp.h:27,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/settings_screen/settingsView.hpp:7,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:22,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/common/FrontendHeap.hpp:4,

from C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:21:

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h: In function 'virtqueue* virtqueue_allocate(unsigned int)':

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:211:35: error: invalid application of 'sizeof' to incomplete type 'virtqueue_allocate(unsigned int)::vq_desc_extra'

211 | num_desc_extra * sizeof(struct vq_desc_extra);

| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

../../../Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/virtqueue.h:216:23: error: call of overloaded 'memset(virtqueue*&, int, uint32_t&)' is ambiguous

216 | memset(vqs, 0x00, vq_size);

| ~~~~~~^~~~~~~~~~~~~~~~~~~~

In file included from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/AbstractPainter.hpp:21,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/canvas_widget_renderer/Rasterizer.hpp:22,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/CWRUtil.hpp:22,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/graph/AbstractDataGraph.hpp:25,

from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/graph/GraphWrapAndClear.hpp:22,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/screen1_screen/Screen1ViewBase.hpp:12,

from ../../CM7/../../CM7/TouchGFX/gui/include/gui/screen1_screen/Screen1View.hpp:4,

from ../../CM7/../../CM7/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp:18:

C:\ST\STM32CubeIDE_1.16.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.200.202406191623\tools\bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/include/string.h:33:10: note: candidate: 'void* memset(void*, int, size_t)'

33 | void * memset (void *, int, size_t);

| ^~~~~~

In file included from ../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/widgets/canvas/CWRUtil.hpp:21:

../../CM7/../../CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/Utils.hpp:74:6: note: candidate: 'void touchgfx::memset(void*, uint8_t, uint32_t)'

74 | void memset(void* data, uint8_t c, uint32_t size);

| ^~~~~~

make: *** [Application/User/TouchGFX/target/generated/subdir.mk:37: Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o] Error 1

make: *** [Application/User/TouchGFX/target/generated/subdir.mk:39: Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o] Error 1

"make -j8 all" terminated with exit code 2. Build might be incomplete.

 

10:55:13 Build Failed. 14 errors, 0 warnings. (took 3s.161ms)

call of overloaded 'memset(virtqueue*&, int, uint32_t&)' is ambiguous
invalid application of 'sizeof' to incomplete type 'virtqueue_allocate(unsigned int)::vq_desc_extra'
make: *** [Application/User/generated/subdir.mk:217: Application/User/generated/FrontendApplicationBase.o] Error 1
make: *** [Application/User/gui/subdir.mk:58: Application/User/gui/settingsPresenter.o] Error 1
make: *** [Application/User/gui/subdir.mk:60: Application/User/gui/settingsView.o] Error 1
make: *** [Application/User/TouchGFX/target/generated/subdir.mk:37: Application/User/TouchGFX/target/generated/TouchGFXConfiguration.o] Error 1
make: *** [Application/User/TouchGFX/target/generated/subdir.mk:39: Application/User/TouchGFX/target/generated/TouchGFXGeneratedHAL.o] Error 1
make: *** Waiting for unfinished jobs....
STM32H745I_DISCO_CM4.elf has a LOAD segment with RWX permissions
candidate: 'void* memset(void*, int, size_t)'
candidate: 'void touchgfx::memset(void*, uint8_t, uint32_t)'

 

Best answer by Mohammad MORADI ESFAHANIASL

Hello @motaz9898,

When you want to communicate with the backend of your GUI, you cannot directly add the codes to your screen files. Please follow the documentations below to learn about the procedure you have to take:

MVP Architecture

Concept of Screen 

Backend Communication 

I hope this helps you!
Don't hesitate to ask more questions if you have any!

1 reply

ST Employee
October 21, 2024

Hello @motaz9898,

When you want to communicate with the backend of your GUI, you cannot directly add the codes to your screen files. Please follow the documentations below to learn about the procedure you have to take:

MVP Architecture

Concept of Screen 

Backend Communication 

I hope this helps you!
Don't hesitate to ask more questions if you have any!

motaz9898Author
Associate II
October 21, 2024

Should I use RTOS with OpenAMP?
And how can I open multiple communication channels?"

"When I tried to use OpenAMP alone in a C file, the processor hangs."

mƎALLEm
Technical Moderator
October 21, 2024

You can use it in two forms: with and without RTOS:

See these examples:

https://github.com/STMicroelectronics/STM32CubeH7/tree/master/Projects/STM32H747I-EVAL/Applications/OpenAMP

And that depends if you are using TouchGFX with RTOS, in that case you need to use OpenAMP with RTOS.

"To give better visibility on the answered topics, please click on ""Accept as Solution"" on the reply which solved your issue or answered your question."