使用SoC的Linux和RTOS(ARM,Xilinx)

问题描述 投票:0回答:2

我正面临一个设计“问题”。我有一个包含Xilinx Zynq Soc的主板,包括双核ARM9,我需要开发一个应用程序来支持实时属性控制应用程序(响应时间的最后期限)以及应用程序来执行繁重的处理(图像等)和一些基本的它们之间的通信,但最重要的是我需要能够控制Linux部分(至少例如以某种方式暂停它,“暂停它”在最好的情况下有可能关闭它然后再次运行它)。所以我想知道如何结合它。

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

然后我加强了MicroBlaze,可以在可编程逻辑上“创建”软处理器,但我不确定我是否可以在ARM和Linux上运行RTOS?

linux real-time fpga rtos
2个回答
0
投票

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

我认为这是你想要的后者。 10s的谷歌表明这个SoC有一个kconfig目标,所以你需要的所有部分应该在那里。

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


0
投票

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

  1. 双内核方法:这意味着使用(非常侵入性)补丁修补Linux内核,该补丁在标准内核旁边运行一个微小的实时内核。这种方法允许以复杂性为代价达到良好的实时性能(即使按我们的顺序)。它由RTLinux project(由Windriver获得然后停止),然后由RTAI(主要关注x86)和Xenomai实现。如果您沿着这条路走,您可以看到Xenomai是否支持您的特定SoC;然后补丁,配置和重建内核;最后根据Xenomai的API编写实时代码。
  2. 提高Linux标准内核的响应能力:这就是PREEMPT_RT project的目标。与以前的方法相比,实时性能较低,但您不必编写实时特定代码。使用这种方法,您可以修补和构建内核,然后查看实时性能是否足以满足您的需求。
  3. 在FPGA上合成Microblaze软核,然后在ARM内核上运行Linux,在Microblaze上运行实时代码((裸机或RTOS))。

不幸的是,您的特定SoC不支持ARM的虚拟化扩展。否则会出现多操作系统方法的附加选项:在一个ARM内核上运行Linux操作系统,在另一个ARM内核上运行实时代码(裸机或使用像ERIKA Enterprise这样的RTOS),通过像Jailhouse这样的虚拟机管理程序或者Xen

© www.soinside.com 2019 - 2024. All rights reserved.