我将开始在Zynq板上开发应用程序。我的任务基本上是移植在双核ARM上的Microblaze上运行的现有应用程序。
我想知道的是哪个O.S.在新系统上使用,因为我在这个领域根本没有经验。 在我看来,有四种主要方法:
1)Petalinux(使用两个核心)
2)Petalinux + FreeRTOS(使用两个核心)
3)FreeRTOS(仅使用核心)
4)Baremetal(仅使用核心)
我的应用程序要做的是在以太网和多个自定义链接之间移动大量数据,因此它必须提供大量中断并执行大量DMA操作。
Petalinux在裸机或FreeRTOS的中断服务中引入了多少开销?对于这种工作,您是否认为在没有任何操作系统的情况下运行的单个核心应用程序更快,例如,具有操作系统开销(以及信号量或互斥锁等同步机制)的Petalinux应用程序?
我知道这个问题不准确而且含糊不清,但是在该领域没有经验我强烈需要一些初步的提示。
谢谢。
答案 0 :(得分:1)
正如你所说,这太过模糊,无法给出一个考虑的答案,因为它实际上取决于你的应用程序(什么时候不是)。如果你需要所有的东西'可用于Linux和启动时间不是问题然后继续。如果您需要实际的实时行为,快速启动时间,简单性以及不需要任何特定于Linux的内容,那么FreeRTOS可能是您的最佳选择。有一个Zynq FreeRTOS TCP项目,它在这里使用BSD样式的套接字接口(如Linux):http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCPIP_FAT_Examples_Xilinx_Zynq.html
答案 1 :(得分:1)
通常表现应该不同。 如果使用优化良好的编译器编译linux,那么与裸机相比,很有可能更快。
但如果你需要硬实时linux不适合你。
Altera有一份很好的白皮书,但也适合Xilinx: whitepaper on real time jitter