问题: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: 收到的消息没有收件人
当我将第 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
中进行更改
早上好,
当来自 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:
我用这个正确地生成了我的图像 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: 收到的消息没有收件人
当我将第 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
中进行更改早上好, 当来自 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: