beaglebone Black处理器包括两个独立的可编程实时单元(PRU)。业余爱好者和专业人士对这些单元可能用于实时应用感到兴奋,这是可以理解的。但是,如果您可以拥有RTOS(无论是beaglebone还是覆盆子派),为什么还需要PRU?
编辑-作为信息,BBB有一个运行频率为1 GHz的ARM Cortex A8,具有1.9 DMIPS/MHz。PRU是运行在200 MHz的简单RISC。
Linux,即使使用实时调度程序也不适合许多具有微秒级响应要求的关键硬实时任务,另一方面,它在UI,连接性和文件系统支持方面提供或启用了大量功能。 这些东西要么在RTOS中不可用,要么在高端RTOS中以高昂的成本提供,并且硬件支持更加有限。
因此,如果您的系统具有硬实时限制,但需要更多通用计算功能,例如网络、文件系统连接到商用现货 (COTS) 外围设备等,那么 PRU 提供了解决方案。
另一方面,我不禁认为这是TI方面销售更多芯片的营销活动。 类似的解决方案总是可能的(实际上很常见),使用一个或多个处理器来执行时间关键型任务,可能运行RTOS,而UI和连接由具有必要硬件和内存资源的单个处理器处理,但没有实时限制。 PRU 设备确实有两个 32 位内核,但 XMOS xCORE 设备有多达 16 个内核 - 有 16 个通信内核,您甚至可能不需要 RTOS。
要回答这个问题...
[...]如果你可以有一个RTOS[...],你为什么需要PRU?
。径直;在这种情况下,你可能不需要它们,但你会失去Linux——你的应用程序可能需要它。 它只是使用 Linux 的实时应用程序的众多解决方案之一。 你付钱,并做出你的选择。
BeagleBone或RaspberryPI中的处理器很可能对于实时来说太"重"了 - 毕竟,你可以在PC上运行RTOS,但它不会非常灵敏,即使它比典型的微控制器快(我猜这些PRU是某种具有新名字的微控制器)。在这些板上的高级应用处理器中,您很少能够直接访问硬件或中断,这对于实际执行时间关键操作的实时应用程序至关重要。