2

我将开始在 Zynq 板上开发应用程序。我的任务基本上是移植在双核 ARM 上的 Microblaze 上运行的现有应用程序。

我想知道在新系统上使用哪个操作系统,因为我在这个领域完全没有经验。在我看来,有四种主要方法:

1) Petalinux(使用两个内核)

2) Petalinux+FreeRTOS(使用两个内核)

3) FreeRTOS(仅使用一个内核)

4) 裸机(仅使用核心)

我的应用程序要做的是在以太网和多个自定义链路之间移动大量数据,因此它必须服务大量中断并指挥大量 DMA 操作。

Petalinux 在中断服务中引入了多少与 baremetal 或 FreeRTOS 相关的开销?对于这种工作,您是否认为单核应用程序在没有任何操作系统的情况下运行更快,或者,例如,具有操作系统开销(以及信号量或互斥体等同步机制)的 Petalinux 应用程序?

我知道这个问题并不精确而且很模糊,但是我没有该领域的经验,我强烈需要一些初步的提示。

谢谢你。

4

2 回答 2

1

正如你所说,这太模糊了,无法给出一个深思熟虑的答案,因为它真的取决于你的应用程序(什么时候不)。如果您需要所有可用于 Linux 的“东西”并且启动时间不是问题,那么就去做吧。如果您需要实际的实时行为、快速启动时间、简单性,并且不需要任何特定于 Linux 的东西,那么 FreeRTOS 可能是您的最佳选择。这里有一个使用 BSD 样式套接字接口(如 Linux)的 Zynq FreeRTOS TCP 项目:http ://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCPIP_FAT_Examples_Xilinx_Zynq.html

于 2016-06-26T18:22:03.087 回答
1

通常性能应该不会有很大差异。如果您使用优化良好的编译器编译您的 linux,那么与裸机相比,它很有可能更快。

但是如果你需要硬实时linux不适合你。

Altera 有一份很好的白皮书,但也适用于 Xilinx: 实时抖动白皮书

于 2016-06-27T10:36:18.480 回答