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

    文章

    20148

    浏览量

    246975
  • Linux系统
    +关注

    关注

    4

    文章

    609

    浏览量

    29632
  • 通讯
    +关注

    关注

    9

    文章

    940

    浏览量

    36355

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RISC-V 蜂鸟E203中PC指针起始地址设置搭建

    具体方法 这篇分享中RISC-V 蜂鸟E203平台是在Arty A7 100T上进行的搭建,ddr 200t的板子上是有2块qspi flash的,所有FPGA的bitstream烧录在了
    发表于 10-28 07:47

    RISC-V 蜂鸟E203在Arty A7 100T上的烧录与测试

    ://doc.nucleisys.com/hbirdv2/overview/overview.html 综合到生成bit流的操作,相信大家问题不大。RISC-V的编译环境中也有一些工程样例,overview中也提供了对编译
    发表于 10-28 06:26

    瑞芯微RISC-V芯片已量产,性能、功耗平衡更佳

    作为瑞芯微一款集成RISC-V模块的智能视觉芯片,采用四核Arm Cortex-A7RISC-V MCU的异构架构。该芯片内置2.
    的头像 发表于 10-23 09:13 9634次阅读
    瑞芯微<b class='flag-5'>RISC-V</b>芯片已量产,性能、功耗平衡更佳

    RISC-V B扩展介绍及实现

    B扩展简介 RISCV B扩展指的是RISCV用于位运算加速的一个扩展指令集,目的是使用一条指令实现原本需要2-3条指令才能实现的位操作指令。具体包含内容如下: B扩展就是RISC-V一个可选
    发表于 10-21 13:01

    【飞凌T527N开发板试用】异构RISC-V核心使用体验

    全志T527的最大创新和亮点就在于其 “ARM + 异构RISC-V” 的芯片设计理念。 简单来说, 全志T527内置的阿里平头哥E907 RISC-V核心不是一个可选的协处理器,而是
    发表于 08-19 21:45

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V核间通信开发案例

    本文档主要介绍T113-i处理器的ARM + DSP、RISC-V核间通信开发案例,演示T113-i处理器ARM Cortex-A7与HiF
    的头像 发表于 08-18 14:03 628次阅读
    国产!全志T113-i 双核Cortex-<b class='flag-5'>A7</b>@1.2GHz 工业开发板—<b class='flag-5'>ARM</b> + DSP、<b class='flag-5'>RISC-V</b>核间<b class='flag-5'>通信</b>开发案例

    RISC-VARM有何区别?

    在微处理器架构领域,ARMRISC-V是两个备受关注的体系。ZLG致远电子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心版,这引发了人们对这两种架构差异的深入探讨。
    的头像 发表于 06-24 11:38 1729次阅读
    <b class='flag-5'>RISC-V</b>和<b class='flag-5'>ARM</b>有何区别?

    资料分享 全志T536(异构多核ARMCortex-A55+玄铁E907 RISC-V)工业评估板说明书

    创龙科技TLT536-EVM是一款基于全志科技T536MX-CEN2/T536MX-CXX四核ARM Cortex-A55 + 玄铁E907 RISC-V异构多核处理器设计的国产工业评
    的头像 发表于 04-11 14:22 1235次阅读
    资料分享 全志T536(异构多核ARMCortex-<b class='flag-5'>A</b>55+玄铁<b class='flag-5'>E907</b> <b class='flag-5'>RISC-V</b>)工业评估板说明书

    全志T536(异构多核ARMCortex-A55+玄铁E907 RISC-V)工业核心板说明书

    创龙科技SOM-TLT536是一款基于全志科技T536MX-CEN2/T536MX-CXX四核ARM Cortex-A55 + 玄铁E907 RISC-V异构多核处理器设计的全国产工业
    的头像 发表于 04-08 17:34 1729次阅读
    全志T536(异构多核ARMCortex-<b class='flag-5'>A</b>55+玄铁<b class='flag-5'>E907</b> <b class='flag-5'>RISC-V</b>)工业核心板说明书

    国产开发板—米尔全志T113-i如何实现ARM+RISC-V+DSP协同计算?

    01T113-i芯片及OpenAMP简介[/fly] T113-i芯片简介 T113-i由两颗ARM A7 、一颗C906(RISC-V)和一颗DSP(HIFI 4)组成。 C906(RI
    发表于 03-21 16:50

    RISC-V可能颠覆半导体行业格局的5种方式

    处理器行业。RISC-V在半导体行业有何不同?RISC-V(精简指令集计算–V)在几个关键方面与其他指令集(如x86、ARM和MIPS)不同。以下是一些主要区别:开
    的头像 发表于 02-05 17:03 9次阅读
    <b class='flag-5'>RISC-V</b>可能颠覆半导体行业格局的5种<b class='flag-5'>方式</b>

    ArmRISC-V架构的优劣势比较

    关于ArmRISC-V的讨论涉及多个层面。虽然多种因素共同作用于这些架构的整体性能,但每种架构都有其最适合的几类主要应用场景。 Arm 长期以来,专有技术往往意味著高昂的许可费用,Arm
    发表于 02-01 22:30

    关于RISC-V芯片的应用学习总结

    RISC-V的开源特性使得开发者可以针对特定应用进行优化,进一步提高设备性能。 在高性能计算领域,RISC-V芯片也开始展现出其潜力。虽然传统上高性能计算领域主要由x86和ARM架构占据,但
    发表于 01-29 08:38

    RISC-V架构及MRS开发环境回顾

    )等设计,加快了中断服务函数响应;集成了2线方式的调试接口,方便运行的跟踪和调试。 32位通用增强型RISC-V MCU CH32V103评估板: 2021年5月,为了克服美国对使用最新ARM
    发表于 12-16 23:08

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

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