ST意法半导体
直播中

石玉兰

8年用户 1502经验值
私信 关注
[问答]

如何实现M4和A7之间的DDR数据传输?

大家好,
我正在尝试实现 M4 和 A7 之间的 DDR 数据传输。
我已经剥离了逻辑分析器应用程序:这里
  • 在 CM4 端,它只是从另一个 MCU 传输数据,将数据推入 UART7 并通过 DMA 将其传输到 DDR 缓冲区。
  • SDB 驱动程序不变。
  • 在应用程序方面,我删除了所有与 GTK 相关的东西,并将其剥离以将数据接收到 DDR 缓冲区并打印到控制台。
我有几个问题:
对于此处提供的 CM4 代码:链接
最新的 cube-mx 不支持创建 RPMSG_HDR_HandleTypeDef 类型的对象,该对象可能在用户空间应用程序中标记为 /dev/tpmsg-sdb 类型。
虽然数据结构类似于VIRT_UART_HandleTypeDef。所以我继续制作了后一种类型的 rpmsg-sdb 对象。
现在,当我运行附加 zip 的精简应用程序部分时。我在 A7-console 上遇到以下错误:
  • CA7 : Forward efd info for buf0 with mFdSdbRpmsg:5 and efd:6
  • ./backend: failed to set efd: Inappropriate ioctl for device
请注意,现在我得到 3 个设备:ttyRPMSG0、1、2。因此,为了确定哪个是 sdb,我在 M4 代码的最后对其进行了初始化。不确定这是否正确。
请在这里建议可能是问题的潜在根本原因。







回帖(1)

李熙国

2022-12-26 14:54:09
更新:没关系。解决了。CM4 项目中有一个小的变化,其中有一个额外的文件集:rpmsg_hdr.c / .h 被创建来处理 rpmsg-sdb 通道上的数据传输。在 CM4 端进行这些更改后。似乎现在完美地工作。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分