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

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

3天内不再提示

如何在多核嵌入式系统上开发软件

时见栖鸦 来源:时见栖鸦 作者:时见栖鸦 2022-07-18 18:01 次阅读

多核嵌入式系统的软件可能非常复杂。一个经常讨论的主题是如何在每个内核上实现代码,以便最佳地利用它。在这篇简短的文章中,有一个不同的观点:关注可以跨多个内核运行的软件。

多核硬件架构

从硬件的角度来看,多核设备大致有两种类型:同构多核,其中有多个相同类型的内核,以及异构多核,其中内核是不同类型的。异构设备可能包括一些相同的内核。

要跨多个内核运行单个软件,内核必须相同(无论如何从指令集的角度来看)。因此,需要一个同质的多核设备或异构设备中的同质“孤岛”。

对称多处理

构建多核系统的一个原因是以节能的方式最大化计算能力。这是个人电脑设计者采用的方法;多核处理器在笔记本电脑和台式机系统中几乎无处不在。嵌入式开发人员可能有相同的目标。最好的方法是使用支持对称多处理 (SMP) 的操作系统

SMP OS 将进程分布在可用内核上。这通常是自动的,但嵌入式开发人员可能需要进行一些控制,并可能将某些应用程序锁定到特定内核。这些进程并不“知道”它们在不同的内核上运行;操作系统提供它们之间的通信和同步。提供多个实时操作系统 (RTOS) 的 SMP 版本;Linux 还提供 SMP 变体。

管理程序

尽管嵌入式 SMP OS 提供了某种程度的控制,但嵌入式开发人员通常希望确保资源的分配完全符合他们的喜好。因此,另一种选择是为每个内核配置自己的操作系统实例——所有内核不必运行相同的操作系统——和应用程序代码。然后,在所有可以控制其操作(引导顺序等)并提供内核间(或操作系统间)通信的内核上运行管理程序。

为了获得更大的灵活性……

到目前为止,我们通过从系统中的单个 (SMP) 操作系统迁移到多个可能不同的操作系统实例来提高灵活性。但是,如果需要更大的灵活性而需要使用不同架构的内核呢?这消除了跨多个内核运行代码的选项——SMP OS 或管理程序都需要同构多核环境。但是,还有另一种选择:在每个内核上运行一个多核框架(可能是基于 OpenAMP 的产品)。这种方法提供内核间通信和生命周期管理。此外,还可以选择在“裸机”(即没有操作系统)上运行应用程序。

结论

在多核嵌入式系统上开发软件是一项复杂的工作。了解一些选项至关重要——在相对简单性和完全灵活性之间进行权衡。

审核编辑:汤梓红

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

    关注

    40

    文章

    3437

    浏览量

    128235
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • 多核系统
    +关注

    关注

    0

    文章

    10

    浏览量

    7416
收藏 人收藏

    评论

    相关推荐

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件嵌入式软件通常是指
    发表于 02-19 11:23

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统软件部分。固件负责控制硬件并
    发表于 02-02 15:24

    如何虚拟化Arm Cortex-R52多核微控制器

    OpenSynergy开发软件解决方案用于嵌入式汽车系统。 OpenSynergy的产品组合包括必要的关键软件组件,在以下领域创造有效的汽车解决方案:
    的头像 发表于 01-25 14:50 427次阅读
    如何虚拟化Arm Cortex-R52<b class='flag-5'>多核</b>微控制器

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发
    的头像 发表于 01-22 15:27 611次阅读

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧!
    发表于 12-05 15:17

    嵌入式软件开发常用工具有哪些?

    收购。 2、IAR Embedded Workbench:这是一款为嵌入式系统设计者提供高级开发工具的软件套装,支持ARM、Cortex-M、8051、PIC等众多微控制器。 3、C
    发表于 11-10 11:03

    什么是嵌入式Linux?

    之有运行程序的能力与作用。在很多智能家电开发,智能产品的研究上有着主导的作用。(对个人、团队开发产品有兴趣的朋友一定要看看嵌入式!) linux的嵌入式
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    。 那么从事嵌入式工作有哪些优势? 一是工作强度相对较低。开发企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都不同,
    发表于 10-08 15:05

    嵌入式Linux应用开发的完全手册

    是怎样和硬件发生作用的。 同样,对于想从硬件岗位转到软件岗位的人,对于想从传统单片机(比如51单片机)编程进一·步学习“有操作系统的”嵌入式编程的人,需要找到一个学习的切入点:先掌握各个硬件部件的简单编程
    发表于 09-25 07:12

    嵌入式软件好还是硬件好?

    嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要
    发表于 09-18 15:31

    107使用ADS v1.2进行嵌入式软件开发

    当开始为嵌入式应用程序开发软件时,ADS的用户可能不知道他们的目标硬件的技术规格。目标外围设备、内存映射甚至处理器本身的细节可能是未知或未确定的。 为了在知道或考虑此类细节之前进行软件开发,ADS
    发表于 08-30 06:27

    如何提高嵌入式软件单元测试效率

    有用。 在为嵌入式系统开发软件时,准确和高效的测试是必不可少的,特别是对于持续集成和功能安全流。 来自全面回归测试套件的快速通过或失败结果使团队能够开发高质量的软件,而无需浪费工程资源
    发表于 08-28 06:31

    中国首颗ARM+RISC-V异构多核MCU伴随IAR在上海国际嵌入式展亮相

    系统、硬件、工具等全产业链关键环节。 IAR Systems作为全球领先的嵌入式系统开发工具和服务的供应商,在本次展会给大家展示了多核调试技术。航顺芯片作为IAR System合作伙
    发表于 06-15 18:32

    什么人适合学习嵌入式开发

    操作系统和应用软件开发嵌入式设备的增值很大程度上取决于嵌入式软件,这一领域占了
    发表于 06-07 15:55

    是否可以使用MCUxpresso IDE为i.MX RT1170的M4和M7内核开发软件

    是否可以使用 MCUxpresso IDE 为 i.MX RT1170 的 M4 和 M7 内核开发软件
    发表于 05-29 07:07