MA35D1 OpenWRT RTP 通讯异常

cwlin0 |浏览66次
收藏|2024/03/22 10:03

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";

        };


nuvoton2022

其他回答(0)
0人关注该问题
+1
 加载中...