Page tree
Skip to end of metadata
Go to start of metadata

系统总览

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驱动程序实现。



  • No labels