2025-05-16 1:24 AM
STMCubeMX version: 6.14.0
Mcu Reference: STM32H757XIHx
Firmware package name and version: STM32Cube FW_H7 V1.12.1
Openamp version: v2018.10
We had an old project where openamp worked perfectly with the same version (of openamp), what was diffrent was the custom configuration for a specific display(from TGFX 4.25.0) and the version of the ioc file. The actual user configuration in the ioc is the same as is the code.
Now we have to make a new project based on touchgfx Custom board configuration 70STM32H7 v4.1.0. The old one was based on 70STM32H7 v3.2.0 (STMCubeMX version: v6.10.0 and FW_H7 V1.11.1) and worked fine without such errors. Openamp versions match on both IOCs.
I checked the errno.h file for the definitions.
I am currently working on the M4 core. I setup openamp in the ioc then converted main.c to main.cpp. When I try building I get the following errors:
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/system/generic/condition.h: In function 'metal_condition_signal':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/system/generic/condition.h:56:25: error: 'EINVAL' undeclared (first use in this function)
56 | return -EINVAL;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/system/generic/condition.h:56:25: note: each undeclared identifier is reported only once for each function it appears in
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/system/generic/condition.c: In function 'metal_condition_wait':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/system/generic/condition.c:26:25: error: 'EINVAL' undeclared (first use in this function)
26 | return -EINVAL;
| ^~~~~~
make: *** [Middlewares/OpenAMP/subdir.mk:67: Middlewares/OpenAMP/condition.o] Error 1
make: *** Waiting for unfinished jobs....
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_bus_register':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:21:25: error: 'EINVAL' undeclared (first use in this function)
21 | return -EINVAL;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:21:25: note: each undeclared identifier is reported only once for each function it appears in
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:23:25: error: 'EEXIST' undeclared (first use in this function)
23 | return -EEXIST;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_bus_find':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:52:17: error: 'ENOENT' undeclared (first use in this function)
52 | return -ENOENT;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_device_open':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:64:25: error: 'EINVAL' undeclared (first use in this function)
64 | return -EINVAL;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:71:25: error: 'ENODEV' undeclared (first use in this function)
71 | return -ENODEV;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_register_generic_device':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:91:25: error: 'EINVAL' undeclared (first use in this function)
91 | return -EINVAL;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_generic_dev_open':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:112:24: warning: implicit declaration of function 'metal_generic_dev_sys_open'; did you mean 'metal_generic_dev_open'? [-Wimplicit-function-declaration]
112 | return metal_generic_dev_sys_open(dev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| metal_generic_dev_open
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:115:17: error: 'ENODEV' undeclared (first use in this function)
115 | return -ENODEV;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_bus_find':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:53:1: warning: control reaches end of non-void function [-Wreturn-type]
53 | }
| ^
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c: In function 'metal_generic_dev_open':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/device.c:116:1: warning: control reaches end of non-void function [-Wreturn-type]
116 | }
| ^
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c: In function 'metal_io_init':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c:30:9: warning: implicit declaration of function 'metal_sys_io_mem_map' [-Wimplicit-function-declaration]
30 | metal_sys_io_mem_map(io);
| ^~~~~~~~~~~~~~~~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c: In function 'metal_io_block_read':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c:41:25: error: 'ERANGE' undeclared (first use in this function)
41 | return -ERANGE;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c:41:25: note: each undeclared identifier is reported only once for each function it appears in
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c: In function 'metal_io_block_write':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c:78:25: error: 'ERANGE' undeclared (first use in this function)
78 | return -ERANGE;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c: In function 'metal_io_block_set':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/io.c:114:25: error: 'ERANGE' undeclared (first use in this function)
114 | return -ERANGE;
| ^~~~~~
make: *** [Middlewares/OpenAMP/subdir.mk:69: Middlewares/OpenAMP/device.o] Error 1
make: *** [Middlewares/OpenAMP/subdir.mk:81: Middlewares/OpenAMP/io.o] Error 1
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/open-amp/lib/remoteproc/remoteproc_virtio.c: In function 'rproc_virtio_notified':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/open-amp/lib/remoteproc/remoteproc_virtio.c:297:25: error: 'EINVAL' undeclared (first use in this function)
297 | return -EINVAL;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/open-amp/lib/remoteproc/remoteproc_virtio.c:297:25: note: each undeclared identifier is reported only once for each function it appears in
In file included from C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/assert.h:15,
from C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/shmem.c:13:
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/io.h: In function 'metal_io_read':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/system/generic/assert.h:25:32: warning: implicit declaration of function 'assert' [-Wimplicit-function-declaration]
25 | #define metal_sys_assert(cond) assert(cond)
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/assert.h:21:28: note: in expansion of macro 'metal_sys_assert'
21 | #define metal_assert(cond) metal_sys_assert(cond)
| ^~~~~~~~~~~~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/io.h:240:9: note: in expansion of macro 'metal_assert'
240 | metal_assert(0);
| ^~~~~~~~~~~~
In file included from C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/shmem.h:15,
from C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/shmem.c:14:
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/metal/io.h:24:1: note: 'assert' is defined in header '<assert.h>'; did you forget to '#include <assert.h>'?
23 | #include <metal/cpu.h>
+++ |+#include <assert.h>
24 |
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/shmem.c: In function 'metal_shmem_open_generic':
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/shmem.c:47:17: error: 'ENOENT' undeclared (first use in this function)
47 | return -ENOENT;
| ^~~~~~
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/shmem.c:47:17: note: each undeclared identifier is reported only once for each function it appears in
C:/Users/Uporabnik/Documents/Riverdi7NewConfig/Middlewares/Third_Party/OpenAMP/libmetal/lib/shmem.c:48:1: warning: control reaches end of non-void function [-Wreturn-type]
48 | }
| ^
make: *** [Middlewares/OpenAMP/subdir.mk:85: Middlewares/OpenAMP/remoteproc_virtio.o] Error 1
make: *** [Middlewares/OpenAMP/subdir.mk:91: Middlewares/OpenAMP/shmem.o] Error 1
I would appreciate any help. I could not find any solutions online.