zoukankan      html  css  js  c++  java
  • 对比传统的Xilinx AMP方案和OPENAMP方案-xapp1078和ug1186

    xapp1078创建于2013年2月。文章描述了启动运行两个内核的方法,两个cpu内核分别运行linux和bare-metal。已经过去四年,所以称其为传统的AMP方案。

    该方案的关键过程:

    (1)修改FSBL源码,使其能够load多个elf和bit文件,直到遇到标志Load地址后停止load,返回运行u-boot。

    (2)通过配置文件image.bif将core0的u-boot.elf和core1的bare-metal.elf文件还有用于load停止的dummy bin文件都包含进来,然后运行bootgen生成BOOT.BIN。

    (3)双核启动后,core1处于wfe状态。core0首先向将bare-metal.elf的运行地址写到WFE loop的检测地址,然后sev或者中断唤醒core1,之后core1跳转运行bare-metal.elf。core0从文件系统中启动linux app,与core1进行通信。

    ug1186创建于2017年5月,文章介绍了在zynq上使用OpenAMP框架实现AMP的方法,两个cpu内核分别运行linux和bare-metal。称其为OpenAMP方案。master linux CPU内核通过remoteproc API来控制管理remote内核的生命周期(life cycle management LCM),为remote processor分配系统资源和创建virtIO设备。通过RPMsg API来实现不同cpu内核上运行的软件之间的通信。

    该方案的关键过程:

    (1)基于remoteproc和RPMsg来设计bare-metal.elf程序。

    (2)bare-metal.elf加入到petalinux工程中,后续remoteproc在linux的filesystem中调用bare-metal.elf。

    (3)配置Kernel相应的options来配合OpenAMP工作。

  • 相关阅读:
    “5W1H”带你来学习JavaScript
    [windows+cocos2dx]文本类
    server后台TCP连接存活问题
    (七):处理MFC
    Servlet中的request对象、重定向和转发的差别(6)
    ORACLE 存储函数
    【@伏草惟存@】7年系列博文精选
    笔记14:Docker 部署Python项目
    笔记13:Python 和 Elasticsearch 构建简易搜索
    笔试12:Bootstrap知识
  • 原文地址:https://www.cnblogs.com/abolide/p/7018640.html
Copyright © 2011-2022 走看看