OpenWRT RTP 通讯异常. 用OpenWRT和Buildroot测试(GitHub下载最新然后从0编译测试),发现系统会奔溃重启。在Buildroot再做一组实验,使用
https://github.com/OpenNuvoton/MA35D1_Linux_Applications/blob/master/examples/rpmsg/rpmsg.c [^]和Share_memory_demo同样出异常。
2024/03/22 10:05
A35与RTP demo异常问题是因为openamp_conf.h有bug,修改如下:
#define SHM_TX_START_ADDRESS SHM_RX_START_ADDRESS+SHM_TX_RX_SIZE
需要加上括号
#define SHM_TX_START_ADDRESS (SHM_RX_START_ADDRESS+SHM_TX_RX_SIZE)
而客户的bug,是因为RTP与A35有频繁读写,需改为V2版本,方法如下:
1. RTP rpmsg v2 版本的demo
https://github.com/OpenNuvoton/MA35D1_RTP_BSP/tree/master/SampleCode/OpenAMP/Share_memory_sram_v2 [^]
2. Linux app也需更换为V2 版本:
https://github.com/OpenNuvoton/MA35D1_Linux_Applications/tree/master/examples/rpmsg-v2 [^]
3. 修改内核设备树
linux-custom/arch/arm64/boot/dts/nuvoton/ma35d1.dtsi,使用v2版本的rpmsg
rpmsg {
compatible = "nuvoton,ma35d1-rpmsg";
share-mem-addr = <0x2401ff00>;
mboxes = <&wormhole 2>;
tx-smem-size = <128>;
rx-smem-size = <128>;
rpmsg-v2-arch;
/* rpmsg-ddr-buf; */
/* memory-region = <&rpmsg_buf>; */
status = "okay";
};