首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SoC的Linux和实时操作系统(ARM,Xilinx)

使用SoC的Linux和实时操作系统(ARM,Xilinx)
EN

Stack Overflow用户
提问于 2018-12-07 18:04:42
回答 2查看 578关注 0票数 0

我正面临着一个设计“问题”。我有一个Xilinx Zynq Soc板,包括双核ARM9,我需要开发一个应用程序来支持实时属性控制应用程序(时间截止日期到响应时间),以及做大量处理的应用程序(图像等)。以及它们之间的一些基本通信,但最重要的是,我需要能够控制Linux部分(至少以某种方式挂起它,在最好的情况下“暂停它”,以便有可能关闭它,然后再次运行它)。所以我想知道怎么把它组合起来。

其中一个选项,可以是RTLinux,至少在描述中,我发现它提供了将实时内核和它旁边的linux内核作为线程运行的可能性,但似乎它现在是WindRiver的专有。

然后我开始使用MicroBlaze,在那里可以在可编程逻辑上“创建”软处理器,但是我不确定我是否可以在ARM和Linux上运行实时操作系统?

EN

回答 2

Stack Overflow用户

发布于 2018-12-19 05:42:04

似乎有两个东西被称为rtlinux。你提到的那个,风河MERT系统的复兴就是该公司的产品。另一个,看似“RT Linux”,是主线内核的实时补丁,提供确定性调度和细粒度内核抢占。

我想你想要的是后者。谷歌的10秒表明这个SoC有一个kconfig目标,所以你需要的所有东西都应该在那里。

请记住,实时系统不仅仅是实时的能力;子系统也必须表现良好。

票数 0
EN

Stack Overflow用户

发布于 2019-04-11 16:09:31

根据您的描述,您有(至少)以下设计选项:

Linux

  • 双内核方法:这意味着用一个(相当有侵入性的)补丁来修补Linux内核,这个补丁可以在标准内核旁边运行一个很小的实时内核。这种方法允许以复杂性为代价实现良好的实时性能(甚至在我们的订单中)。它是由RTLinux project (被Windriver收购,然后停止),然后是RTAI (主要专注于x86)和Xenomai实现的。如果你沿着这条路走,你可以看看Xenomai是否支持你特定的SoC;然后修补、配置和重建内核;最后按照Xenomai的API编写实时代码。

  • 提高了Linux标准内核的响应性:这就是PREEMPT_RT project的目标。与以前的方法相比,实时性能较低,但您不必编写特定于实时的代码。使用这种方法,您可以修补和构建内核,然后查看实时性能是否足以在needs.

  • Synthesizing上运行Microblaze软核,然后在ARM内核上运行Linux,并在Microblaze上运行实时代码(裸机或带有实时操作系统)。

不幸的是,您的特定SoC不支持ARM的虚拟化扩展。否则,还可以选择多操作系统方法:在一个ARM内核上运行Linux操作系统,在另一个ARM内核上通过JailhouseXen等管理程序在另一个ARM内核上运行实时代码(要么是裸机,要么是带有ERIKA Enterprise之类的实时操作系统)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53667267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档