基于Keil双核架构的研究2 -核间通讯 1. 设计思想基于官方提供的RPMSG-lite,实现双核间数据交换。示例程序的目的是双核间共同修改一个变量值。Core0接收到Core1发送的变量数据后,给变量加1,然后通过rpmsg将变量发给Core1;Core1接收到Core0发送的变量数据后,也给变量加1,然后通过rpmsg将变量发给Core0;直到变量数值超过100停止。 2. 软件实践利用MCUXpress Config Tools生成Core0和Core1的工程。这里选择rpmsg_lite_pingpong_cm33这个SDK中的例程。
工程创建后依然是配置外设和时钟信号。 时钟信号配置: 例程中采用外部晶振,这里调整为使用fro_12m作为PLL的输入时钟信号,同样输出150MHz的时钟信号。
串口配置: 外设引脚配置,如下图,选择PIO0_29和PIO0_30作为Core0的串口输入输出引脚。
FLEXCOMM0的时钟信号配置:
选择fro_12m作为flexcomm0的驱动时钟信号。 FLEXCOMM0的外设配置:
配置flexcomm0为uart的异步方式,波特率为115200bps。 Rpmsg-lite的软件使用分析: Nxp官方已经为我们移植好了rpmsg-lite的软件基础。 主机端Rpmsg-lite的初始化流程为:rpmsg-lite主机初始化->创建新的rpmsg端点,注册接收回调函数->发送rpmsg信息->注销rpmsg端点->反初始化rpmsg-lite 辅机端Rpmsg-lite的初始化流程为:rpmsg-lite辅机初始化->创建新的rpmsg端点,注册接收回调函数->发送rpmsg信息->注销rpmsg端点->反初始化rpmsg-lite
3. 效果验证
|