核心的 rpmsg 框架起到开关的作用,根据消息中包含的目的地址将消息传送到相应端点。由于消息报头包含源地址,因此可在不同处理器之间建立专用连接。

命名服务

处理器可通过向 rpmsg 框架的命名服务发送消息,以动态宣布特定服务。命名服务功能本身用途不是很大。不过,rpmsg 框架允许将服务名称关联到设备驱动程序,以支持驱动程序的自动加载和初始化。

例如,如果远程处理器宣布 dlinx-h323-v1.0 服务,那么核心可以搜索、加载和初始化与该名称关联的驱动程序。如果系统中服务被动态安装在远程处理器上,那么这样可大大简化驱动程序管理。

管理中断

中断管理有些棘手,尤其在启动和停止内核时更是如此。最终,系统需要在远程处理器启动时动态地将特定中断重定向至远程处理器域,然后当远程处理器停止时收回中断。此外,系统必须保护中断,防止其被错误配置的驱动程序误分配。简言之,必须在系统层面管理中断。

对于 Linux SMP 核心而言,这是一个常规事件,而且是 SMP 核心在 AMP 配置中更受青睐的另一个原因。远程处理器框架能方便地管理中断,只需来自设备驱动程序的最小支持。

设备驱动程序

设备驱动开发是个始终需要关注的问题,因为所需的技能组合可能无法立刻提供。幸运的是,Linux 核心的 remoteproc 和 rpmsg 框架完成大部分重活;驱动程序只需要实现几个标准驱动程序例程。功能完整的驱动程序可能只需要几百行代码。核心源代码树包含嵌入式开发人员可根据自身要求进行调整的驱动程序范例。

厂商还提供通用的开源设备驱动程序。DesignLinx Hardware SoluTIons 提供针对 Linux 和 FreeRTOS 的通用 rpmsg 驱动程序。由于通用驱动程序没有假定所交换消息的格式,因此嵌入式开发人员可将其用于多种 AMP 应用,无需做任何修改。

引脚内移动

核心的多处理支持并不局限于同构多处理系统(使用同一类型处理器的系统)。以上介绍的所有特性也可以用在异构系统中(具有不同类型处理器的系统)。当“在引脚内”移植已有设计时,这些多处理功能尤其有用。

新型 SoC 产品使设计人员能够方便地将各种硬件设计从印刷电路板移植到片上系统(图 3)。过去在 PCB 上作为分立处理器和组件的部分可以完全在 SoC 的引脚内实现。

例如,我们可以使用赛灵思 Zynq-7000 系列 SoC 实现图 3 中的初始 PCB 硬件架构,将其中一个 ARM 处理器作为可编程逻辑中的控制 CPU 和软处理器(例如赛灵思 MicroBlaze™ 处理器),以替代分立处理器。我们可以使用剩余的 ARM 处理器运行 Linux SMP 核心(图 4)。

将 Linux 添加到初始设计中能够为 ARM 内核和软核处理器提供以上描述的所有标准多处理功能(例如启动、停止、重载、追踪缓冲区和远程消息)。而且,还带来丰富的 Linux 功能集,可支持多种网络接口(以太网、Wi-Fi、蓝牙)、网络服务(Web 服务器、FTP、SSH、SNMP)、文件系统

新型 SoC 产品使设计人员能够方便地将各种硬件设计从印刷电路板移植到片上系统

(DOS、NFS、cramfs、闪存存储器)以及其他接口(PCIe、SPI、USB、MMC、视频)等。这些特性能方便地实现新功能,无需对经过检验的架构做太大改动。

内核不断涌现

过去几年中,针对嵌入式市场的多核 SoC 产品不断增加,而且很适合用于 AMP 配置。例如,赛灵思 UltraScale+™ MPSoC 架构包含一个 64 位四核 ARM Cortex-A53、一个 32 位双核 ARM Cortex-R5、一个图形处理单元 (GPU) 以及多种其他外设,当然还包括有用的可编程逻辑。这为那些清楚如何驾驭实时操作系统的性能以及 Linux 核心的丰富特性集的设计人员提供了沃土。

如需了解如何设计 Linux/RTOS AMP 系统的更多详情,敬请联系DesignLinx Hardware SoluTIons。 赛灵思联盟计划的高级成员 DesignLinx 专门从事 FPGA 设计与支持业务,包括系统设计、原理图捕捉和电气封装/机械工程设计,以及信号完整性设计。

linux消息框架,远程处理器消息框架 - 基于Linux 简化 AMP 配置使其更方便更动态地分配资源...相关推荐

  1. linux设备资源分配,基于Linux 简化 AMP 配置使其更方便更动态地分配资源

    描述 嵌入式系统一般分为两大类:需要硬实时性能的:和不需要硬实时性能的.过去,我们不得不做出艰难抉择: 选择实时操作系统的性能还是我们钟爱的 Linux 系统的丰富特性,然后努力弥补不足之处? 如今, ...

  2. linux下php可以实现哪些功能,基于Linux的远程管理系统的设计与实现(PHP)

    基于Linux的远程管理系统的设计与实现(PHP) 来源:2BYSJ.cn 资料编号:2SJ260700 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5%A3%BA2SJ260 ...

  3. linux 远程挂载摄像头_基于Linux的嵌入式网络摄像机设计

    本嵌入式网络摄像机采用高性能ARM9芯片微处理器,内置嵌入式Web服务器. 通过嵌入式多任务操作系统采集摄像机视频数据:采集的视频信号数字化后经MJPEG算法压缩,再通过内部总线送到内置的Web服务器 ...

  4. linux文件管理系统开发毕业,定稿毕业论文基于Linux的远程管理系统服务器端的实现word文档(范文1)...

    <[毕业论文]基于Linux的远程管理系统服务器端的实现.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于Linux的远程管理系统服务器端的实现(word文档)& ...

  5. linux虚拟化毕业设计,毕业设计(论文)-基于Linux的云校园桌面虚拟化系统的设计与实现(68页)-原创力文档...

    毕业设计(论文) 题 目: 基于Linux的云校园桌面 虚拟化系统的设计与实现 学 生: 指导老师: 柯 院 别: 软件学院 专 业: 计算机科学与技术 班 级: 1301 学 号: 2015年5月 ...

  6. Linux搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务

    一,samba的基本概念 在早期的网络世界中,文件数据在不同主机之间的传输大多是使用**ftp,**但是使用ftp服务传输档案使得我们无法直接修改主机上面的档案数据.NFS服务可以实现在客户端的机器上 ...

  7. va list win linux,云海虚拟化远程接入 利用VA的Linux插件访问使用windows应用

    第一步:搭建Linux 系统环境 测试环境:Oracle VM VirtualBox + Ubuntu 12.10 系统 系统信息截图如下: 第二步:Linux-AR 下载及安装 无论你用什么办法,反 ...

  8. linux文件中链接文件系统,一种基于Linux文件系统文件链接的缓存LRU方法

    一种基于Linux文件系统文件链接的缓存LRU方法 [技术领域] [0001]本发明涉及信息技术领域,特别是涉及一种基于Linux文件系统文件链接的缓存LRU方法. [背景技术] [0002]目前,随 ...

  9. linux升级ipv6协议栈,IPv6技术及基于Linux平台IPv6协议栈的实现

    IPv6技术及基于Linux平台IPv6协议栈的实现 简单介绍了 IPv6的基本原理和特征 ,重点探讨了 IPv6技术在 L inux环境中的应用 :对支持 IPv6协 (本文共5页) 阅读全文> ...

最新文章

  1. linux7 yum安装rabbitmq,CentOS7linux下yum安装RabbitMQ以及使用顶
  2. 关于matlab中的梯度使用
  3. GDB 使用详解-----转载
  4. 程序员的“认知失调”
  5. 一个简单的workaround - 如何使用SAP Spartacus中的private API
  6. Vue nextTick执行时机分析
  7. mysql数据导入导出 CSV格式_MySQL中导入导出CSV格式数据
  8. 串口接收到的浮点数(解码后出现的错误)
  9. MVC面试问题与答案
  10. 对TRIM SCSI命令的一些分析
  11. RabbitMQ的Android端接收
  12. Swift - 05 - 数值型字面量
  13. 编译C++11/14方法
  14. Unity 移动 和 旋转 [小结]
  15. hololens发布修改工程名字
  16. 软件开发可行性分析规范
  17. Symbian证书级别对应功能
  18. 中国大学生计算机设计大赛 历史作品博物馆
  19. php二维数组声明方式,php二维数组定义
  20. C# 开发的 webBrowser打开网页出现脚本错误解决

热门文章

  1. oracle数据库跟mysql的区别_关于Oracle数据库与MySQL数据库的几点区别
  2. 在保护继承中基类的共有成员_C#初学者教程系列11:继承
  3. nvidia驱动崩了 ubuntu_Ubuntu 16.04安装nVidia驱动失败!
  4. nginx.conf文件内容详解
  5. matlab如何解不等式,如何用MATLAB求解不等式组的所有可能解
  6. 计算机汇编语言运用哪个进制,运用汇编语言怎样以2进制、8进制、10进制、16进制方式输出10进制的数的计算结果。...
  7. (JAVA)reflect练习
  8. 昆山立讯电子工程师_教会徒弟饿死师傅?立讯精密会不会成为第二个富士康
  9. 【软件开发底层知识修炼】二十三 ABI-应用程序二进制接口三之深入理解函数栈帧的形成与摧毁
  10. POJ 1276 完全背包