X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 全志T113双核异构处理器的使用基于Tina Linux5.0——异构双核通信验证
aleksib
2024-11-20 09:48
楼主
**6、双核通信验证** **6.1、C906小核创建通讯节点** 在C906小核串口终端建立两个通讯节点用于监听数据,输入eptdev_bind test 2 ``` cpu0 >eptdev_bind test 2 ``` 查看监听节点,输入rpmsg_list_listen ``` cpu0 >rpmsg_list_listen name listen alive test 2 0 console 100 0 ``` **6.2、大核创建通讯节点** 在Tina Linux下也创建两个通讯监听节点,输入以下两个命令 ``` echo test > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/open echo test > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/open ``` 输入后,如下所示: ``` 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*查看节点信息 ``` root@TinaLinux:~# ls /dev/rpmsg* /dev/rpmsg0 /dev/rpmsg1 /dev/rpmsg_ctrl-c906_rproc@0 ``` 创建完成后,可以在C906小核终端中查看自动输出的信息 ``` 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下输入 ``` echo "hello Embfly SBC-T113S Board" > /dev/rpmsg0 echo "hello Tina Linux" > /dev/rpmsg1 ``` 将Linux Message 0信息通过创建的监听节点传输到C906小核,例如: ``` root@TinaLinux:~# echo "hello Embfly SBC-T113S Board" > /dev/rpmsg0 root@TinaLinux:~# echo "hello Tina Linux" > /dev/rpmsg1 ``` 输入后,打开C906串口终端可以发现,大核传输过来的信息。 ``` 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。 在小核的串口终端输入以下命令: ``` eptdev_send 0 "hello C906" eptdev_send 1 "hello C906" ``` 例如: ``` 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端输入 ``` cat /dev/rpmsg0 cat /dev/rpmsg1 ``` 可查看从C906小核传输过来的信息。例如: ``` root@TinaLinux:~# cat /dev/rpmsg0 hello C906 ^C root@TinaLinux:~# cat /dev/rpmsg1 hello C906 ^C ``` 按下Crtl+C结束监听前持续监听该节点。 您可以在小核端多次传输信息到该节点,该节点支持持续接受小核传输的信息,例如: 在C906小核,多次传输信息到监听节点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 cpu0 >eptdev_send 0 "hello C906 " will send hello C906 to rpmsg0 ``` 在大核端则会一直接收到小核传输过来的信息 ``` 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的控制关闭节点即可。 ``` echo 0 > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/close echo 1 > /sys/class/rpmsg/rpmsg_ctrl-c906_rproc@0/close ``` 例如: ``` 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小核端也会自动关闭通信节点,自动输出以下信息 ``` send 0x13131411 to rpmsg0 rpmsg0: unbinding ctrldev: Rx 44 Bytes send 0x13131411 to rpmsg1 rpmsg1: unbinding ```
点赞
回复评论
暂无评论,赶紧抢沙发吧
最新活动
有奖直播报名中!抢占工业4.1先机,WT·世健科技日等你来!
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
随便看看
u-boot 汇编疑问
【CN0209】适合过程控制应用的完全可编程通用模拟前端
关于Wince中SDK的编译问题
运算放大器稳定性
新手请教 - 编译问题
AD19版本如何导入图片 运行脚本 软件闪退
吉时利3700系列主机——目标应用
能不能再开始一次AM33X开发板的团购呀?14:01的时候就全没了,需要的人都没买到。
关于JTAG下载程序问题
基于Proteus的ARM虚拟开发
内核中stuct ieee80211_node这个结构指的是什么
【转帖】贴片电感失效原因分析
学嵌入式 都学什么呀
向农请进,帮我翻译下
利用AD5546/AD5556 DAC实现精密、单极性、同相配置(CN0023)
来投稿!优秀原创可获得最高500等值RMB啦!
【GD32307E-START】01-开箱以及后期测试规划
Sense和Source之间的电压限制
2009年电子竞赛报告的写作方式
线性稳压器 (LDO) 实验手册
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复