OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4030|回复: 8

STM32MP157的异核通信速度能有多快?

[复制链接]

2

主题

2

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-9-22
在线时间
6 小时
发表于 2022-7-5 19:13:54 | 显示全部楼层 |阅读模式
1金钱
有个问题没搞懂,想咨询一下大家,针对STM32MP157,如果用M4驱动AD7606(16bitAD),按照200K,进行采样,这个是用使用开发板提供的异核通信方式,能够把AD7606产生的采样数据实时传输给A7的Linux系统吗?
其中AD7606产生的数据量字节数为:2*8*200K= 3.05Mb/秒。
跪求高手给与解答。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1023
金钱
1023
注册时间
2019-9-21
在线时间
269 小时
发表于 2022-7-6 09:58:42 | 显示全部楼层
回复

使用道具 举报

1

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2022-3-30
在线时间
44 小时
发表于 2022-7-6 14:29:21 | 显示全部楼层
本帖最后由 海哥牛逼 于 2022-7-6 14:54 编辑

没有这么快 100-200kb
请叫我海哥牛逼
回复

使用道具 举报

9

主题

767

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5274
金钱
5274
注册时间
2019-9-25
在线时间
433 小时
发表于 2022-7-6 19:03:24 | 显示全部楼层
海哥牛逼 发表于 2022-7-6 14:29
没有这么快 100-200kb

海哥牛逼!
想思考的时候,有时还可以用屁股,QQ 1252699831
回复

使用道具 举报

1

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2022-3-30
在线时间
44 小时
发表于 2022-7-7 09:34:20 | 显示全部楼层

海哥牛逼
请叫我海哥牛逼
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2022-4-21
在线时间
2 小时
发表于 2022-7-19 00:05:55 | 显示全部楼层
不按照虚拟串口的方式,直接走共享内存的方式应该能快一些把,没试过
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2022-7-19 16:40:04 | 显示全部楼层
本帖最后由 仰望星空之云 于 2022-7-19 16:46 编辑

异核通信本质上是通过共享内存来实现的,所以虚拟串口理论上比实际的物理串口要快一些。

虽然是理论值,ST没有给出具体实测数据,不过速率和传输数据量有关系,可参考网上的数据:

块大小        # 块数        毫秒
512        1        11.97
512        2        18.77
512        4        31.02
512        8        56.25
1024        1        15.32
1024        2        24.82
1024        4        43.83
1024        5        53.32
2048        1        21.74
2048        2        37.63
4096        1        37.64

在ST的内核下默认配置单次能传输512字节的数据,也可以修改内核的一些配置来实现单次传输大于512字节的数据,如1024字节。
具体修改方法,可参考《【正点原子】STM32MP1异核通信(基于CubeIDE) V1.1》,也有视频:
https://www.bilibili.com/video/BV1RA4y1Z7iW?spm_id_from=333.880.my_history.page.click&vd_source=08348d1b038a69d1b4fdb7075125f4bd
回复

使用道具 举报

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2020-5-22
在线时间
22 小时
发表于 2022-7-21 15:59:29 | 显示全部楼层
最大一次是32768个字节
vdev0vring0长度最少为4*MAX_RPMSG_BUF_SIZE
                        vdev0vring0: vdev0vring0@10040000 {
                                compatible = "shared-dma-pool";
                                reg = <0x10040000 0x08000>;
                                no-map;
                        };

                        vdev0vring1: vdev0vring1@10048000 {
                                compatible = "shared-dma-pool";
                                reg = <0x10048000 0x08000>;
                                no-map;
                        };

                        vdev0buffer: vdev0buffer@10050000 {
                                compatible = "shared-dma-pool";
                                reg = <0x10050000 0x10000>;
                                no-map;
                        };
/drives/rpmsg/virtio_rpmsg_bus.c
#define MAX_RPMSG_NUM_BUFS (2)
#define MAX_RPMSG_BUF_SIZE (32768)
#define RPMSG_RESERVED_ADDRESSES (1024)
#define RPMSG_NS_ADDR (53)


M4
Middlewares/Third_Party/OpenAMP/open-amp/lib/include/openamp/rpmsg_virtio.h
#ifndef RPMSG_BUFFER_SIZE
#define RPMSG_BUFFER_SIZE        (32768)
#endif

修改STM32MP157AACX_RAM.ld
MEMORY
{
  RETRAM_interrupts (xrw)  : ORIGIN = 0x00000000,  LENGTH = 0x00000600
  SRAM1_text        (xrw)  : ORIGIN = 0x10000000,  LENGTH = 128K
  SRAM2_data        (xrw)  : ORIGIN = 0x10020000,  LENGTH = 128K
  SRAM3_ipc_shm     (xrw)  : ORIGIN = 0x10040000,  LENGTH = 128K
  SRAM4             (xrw)  : ORIGIN = 0x10060000,  LENGTH = 64k
}
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2021-2-19
在线时间
0 小时
发表于 2022-8-26 16:06:48 | 显示全部楼层
使用大容量IPCC通信方式,即共享内存的方式,是没问题的,实测可以到40Mb/s
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表