问题:Virtio rpmsg 总线 virtio0:收到的消息没有收件人 - 在 Yocto Hardknott - imx7d-pico

Issue: Virtio rpmsg bus virtio0: msg received with no recipient - in Yocto Hardknott - imx7d-pico

我用这个正确地生成了我的图像 Yocto-hardknott-technexion:

$ mkdir tn-imx-yocto
$ cd tn-imx-yocto
$ repo init -u https://github.com/TechNexion/tn-imx-yocto-manifest.git -b hardknott_5.10.y-next -m imx-5.10.52-2.1.0.xml
$ repo sync -j8
$ DISTRO=fsl-imx-x11 MACHINE=pico-imx7 BASEBOARD=pi source tn-setup-release.sh -b build-x11-pico-imx7
$ bitbake core-image-base

然后在我 运行 modprobe imx_rpmsg_tty 之后我遇到了问题:virtio_rpmsg_bus virtio0: 收到的消息没有收件人

我试过这个:https://community.toradex.com/t/rpmsg-error-virtio-rpmsg-bus-virtio0-msg-received-with-no-recipient/12701 还没解决

当我将第 83 行和第 102 行从 src 更改为 dst 时,出现以下错误(另请查看最后一张照片):

/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c: In function 'StrEchoTask':
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:83:75: error: 'dst' undeclared (first use in this function)
         result = rpmsg_rtos_recv_nocopy(app_chnl->rp_ept, &rx_buf, &len, &dst, 0xFFFFFFFF);
                                                                           ^
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:83:75: note: each undeclared identifier is reported only once for each function it appears in
/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c:63:19: warning: unused variable 'src' [-Wunused-variable]
     unsigned long src;
                   ^
make[2]: *** [CMakeFiles/rpmsg_str_echo_freertos_example.dir/build.make:94: CMakeFiles/rpmsg_str_echo_freertos_example.dir/home/neuberfran/freertos-tn/examples/imx7d_pico_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c.obj] Erro 1
make[2]: ** Esperando que outros processos terminem.
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/rpmsg_str_echo_freertos_example.dir/all] Erro 2

第 761 行打印错误: https://elixir.bootlin.com/linux/latest/source/drivers/rpmsg/virtio_rpmsg_bus.c#L761

如何解决?

已编辑:我认为问题可以留在 Vring[0] Vring1。 Link 下面。因为我可以放

#define VRING0_BASE     0xBFFF0000
#define VRING1_BASE     0xBFFF8000 

in platform_info.c 但我无法在 imx_rpmsg.c

中进行更改

https://imxdev.gitlab.io/tutorial/Multicore_communication_on_WaRP7_using_Remote_Processor_Messaging_bus_(RPMsg)/

早上好, 当来自 real-time 控制器的消息中没有设置目标地址时,我们在项目中遇到了同样的问题(在我们的例子中是 M7;在我们拥有 M4 之前。两者都在 imx8-derivates 中)。 附件是我们实施的 tx-no 复制调用。在我的案例中,首先尝试从下游消息中提取消息并交换地址。 the call; Here we use the addresses stored in the bwloe stated list

The list with our channels (we build the kernel-module separately to add those cahnnel names

第一次尝试,将消息从 Linux 发送到 sub-core,获取发件人的地址并将其设置为答复中的目的地。 希望你能得到它运行这个信息。请告诉我。

我在 2022 年 4 月 13 日之后开始解决我的问题当我编辑这个 post/issue 并把这个 link: https://imxdev.gitlab.io/tutorial/Multicore_communication_on_WaRP7_using_Remote_Processor_Messaging_bus_(RPMsg)/

在freertos-tn/middleware/multicore/open-amp/porting/imx7d-m4/platform_info.c文件中#define VRING1_BASE正确的是0x9FFF8000 但是在我的 platform_info.c 中是 0x9FFF0000

现在,我可以 运行 RPMsg 与 str_echo_freertos script/example: