0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM A7和RISC-V E907之间的通信方式

全志在线 来源:全志在线 作者:全志在线 2022-07-07 14:45 次阅读

V853芯片包含两个CPU。一个是主核心Arm A7 CPU,运行Tina Linux(全志自研Linux)系统,为芯片主系统;一个是RISC-V E907辅助CPU,运行Melis(全志自研RTOS)系统,主要功能是提供通用算力补充、辅助 Linux 实现快起和低功耗管理等功能。

A7 - Linux系统

V853主核心 A7上运行的是Tina Linux系统。Tina Linux是全志针对AIoT类产品,基于Linux内核深度定制的嵌入式系统

在 Tina Linux 中,提供 AMP 与 RPMsg 对接 E907

Linux remoteproc 管理控制 E907

RPMsg 与 E907 通讯

E907 - RTOS系统

V853 辅助核心 E907 上运行的是全志自研 RTOS 系统 Melis。其独立于 A7 主核心中的 Linux 系统。可以独立运行。

在 E907 Melis 中,提供 OpenAMP 软件框架来与 A7 Linux 系统进行通信

提供了处理器的生命周期管理(LCM,Life Cycle Management),与 Linux 的 remoteproc 兼容

提供了处理器间的消息传输机制,与 Linux 的 RPMsg 兼容

异构系统启动流程

首先,由芯片内部的 BORM 寻找启动介质,在 V853 开发板上便是 eMMC 储存器。找到启动介质后会运行其中的 BOOT0 代码。BOOT0 会在 A7 主核心中运行 Linux 系统,也会在 E907 核心中运行 RTOS 系统。启动的两个系统是独立运行的。

2d022c0a-fdbd-11ec-ba43-dac502259ad0.png

异构系统的通信

V853 的异构系统通讯在硬件上使用的是 MSGBOX,在软件层面上使用的是 AMP 与 RPMsg 通讯协议。其中 A7 上基于 Linux 标准的 RPMsg 驱动框架,E907基于 OpenAMP 异构通信框架。

V853 所带有的 A7 主核心与 E907 辅助核心是完全不同的两个核心,为了最大限度的发挥他们的性能,协同完成某一任务,所以在不同的核心上面运行的系统也各不相同。这些不同架构的核心以及他们上面所运行的软件组合在一起,就成了 AMP 系统 (Asymmetric Multiprocessing System, 异构多处理系统)。

由于两个核心存在的目的是协同处理,因此在异构多处理系统中往往会形成 Master - Remote 结构。主核心启动后再启动辅助核心。当两个核心上的系统都启动完成后,他们之间就通过 IPC(Inter Processor Communication)方式进行通信,而 RPMsg 就是 IPC 中的一种。

在AMP系统中,两个核心通过共享内存的方式进行通信。两个核心通过 AMP 中断来传递讯息。内存的管理由主核负责。

2d126fa2-fdbd-11ec-ba43-dac502259ad0.png

AMP 系统在每个通信方向上都有两个缓冲区,分别是 USED 和 AVAIL,这个缓冲区可以按照 RPMsg 中消息的格式分成一块一块链接形成一个环。

2d2050a4-fdbd-11ec-ba43-dac502259ad0.png

当主核需要和从核进行通信的时候可以分为四步:

主核先从USED中取得一块内存(Allocate)

将消息按照消息协议填充

将该内存链接到 AVAIL 缓冲区中(Send)

触发中断,通知辅助核有消息处理

2d327310-fdbd-11ec-ba43-dac502259ad0.png

反之,从核需要和主核通信的时候也类似:

主核先从AVAIL中取得一块内存(Allocate)

将消息按照消息协议填充

将该内存链接到 USED 缓冲区中(Send)

触发中断,通知主核有消息处理。

2d45d3d8-fdbd-11ec-ba43-dac502259ad0.png

既然 RPMsg 是一种信息交换的协议,与TCP/IP类似,RPMsg 协议也有分层,主要分为三层,分别是传输层、MAC层和物理层。

2d557b44-fdbd-11ec-ba43-dac502259ad0.png

其中 MAC层 的 VirtIO 是一种I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。

RPMsg 总线上的消息都具有以下结构,包含消息头和数据两个固定的部分,该消息格式的定义位于drivers/rpmsg/virtio_rpmsg_bus.c中,具体定义如下:

struct rpmsg_hdr { u32 src; u32 dst; u32 reserved; u16 len; u16 flags; u8 data[];} __packed;

异构系统的控制

在异构系统中,不止需要消息的传输,还需要相关控制。例如主核对辅助核心的开启,加载固件,关闭等等。这就需要用到 remoteproc 框架。

remoteproc 框架支持对不同平台,不同架构的处理器进行控制,可以监控辅助核心的运行情况。

对于 V853 来说,remoteproc 用于对 E907 进行生命周期管理,一般来说包含有加载固件、 检测远端处理器是否崩溃等功能。它在加载远端处理器的固件时,会根据固件中定义的 resource table 来申请资源,并创建 VirtIO 设备。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19281

    浏览量

    229787
  • Linux系统
    +关注

    关注

    4

    文章

    593

    浏览量

    27397
  • 通讯
    +关注

    关注

    9

    文章

    902

    浏览量

    34899

原文标题:详解全志V853上的ARM A7和RISC-V E907之间的通信方式

文章出处:【微信号:gh_79acfa3aa3e3,微信公众号:全志在线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RISC-VARM 架构的区别 RISC-V与机器学习的关系

    在现代计算机架构中,RISC-VARM是两种流行的处理器架构。它们各自具有独特的特点和优势,适用于不同的应用场景。 1. RISC-V架构 RISC-V(读作“risk-five”)
    的头像 发表于 12-11 17:50 812次阅读

    全志T536系列处理器特性概述 集成RISC-V E907协处理器

    CSI、5M ISP;此外,T536处理器还集成双千兆以太网、PCIe2.1/USB3.1、Localbus、4*CANFD、17*UART、SDIO、SPI、PWM、I2C等接口。   特性: 集成四核 Cortex-A55和RISC-V 
    的头像 发表于 11-18 15:21 982次阅读
    全志T536系列处理器特性概述 集成<b class='flag-5'>RISC-V</b> <b class='flag-5'>E907</b>协处理器

    什么是RISC-V?以及RISC-VARM、X86的区别

    ARM都是基于RISC的指令集架构,它们的主要区别如下: 指令集数量 ARM指令集和寄存器要比RISC-V丰富 指令集宽度 RISC-V
    发表于 11-16 16:14

    RISC-Varm指令集的对比分析

    适应不同的应用场景。ARM指令集的长度固定,可通过多流水线方式提高处理效率。同时,ARM指令集还包含了丰富的数据处理指令和程序状态寄存器处理指令等。 五、生态系统 RISC-V
    发表于 09-28 11:05

    ISA ARM 对比 RISC-V

    、扩展方式以及目标应用场景等方面有显著差异。 要深入对比ARMRISC-V的指令集,需要从指令集架构(ISA)的设计原则、扩展模块、指令的复杂性、特性以及它们的实际性能表现来进行讨论。RIS
    的头像 发表于 09-10 09:26 641次阅读

    risc-varm哪个更有前途?

    如今risc-v发展迅猛,我想预测将来他与arm谁会更优秀?
    发表于 08-29 21:12

    rIsc-v的缺的是什么?

    RISC-V设计简洁,但在某些应用场景下,其性能可能略低于专用指令集架构(如ARM),尤其是在没有内置浮点单元或媒体处理单元等特定硬件加速单元的情况下。这是因为RISC-V默认只配备非常少的指令,需要
    发表于 07-29 17:18

    浅析RISC-V领先ARM的优势

    RISC-V相对于ARM的优势主要体现在以下几个方面: 开源与免费: RISC-V是一个完全开源的指令集架构(ISA),其规范公开且可以免费使用。这意味着任何人都可以基于RISC-V
    发表于 06-27 08:45

    RISC-V的MCU关于USB高速通信设计的难点

    ),RISC-V MCU需要提高USB通信的中断响应速度,确保数据的实时性和可靠性。 软件生态和工具链 : 软件生态问题 :由于RISC-V是一个相对较新的指令集架构(ISA),其软件生态相较于
    发表于 05-27 16:23

    RISC-V的MCU与ARM对比

    RISC-V的MCU与ARM在多个方面存在显著的区别,以下是两者的对比: 开源与专有 RISC-VRISC-V是一种开源的指令集架构(ISA),允许任何人免费使用、修改和贡献
    发表于 05-27 15:58

    全志V851SETinyVision异构视觉AI开发套件源码工具文档手册

    SDK源码及提示 Tina-SDK系统 此套构建系统基于全志单核 Arm Cortex-A7 SoC,搭载了 RISC-V 内核的V851s 芯片,适配了Tina 5.0主线版本,是专
    发表于 05-27 10:23

    为何什么risc-v芯片比arm的效率高

    RISC-V芯片在某些情况下可能相对于ARM架构芯片表现出更高的效率,这主要得益于RISC-V设计的一些特点和优势。 首先,RISC-V指令集架构是模块化的,这意味着设计师可以根据特定
    发表于 04-28 09:38

    RISC-V有哪些优缺点?是坚持ARM方向还是投入risc-V的怀抱?

    是一个优势。同时,这种设计也降低了制造成本,使得RISC-V在成本敏感的应用场景中更具竞争力。 缺点 : 性能问题 :虽然RISC-V设计简洁,但相对于某些专用ISA(如ARM),其性能可能略低。这主要
    发表于 04-28 08:51

    一文读懂RISC-VARM

    RISC-VARM是近年来备受关注的两种处理器架构。RISC-V是一种基于精简指令集计算(RISC)原理的开源指令集架构(ISA),而ARM
    的头像 发表于 04-08 11:14 1010次阅读
    一文读懂<b class='flag-5'>RISC-V</b>与<b class='flag-5'>ARM</b>

    RISC-V 基础学习:RISC-V 基础介绍

    特性使得CPU 指令预取、分支预测、指令流水线等部件的效能大大发挥,几乎一个时钟周期能执行多条指令 RISC 的代表产品是 ARMRISC-V。现在,两者已经没有明显的界限了,开始相互融合了 8.
    发表于 03-12 10:25