CM4协处理器管理
系统总览
STM32 MPU多处理器系统允许在每个CPU内核上运行独立的固件。下面的子系统涉及两个CPU子系统共存的管理:
Arm® Cortex®-A作为主处理器,运行Linux操作系统。
Arm® Cortex®-M协处理器,可以运行为微控制器或裸机应用优化的实时操作系统。
内部存储器区域,授予对主处理器和/或从处理器的访问权限:- 加载和执行协处理器固件并定义静态通用结构。
通过消息传递基础设施共享用于处理间通信的缓冲区。
一个处理器间通信控制器外设(IPCC),允许通过专用mailbox发送信号。
可以分配给主处理器或从处理器的内部外设资源。
功能特性和设计
为了管理协处理器系统,提出了一个基于开源的RemoteProc和RPMsg框架的服务列表。这些框架将在后面的章节中介绍,并提供了一些专门文章的链接,以供进一步解释。
资源管理
资源管理器提出服务来管理公共资源并避免任何冲突。
外设分配请求: 用于确保为处理器使用保留外设的机制。其原理是固件在开始使用外设之前,根据ETZPC表请求外设。
Cortex-A: 启动时,根据TF-A设备树配置ETZPC和Linux设备树。
Cortex-M: 服务由资源管理器实用程序实现。
协处理器资源配置集: 主处理器(运行Linux的Cortex-A)中提供的服务,用于配置在协处理器上操作外设所需的系统资源。该服务由rproc_srm驱动程序实现。
处理器间通信
处理器间的通信是基于 RPMsg 框架和 Mailbox 机制。
Cortex-A:
RemoteProc框架负责根据固件资源表中的信息在Linux端启用IPC。RPMsg服务由RPMsg框架实现。Mailbox服务由stm32_ipcc mailbox驱动程序实现。
Cortex-M:
RPMsg服务是由OpenAMP库实现的。Mailbox服务由HAL_IPCC驱动程序实现。
最后编辑:SteveChen 更新时间:2024-10-18 15:16