当前位置:网站首页>Explain in detail the communication mode between arm A7 and risc-v e907 on Quanzhi v853
Explain in detail the communication mode between arm A7 and risc-v e907 on Quanzhi v853
2022-07-07 22:43:00 【51CTO】
V853 The chip contains two CPU. One is the main core Arm A7 CPU, function Tina Linux( Full ambition self-study Linux) System , It is the main system of the chip ; One is RISC-V E907 auxiliary CPU, function Melis( Full ambition self-study RTOS) System , The main function is to provide general computing power supplement 、 auxiliary Linux Realize functions such as fast start and low power management .

- A7 - Linux System
V853 The main core A7 Running on is Tina Linux System .Tina Linux It's all about AIoT Kind of product , be based on Linux Embedded system with deeply customized kernel .
stay Tina Linux in , Provide AMP And RPMsg docking E907
1.Linux remoteproc Management control E907
2.RPMsg And E907 Communications
- E907 - RTOS System
V853 Auxiliary core E907 What is running on is self-study RTOS System Melis. It is independent of A7 In the heart of the main nucleus Linux System . Can run independently .
stay E907 Melis in , Provide OpenAMP Software framework comes with A7 Linux The system communicates .
1. Provides processor lifecycle management (LCM,Life Cycle Management), And Linux Of remoteproc compatible
2. It provides a message transmission mechanism between processors , And Linux Of RPMsg compatible
Heterogeneous system startup process
First , From the inside of the chip BORM Look for the boot media , stay V853 On the development board eMMC Storage . After finding the boot media, it will run BOOT0 Code .BOOT0 Will be in A7 The main core runs Linux System , Will also be in E907 Run in the core RTOS System . The two systems started are running independently .

Communication of heterogeneous systems
V853 The heterogeneous system communication in hardware uses MSGBOX, At the software level AMP And RPMsg Communication protocol . among A7 Based on Linux The standard RPMsg Drive frame ,E907 be based on OpenAMP Heterogeneous communication framework .
V853 With A7 Main core and E907 The auxiliary core is completely different from the two cores , In order to maximize their performance , Cooperate to complete a task , So the systems running on different cores are also different . The core of these different architectures and the software running on them are combined , became AMP System (Asymmetric Multiprocessing System, Heterogeneous multiprocessing system ).
Because the purpose of the existence of the two cores is collaborative processing , Therefore, in heterogeneous multiprocessing systems, it often forms Master - Remote structure . After the main core is started, start the auxiliary core . When the systems on both cores are started , They passed through IPC(Inter Processor Communication) Way to communicate , and RPMsg Namely IPC One of the .
stay AMP In the system , The two cores communicate by sharing memory . The two cores passed AMP Interrupt to deliver messages . The main core is responsible for memory management .

AMP The system has two buffers in each communication direction , Namely USED and AVAIL, This buffer can be in accordance with RPMsg The format of messages in is divided into pieces and links form a ring .

When the master core needs to communicate with the slave core, it can be divided into four steps :
- The master core follows first USED Get a piece of memory (Allocate)
- Fill the message according to the message protocol
- Link this memory to AVAIL Buffer zone (Send)
- Trigger interrupt , Notify the auxiliary kernel to handle the message

conversely , It is also similar when the slave core needs to communicate with the master core :
- The master core follows first AVAIL Get a piece of memory (Allocate)
- Fill the message according to the message protocol
- Link this memory to USED Buffer zone (Send)
- Trigger interrupt , Notify the main core of message processing .

since RPMsg It is a kind of information exchange protocol , And TCP/IP similar ,RPMsg The protocol also has layers , It is mainly divided into three layers , They are the transport layer 、MAC Layer and physical layer .

among MAC layer Of VirtIO It's a kind of I/O Semi virtualization solutions , It's a universal I/O Device virtualization program , It's semi virtualization Hypervisor A set of common I/O The abstraction of the device . It provides a set of upper application and each Hypervisor Communication framework and programming interface between virtualized devices , Reduce cross platform compatibility issues , Greatly improve the efficiency of driver development .
RPMsg Messages on the bus have the following structure , It contains two fixed parts: message header and data , The definition of the message format is located in drivers/rpmsg/virtio_rpmsg_bus.c in , The specific definitions are as follows :
Control of heterogeneous systems
In heterogeneous systems , More than just message transmission , Relevant controls are also needed . For example, the opening of the main check auxiliary core , Loading firmware , Shut down... Etc . And that's where it comes in remoteproc frame .
remoteproc The framework supports different platforms , Control by processors of different architectures , It can monitor the operation of the auxiliary core .
about V853 Come on ,remoteproc Used to deal with E907 Lifecycle management , Generally speaking, it includes loading firmware 、 Detect whether the remote processor crashes and other functions . When it loads the firmware of the remote processor , Will be based on resource table To apply for resources , And create VirtIO equipment .
边栏推荐
- Debezium系列之:引入对 LATERAL 运算符的支持
- [azure microservice service fabric] start the performance monitor in the SF node and set the method of capturing the process
- 0-5vac to 4-20mA AC current isolated transmitter / conversion module
- PHP records the pitfalls encountered in the complete docking of Tencent cloud live broadcast and im live group chat
- Cataloger integrates lidar and IMU for 2D mapping
- 数字化转型:五个步骤推动企业进步
- OpenGL job - texture
- C # Development -- pit encountered in JS intermodulation
- Redis官方ORM框架比RedisTemplate更优雅
- Revit secondary development - wall opening
猜你喜欢

ASP.NET Core入门五

How to quickly check whether the opening area ratio of steel mesh conforms to ipc7525

What does it mean to prefix a string with F?

Ni9185 and ni9234 hardware settings in Ni Max

Two kinds of updates lost and Solutions

UWA Q & a collection

如何选择合适的自动化测试工具?

Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb

How to realize the movement control of characters in horizontal game

Record a garbled code during servlet learning
随机推荐
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xf9 in position 56: illegal multibyte sequence
Understand the autograd package in pytorch
Use json Stringify() to realize deep copy, be careful, there may be a huge hole
How to quickly check whether the opening area ratio of steel mesh conforms to ipc7525
Install mxnet GPU version
What does it mean to prefix a string with F?
Unity local coordinates and world coordinates
IP网络主动测评系统——X-Vision
“拧巴”的早教行业:万亿市场,难出巨头
如何实现横版游戏中角色的移动控制
Aspose. Word operation word document (I)
Write in front -- Talking about program development
[environment] pycharm sets the tool to convert QRC into py file
0-5VAC转4-20mA交流电流隔离变送器/转换模块
[open source] Net ORM accessing Firebird database
【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式
Kaggle-Titanic
Revit secondary development - collision detection
Relationship between URL and URI
#DAYU200体验官#MPPT光伏发电项目 DAYU200、Hi3861、华为云IotDA