|
【前言】 管管在我前面一篇帖留言,应他的要求这一篇我将分享如何通过OpenAMP来实现信息的交互。 【OpemAMP通信原理】 ST介绍OpenAMP的资料不多,但是只要理解他的原理后,对于掌握双枋通信就变得非常简单。 1、双核的通信建立在HSEM中断基础之上。 2、双核的数据交互建立在共享内存之上。 HSEM通过中断响应来实现双核的信号量的通知,当有数据交互时,去共享内存中获取数据,来实现高效的数据交互。 【工程基础的配置】 1、开启HSEM以及中断。
2、配置共享内存: 双核通信,必需指定都能访问共同的内存共间。特别是CM7核,还需要配置MPU。在STM32H745中,选择SRAM3来做为共同访问的内存空间:
配置起始地址为0x3800000
通过上面的配置,我们拿到了OpenAMP的通信的基础配置。 【双核通信的流程以及代码实现】 在官网的手册《AN5617》中的流程如下:
根据以上的流程图,我开始代码的编写,首先是CM7内核,在工程中CM7为主,CM4为从。 1、首先定义服务名称:#define RPMSG_SERVICE_NAME "openamp_mks",这个需要双核都为同样的名称。 2、接下来定义 |
2025国庆中秋活动体验报告5 CustomContainer中控件与参数适配
2025国庆中秋活动体验报告4_解析传感器数据
2025国庆中秋活动体验报告3-STM32H745之CM4内核不定长中断接收
2025国庆中秋活动体验报告2 健康监测界面设计
【学习有礼】 STM32H7R/S线上课程,快速入手!
AN5617中OpenAMP Linker configuration中的一处勘误
STM32H755双核通信学习资料
STM32H7双核通信实现方法学习AN5617
【NUCLEO-H755ZI-Q】收集资料
【NUCLEO-H755ZIQ】到手一个STM32H755
微信公众号
手机版
【双核通信的流程以及代码实现】
在官网的手册《AN5617》中的流程如下:
根据以上的流程图,我开始代码的编写,首先是CM7内核,在工程中CM7为主,CM4为从。
1、首先定义服务名称:#define RPMSG_SERVICE_NAME "openamp_mks",这个需要双核都为同样的名称。
2、接下来定义
volatile int message_received; //接收标志 static volatile int service_created; //创建服务标志 static struct rpmsg_endpoint rp_endpoint; //消息挂载点 uint8_t mks_rx_buffer[256]; //数据接收缓冲区