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
    +关注

    关注

    88

    文章

    11817

    浏览量

    219555
  • 操作系统
    +关注

    关注

    37

    文章

    7437

    浏览量

    129621
  • RTOS
    +关注

    关注

    25

    文章

    870

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    睿擎平台AMP共享内存:Linux 与 RT-Thread 高速数据交换

    AMP(AsymmetricMulti-Processing,非对称多处理)混合部署架构,Linux和RT-Thread运行在同一颗芯片的两个不同核心上,如何高效地
    的头像 发表于 04-22 18:09 296次阅读
    睿擎平台AMP共享内存:Linux 与 RT-Thread 高速数据交换

    90W AC - DC非对称半桥适配器设计解析

    90W AC - DC非对称半桥适配器设计解析 电子设备的电源设计领域,高效、稳定的电源适配器是关键。今天我们来深入探讨一款基于非对称半桥拓扑(AHB)的90W宽范围输入AC - DC适配器
    的头像 发表于 04-16 09:50 374次阅读

    TO-247-4L 封装第四引脚(Kelvin Source)非对称布局下的震荡抑制技巧

    TO-247-4L 封装第四引脚(Kelvin Source)非对称布局下的震荡抑制技巧与深度物理机制分析 宽禁带半导体开关动态特性与封装演进背景 现代电力电子变换器设计
    的头像 发表于 04-02 07:51 548次阅读
    TO-247-4L 封装<b class='flag-5'>中</b>第四引脚(Kelvin Source)<b class='flag-5'>在</b><b class='flag-5'>非对称</b>布局下的震荡抑制技巧

    ADSP - BF561:高性能嵌入式对称多处理器的深度解析

    ADSP - BF561:高性能嵌入式对称多处理器的深度解析 电子设计领域,一款优秀的处理器对于产品的性能和功能起着至关重要的作用。今天,我们就来深入探讨一下Analog Devices公司
    的头像 发表于 03-23 17:20 752次阅读

    适配“大下行 + 小上行” 场景:信而泰 2544 非对称测试操作指南

    的 ONU-OLT 组网应用,“非对称” 是业务流量的典型特征: l 家庭用户观看 4K 视频、下载大文件时,产生的下行流量可达百兆甚至千兆级别,而日常发送消息、上传文件的上行流量仅为几兆到几十兆; l 企业接入场景
    的头像 发表于 01-27 17:09 1115次阅读
    适配“大下行 + 小上行” 场景:信而泰 2544 <b class='flag-5'>非对称</b>测试操作指南

    全志T153处理器ARM+RISC-V的双核CP多有强?——飞凌嵌入式

    嵌入式设备拼性能、拼响应、拼功耗的内卷时代,双核协作才是破局的关键。传统的对称多处理(SMP)架构已难以兼顾全场景需求,非对称多处理(AMP)异构
    的头像 发表于 01-16 08:06 2020次阅读
    全志T153处理器ARM+RISC-V的双核CP多有强?——飞凌嵌入式

    米尔RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构

    全与合规性要求。 二、AMP异构实时方案:低成本实现硬实时控制RK3506三核Cortex-A7架构是实时能力的核心。我们实现非对称多处理(AMP)方案,允许将其中一颗Cort
    发表于 12-19 20:35

    乐鑫科技ESP-AMP框架详解!两款已支持的ESP32-P4C5开发板推荐!启明云端乐鑫科技代理

    多核嵌入式开发,如何实现任务的高效分工与跨核通信,一直是开发者关注的重点。ESP-AMP作为专为ESP32系列打造的非对称多处理框架,现
    的头像 发表于 12-18 18:02 1985次阅读
    乐鑫科技ESP-AMP框架详解!两款已支持的ESP32-P4C5开发板推荐!启明云端乐鑫科技代理

    深入解析SMFA非对称系列表面贴装TVS二极管

    深入解析SMFA非对称系列表面贴装TVS二极管 电子设备的设计,保护关键元件免受电压瞬变和浪涌的影响至关重要。TVS(瞬态电压抑制)二极管作为一种常用的保护器件,能够瞬间吸收大量
    的头像 发表于 12-15 16:40 497次阅读

    TPSMB非对称系列TVS二极管:汽车应用的理想保护方案

    TPSMB非对称系列TVS二极管:汽车应用的理想保护方案 汽车电子领域,随着电动汽车的快速发展,对电子元件的性能和可靠性提出了更高的要求。TVS(瞬态电压抑制)二极管作为一种重要的过电压保护元件
    的头像 发表于 12-15 16:20 643次阅读

    【深度实战】MYD-LR3576 AMP非对称多核开发指南:从配置到实战

    一、什么是AMP?为什么重要?AMP(AsymmetricMulti-Processing)非对称多处理架构,允许单个芯片的不同核心运行不同的操作系统或裸机程序。相比传统的SMP(对称多
    的头像 发表于 12-05 08:07 7354次阅读
    【深度实战】MYD-LR3576 AMP<b class='flag-5'>非对称多核</b>开发指南:从配置到实战

    FreeRTOS和uC/OS-II的功能特性

    多核支持 (FreeRTOS SMP): 有官方对称多处理 (SMP) 版本,支持多核处理器。 MPU 支持: 支持内存保护单元 (MPU),用于任务隔离和提升可靠性/安全性。 POSIX 兼容层
    发表于 11-17 08:17

    非对称密钥生成和转换规格详解

    生成 以字符串参数生成RSA密钥,具体的“字符串参数”由“RSA密钥类型”和“素数个数”使用符号“|”拼接而成,用于创建非对称密钥生成器时,指定密钥规格。 说明:生成RSA非对称密钥时,默认素数为2
    发表于 09-01 07:50

    如何在 MA35 系列微处理器 (MPU) 上开发 AMP(非对称多处理)应用程序?

    如何在 MA35 系列微处理器 (MPU) 上开发 AMP(非对称多处理)应用程序,并通过建立多个端点的过程促进与其他内核的多通道数据传输。
    发表于 08-19 06:11

    凌科芯安LKT4304安全芯片在智能家居网关中的应用

    采用对称加密与非对称加密相结合的混合加密架构智能家居网关与服务器通信过程非对称加密算法(
    的头像 发表于 06-16 17:43 1408次阅读
    凌科芯安LKT4304安全芯片在智能家居网关中的应用