首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >全志T113双核异构处理器的使用基于Tina Linux5.0——异构双核通信验证

全志T113双核异构处理器的使用基于Tina Linux5.0——异构双核通信验证

作者头像
阿志小管家
发布2024-11-21 12:55:35
发布2024-11-21 12:55:35
3720
举报

6、双核通信验证

6.1、C906小核创建通讯节点

在C906小核串口终端建立两个通讯节点用于监听数据,输入eptdev_bind test 2

代码语言:javascript
复制
cpu0 >eptdev_bind test 2

查看监听节点,输入rpmsg_list_listen

代码语言:javascript
复制
cpu0 >rpmsg_list_listen
name listen alive
test 2 0
console 100 0

6.2、大核创建通讯节点

在Tina Linux下也创建两个通讯监听节点,输入以下两个命令

代码语言:javascript
复制
echo test > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/open
echo test > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/open

输入后,如下所示:

代码语言:javascript
复制
root@TinaLinux:/sys/class/rpmsg# echo test > /sys/class/rpmsg/rpmsg_ctrl-c906_rp
roc@0/open
[  946.762321] virtio_rpmsg_bus virtio0: creating channel sunxi,rpmsg_client addr 0x403
root@TinaLinux:/sys/class/rpmsg# echo test > /sys/class/rpmsg/rpmsg_ctrl-c906_rp
roc@0/open
[  951.246499] virtio_rpmsg_bus virtio0: creating channel sunxi,rpmsg_client addr 0x404
root@TinaLinux:/sys/class/rpmsg#

在大核TIna Linux中也创建了两个监听节点,输入ls /dev/rpmsg*查看节点信息

代码语言:javascript
复制
root@TinaLinux:~# ls /dev/rpmsg*
/dev/rpmsg0 /dev/rpmsg1 /dev/rpmsg_ctrl-c906_rproc@0

创建完成后,可以在C906小核终端中查看自动输出的信息

代码语言:javascript
复制
cpu0 >ctrldev: Rx 44 Bytes
client: Rx 8 Bytes
rpmsg0: binding
send 0x13131411 to rpmsg0
create rpmsg0 client success
ctrldev: Rx 44 Bytes
client: Rx 8 Bytes
rpmsg1: binding
send 0x13131411 to rpmsg1
create rpmsg1 client success

6.3、大核传输至C906小核

在Tina Linux下输入

代码语言:javascript
复制
echo "hello Embfly SBC-T113S Board" > /dev/rpmsg0
echo "hello Tina Linux" > /dev/rpmsg1

将Linux Message 0信息通过创建的监听节点传输到C906小核,例如:

代码语言:javascript
复制
root@TinaLinux:~# echo "hello Embfly SBC-T113S Board" > /dev/rpmsg0
root@TinaLinux:~# echo "hello Tina Linux" > /dev/rpmsg1

输入后,打开C906串口终端可以发现,大核传输过来的信息。

代码语言:javascript
复制
rpmsg0: Rx 22 Bytes
Data:hello Embfly SBC-T113S Board

rpmsg1: Rx 17 Bytes
Data:hello Tina Linux

6.4、C906小核传输至大核

在小核端需要使用命令 eptdev_send 用法 eptdev_send ,这里的id号从0开始,我们设置有两个通信节点,所以id号分别为0和1。 在小核的串口终端输入以下命令:

代码语言:javascript
复制
eptdev_send 0 "hello C906"
eptdev_send 1 "hello C906"

例如:

代码语言:javascript
复制
cpu0 >eptdev_send 0 "hello C906"
will send hello C906 to rpmsg0
cpu0 >eptdev_send 1 "hello C906"
will send hello C906 to rpmsg1

输入完成后,小核会将信息分别传入rpmsg0和rpmsg1两个通讯节点。可以在大核Tina Linux端输入

代码语言:javascript
复制
cat /dev/rpmsg0
cat /dev/rpmsg1

可查看从C906小核传输过来的信息。例如:

代码语言:javascript
复制
root@TinaLinux:~# cat /dev/rpmsg0
hello C906
^C
root@TinaLinux:~# cat /dev/rpmsg1
hello C906
^C

按下Crtl+C结束监听前持续监听该节点。 您可以在小核端多次传输信息到该节点,该节点支持持续接受小核传输的信息,例如: 在C906小核,多次传输信息到监听节点rpmsg0

代码语言:javascript
复制
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0
cpu0 >eptdev_send 0 "hello C906 "
will send hello C906 to rpmsg0

在大核端则会一直接收到小核传输过来的信息

代码语言:javascript
复制
root@TinaLinux:~# cat /dev/rpmsg0
hello C906 hello C906 hello C906 hello C906 hello C906 hello C906 hello C906

6.5、关闭相互通讯

要关闭通信,只要在大核Tina Linux端操作节点即可。输入以下命令,echo 给到rpmsg的控制关闭节点即可。

代码语言:javascript
复制
echo 0 > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/close
echo 1 > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/close

例如:

代码语言:javascript
复制
root@TinaLinux:~# echo 0 > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/close
[ 6783.156899] virtio_rpmsg_bus virtio0: destroying channel sunxi,rpmsg_client addr 0x403
root@TinaLinux:~# echo 1 > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/close
root@TinaLinux:~# [ 6784.224740] virtio_rpmsg_bus virtio0: destroying channel sunxi,rpmsg_client addr 0x404

此时C906小核端也会自动关闭通信节点,自动输出以下信息

代码语言:javascript
复制
send 0x13131411 to rpmsg0
rpmsg0: unbinding
ctrldev: Rx 44 Bytes
send 0x13131411 to rpmsg1
rpmsg1: unbinding
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档