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

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

3天内不再提示

在非对称多核架构中实现软件组件

星星科技指导员 来源:嵌入式计算设计 作者:Valter Minute 2022-06-14 09:35 次阅读

之前我讨论了非对称多核以及如何在需要实时响应时间和丰富的用户界面和/或连接性的场景中使用它。我使用飞思卡尔的 Vybrid 作为此类架构的示例,并讨论了使这种解决方案比使用串行链路连接两个独立处理器的“传统”方法更易于开发和更可靠的硬件特性。

在本文中,我将通过展示一个由 Toradex 和 AntMicro 开发的演示项目来展示可用于在这种架构上实现解决方案的软件组件。我们开发了一个提供触摸屏用户界面的 2D 绘图仪。机械部分不是很复杂。它来自 Internet 上可用的工具包。我们进行了一些改进以提高绘图质量和机械可靠性。

控制绘图硬件需要有限数量的数字 I/O。另一方面,我们需要精确的时间来获得良好的绘图质量,并且需要处理大量的数据来绘制复杂的主题。

现在您已经了解了最终结果,我们可以深入了解它并了解它是如何实现的。

该系统有两个主要组成部分:一个基于触摸屏的用户界面,显示不同的矢量图形图像并让用户选择绘图仪将转移到纸上的一个,以及一个在绘图过程中控制硬件的实时控制系统。每个组件都在专用内核上运行。我们将 Cortex-A5 用于用户界面,将 Cortex-M4 用于实时控制。

在 Cortex-A5 上,我们选择运行 Linux 并使用 QT 框架来实现用户模式应用程序。Linux 是嵌入式设备的常见选择,并以合理的占用空间提供了我们系统所需的所有功能。

Digia 维护的 Qt 框架也是嵌入式设备的流行选择。它提供了丰富的功能集(不限于用户界面)、用户友好的集成开发环境(包括 UI 设计器)和双重开源/商业许可。Qt 支持 SVG 矢量图形格式,这使得选择它作为显示器上显示的图像格式变得很容易。相同的图像被转换为​​ G 代码(一种数字控制编程语言)。控制系统解析 G 代码以执行实际的绘图操作。

在 Cortex-M4 上,我们需要同时执行活动,从 UI 获取命令和数据,同时移动 X 和 Y 轴。这种控制可以在裸机固件中实现,但实时操作系统 (RTOS) 可以简化开发。RTOS 管理不同任务的调度,而不会丢失实时响应时间。它还允许从应用程序代码直接访问硬件。

我们选择 eCos(由 AntMicro 移植)作为 m4 内核的 RTOS。它提供了一个调度器和一个硬件抽象层,使我们的应用程序代码变得简单。这两个组件需要通信,我们有三种不同的通信方式:

• 发送到控制系统的命令

• 关于绘图仪当前状态的反馈

• 提供用于控制绘图的 G 代码

前两种通信涉及少量数据,需要快速传递。飞思卡尔提供了一个名为多核通信 (MCC) 的库,可以很好地满足这些要求。它提供了一个基于端点的接口,用于交换消息。在 Linux 上运行的每个应用程序都可以创建自己的端点,也可以将消息发送到由 M4 核心管理的端点。从开发人员的角度来看,这种机制类似于套接字或管道,提供易于使用的通信链接。

AntMicro 将 MCC 移植到 eCos,在 M4 内核上提供相同的功能。MCC 消息可用于发送小数据包,保持它们的顺序。它们不适合一次发送复杂图形的完整 G 代码。为此,我们决定使用共享内存,允许 M4 内核访问 Linux 应用程序加载的 G 代码数据。

架构如下图所示,突出显示了在两个内核上运行的不同组件。

pYYBAGKn5nCAYDZHAAEyePInf7k702.png

Linux应用程序将M4代码加载到内存并使用飞思卡尔提供的mqxboot命令行工具启动(该工具是开源的,可以作为参考了解M4如何初始化,并在内部直接实现该功能如果需要对过程进行更严格的控制,则应用程序代码)。然后通过 MCC 交换“欢迎”消息,以确保两个内核都启动并运行。当用户选择一个绘图并按下按钮开始绘图时,Linux 应用程序执行一系列操作:

• 发送“home”命令移动绘图区域左上角的笔

• 将 G 代码数据加载到与 M4 共享的内存区域(这也可以使用 mqxboot 完成)

• 发送“start”命令开始绘图过程

此时,M4 内核独立运行,处理 G 代码数据,移动轴,并发送回有关其进度的通知。我们提供了一个按钮,可以在一段时间内以 100% 的速度加载 A5 内核,以表明这不会影响另一个内核的操作,因为它可以独立操作并访问完成绘图所需的数据。

两个应用程序的源代码都可以在github上找到,你可以看到代码总量相当合理(几百行),并且通过MCC实现的管理通信通道的代码非常简单易读。

审核编辑:郭婷

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

    关注

    87

    文章

    11306

    浏览量

    209578
  • 操作系统
    +关注

    关注

    37

    文章

    6829

    浏览量

    123339
  • RTOS
    +关注

    关注

    22

    文章

    813

    浏览量

    119661
收藏 人收藏

    评论

    相关推荐

    Littelfuse推出TPSMB非对称TVS二极管系列

    Littelfuse宣布推出TPSMB非对称TVS二极管系列,这是首款上市的非对称瞬态电压抑制(TVS)二极管,专门用于保护汽车应用的碳化硅(SiC)MOSFET栅极驱动器。 这一创新产品满足
    的头像 发表于 12-30 14:39 66次阅读

    “双系统”出炉!瑞芯微RK3562J非对称AMP:Linux+RTOS/裸机

    本帖最后由 Tronlong创龙科技 于 2024-11-25 08:44 编辑 “非对称AMP”双系统 AMP(Asymmetric Multi-Processing),即非对称多处理架构
    发表于 11-21 16:44

    混合部署 | 迅为RK3568上同时部署RT-Thread和Linux系统

    非对称多处理)是一种更灵活的架构,允许不同的核心运行不同的操作系统,实现更高效的资源利用和任务分配。通过 AMP,系统可以为不同的任务选择最合适的操作系统和处理方式。 当前迅为iTOP-RK3568
    发表于 11-01 10:31

    对称多处理器的特点是什么

    的主要特点是处理器之间的对称性,这意味着每个处理器都可以执行任何任务,并且它们处理能力上是等价的。 1. SMP的定义和历史 对称多处理器系统是一种多处理器计算机硬件架构,其中多个处
    的头像 发表于 10-10 16:36 415次阅读

    对称多处理器系统的进程分配包括

    现代计算机系统对称多处理器(SMP)架构已经成为主流。这种架构允许多个处理器共享相同的内存地址空间和系统资源,从而提高了系统的处理能力
    的头像 发表于 10-10 16:34 275次阅读

    对称多处理器和非对称多处理器的区别

    随着计算需求的日益增长,单处理器系统已经无法满足高性能计算的需求。多处理器系统应运而生,它们通过将多个处理器集成到一个系统来提高计算能力。多处理器系统,有两种主要的架构
    的头像 发表于 10-10 15:58 930次阅读

    混合部署 | 迅为RK3568上同时部署RT-Thread和Linux系统

    非对称多处理)是一种更灵活的架构,允许不同的核心运行不同的操作系统,实现更高效的资源利用和任务分配。通过 AMP,系统可以为不同的任务选择最合适的操作系统和处理方式。 当前迅为iTOP-RK3568开发板
    发表于 09-18 10:54

    请问高频放大器用非对称电源供电会有什么影响?

    高频放大器用非对称电源供电会有什么影响?
    发表于 08-29 06:22

    OPA828运放非对称电源供电有什么好处吗?

    看到一些精密仪器的电路运放好像特意设计成非对称电源供电,比如+14v、-17v这种,请问运放非对称电源供电有什么好处吗?信号摆幅不超过正负7v
    发表于 08-01 06:48

    TL084能否采用-5V和+ 32V的非对称双电源供电呢?

    看手册双电源最高支持到+-20V,单电源是4.5V到40V。请问一下能否采用-5V和+ 32V的非对称双电源供电呢?
    发表于 07-29 06:50

    【本周六-上海】SMP对称多处理 线下培训

    对称多处理(SymmetricMultiprocessing,SMP)是一种常见的并行计算架构,其中多个处理器核心共享相同的内存和总线系统。这种架构允许多个处理器核心同时运行独立的指令流,从而
    的头像 发表于 06-13 08:35 321次阅读
    【本周六-上海】SMP<b class='flag-5'>对称多</b>处理 线下培训

    线下培训 | 瑞萨电子基于RZ/G2L的OpenAMP混合部署实战培训

    OpenAMP一个提供用于处理非对称多处理(AMP)系统的软件组件,可以简化异构多核处理器系统间的高效通信,提供跨平台、可扩展且灵活的解决方案。通过OpenAMP,开发人员可以轻松地
    的头像 发表于 05-17 08:01 595次阅读
    线下培训 | 瑞萨电子基于RZ/G2L的OpenAMP混合部署实战培训

    单相降压转换器双非对称BG评估板数据手册

    电子发烧友网站提供《单相降压转换器双非对称BG评估板数据手册.rar》资料免费下载
    发表于 04-14 17:10 0次下载
    单相降压转换器双<b class='flag-5'>非对称</b>BG评估板数据手册

    单相降压转换器双非对称AG评估板数据手册

    电子发烧友网站提供《单相降压转换器双非对称AG评估板数据手册.rar》资料免费下载
    发表于 04-14 17:02 0次下载
    单相降压转换器双<b class='flag-5'>非对称</b>AG评估板数据手册

    为什么三相短路是对称故障?单相短路是非对称故障呢?

    为什么三相短路是对称故障?单相短路是非对称故障呢? 三相短路是对称故障,而单相短路是非对称故障,其根本原因在于电网的相量关系和电压分布。
    的头像 发表于 02-18 11:41 4097次阅读