为什么在拥有RTOS时需要可编程实时单元(PRU)?

stu*_*nt1 11 embedded rtos raspberry-pi beagleboneblack

beaglebone Black处理器包括两个独立的可编程实时单元(PRU).业余爱好者和专业人士对可能将这些单元用于实时应用感到兴奋,这是可以理解的.但是,如果您可以使用RTOS(无论是beaglebone还是Rasberry pi),为什么还需要PRU?

编辑 - 有关信息,BBB的ARM Cortex A8运行频率为1 GHz,频率为1.9 DMIPS/MHz.PRU是以200 MHz运行的简单RISC.

Cli*_*ord 8

即使使用实时调度程序,Linux也不适用于许多具有微秒级响应要求的关键硬实时任务,另一方面,它提供或支持UI,连接和文件系统支持方面的大量功能.这些东西要么在RTOS中不可用,要么在高端RTOS中以高成本提供,并且具有更多有限的硬件支持.

因此,如果您的系统具有硬实时约束,但需要更多通用计算功能,如网络,文件系统连接到商用现货(COTS)外围设备等,那么PRU提供了一个解决方案. .

另一方面,我不禁认为这是TI出售更多芯片的营销活动.使用一个或多个处理器执行时间关键任务(可能运行RTOS)的类似解决方案始终是可能的(并且确实很常见),而UI和连接由具有必要硬件和内存资源的单个处理器处理但没有真实的时间限制.PRU设备有两个32位内核,但XMOS xCORE设备有多达16个内核 - 有16个通信内核,您甚至可能不需要RTOS.

回答这个问题......

[...]如果您有RTOS [...],为什么还需要PRU?

......直接 在这种情况下你可能不需要它们,但是你会松开Linux - 你的应用程序可能需要它.它只是使用Linux的实时应用程序的众多解决方案之一.你付钱,然后自己选择.

  • 您在回答该问题时曾问过同样的问题-我的回答是适用的,但要重申的是,在Linux上,当操作系统解决该问题时就会发生响应-这是不确定的。专用于单个任务的处理器通常将更快,更确定地(即,每次都相同)做出响应。RTOS可以使BB对大多数任务做出足够快速而确定的响应,但是如果您随后松开Linux带来的所有内容,您的应用程序是否仍然可行?如果您不需要Linux,则可能也不需要BB。 (2认同)

Fre*_*pin 6

最有可能在BeagleBone或树莓派处理器是一种用于实时太"重" -毕竟,你可以在你的PC上运行的实时操作系统,但它不会是非常敏感的完全确定性,即使它比典型的微控制器更快(我想这这些PRU是某种具有新名称的微控制器.在这些主板上的高级应用处理器中,您很少能直接访问硬件或中断,这对于实际执行时间要求严格的实时应用程序至关重要.

  • 如果您在PC上运行和RTOS,它将具有硬实时确定性响应.RTOS确保而不是硬件.事实上,在QNX Neutrino之前并不罕见,QNX完全是x86 RTOS.这些平台上的Linux*通用*操作系统(GPOS)会阻止实时性能. (2认同)
  • @ student1:Linux系统在按时间划分的调度程序中执行许多任务。它不是实时的,因为您无法“保证”何时安排任何特定任务。是的,如果您在其上运行RTOS,它可能适合*大多数*实时任务,但是专用于一项任务且中断延迟为零的处理器*将*更快地响应,但更重要的是*确定性*;不确定的时间片数量之后。 (2认同)