IMX7的双核通信例子问题(rpmsg)
首先在主机Ubuntu上完成对colibri imx7的rpmsg例子的编译,并下载到SD卡中,在硬件连接为UART_A和UART_B的开发板上,通过Xshell连接连个COM口,然后在控制端口的U-BOOT环境下,输入:
\# fatload mmc 0:1 0x7F8000 rpmsg_pingpong\_example.bin
\# dcache flush
\# bootaux
完成对rpmsg_pingpong_example.bin程序的加载,使得M4内核开始执行remote的工作,之后在U-BOOT环境下,输入:
\# boot
进入A7内核的linux环境下,然后输入:
\# modporbe imx_rpmsg_pingpong
使得A7内核开始执行master端的工作,正常情况下,应该出现如下情况:
实际出现的情况如下:
错误提示是MU超时,但在检查了”xSemaphoreTake(app_sema, portMAX_DELAY)“函数之后,发现不会是这个问题,因为时间设置的是无限。在编译运行另一个程序rpmsg_str_echo_example.bin仍没得出正确输出之后,确定了不是超时的问题,根据输出的错误提示跟usb设备有关,在