大家好,
我正在尝试实现 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 代码的最后对其进行了初始化。不确定这是否正确。
请在这里建议可能是问题的潜在根本原因。