最近几天我试图将
STM32MP1 上的 RPMSG 缓冲区大小增加到 1024。A7 端似乎工作正常,但 M4 端似乎难以处理设备树上的 vdev 声明。
A7 端:vir
tio_rmpsg_buss.c
- #define MAX_RPMSG_NUM_BUFS (1024)
- #define MAX_RPMSG_BUF_SIZE (1024)
- #define RPMSG_RESERVED_ADDRESSES (2048)
- #define RPMSG_NS_ADDR (53)
stm32mp15xx-dkx.dtsi:
- vdev0buffer: vdev0buffer@10044000 {
- compatible = "shared-dma-pool";
- reg = <0x10044000 0x10000>;
- no-map;
- };
在 M4 端:rpmsg_virtio.h
- * Configurable parameters */
- #ifndef RPMSG_BUFFER_SIZE
- #define RPMSG_BUFFER_SIZE (1024)
- #endif
用户空间可以看到消息并将消息发送到 RPMSG 通道,但是在调试 M4 部分时,我得到的似乎是内存分配错误
- (gdb) 0x1000b47e in MAILBOX_Poll (vdev=0x10020f70) at ../OPENAMP/mbox_ipcc.c:105
任何想法或建议将不胜感激。