Зачем вам нужен программируемый блок реального времени (PRU), в то время как вы можете иметь RTOS?
процессор BeagleBone Black включает в себя два независимых программируемых блока реального времени (PRUs). Любители и профессионалы взволнованы возможным использованием этих устройств для приложений в реальном времени, что понятно. Однако, если у вас может быть RTOS (будь то для beaglebone или raspberry pi), зачем вам нужен PRUs?
изменить- Для информации BBB имеет ARM Cortex A8, работающий на частоте 1 ГГц, с 1.9 DMIPS / MHz. В Прус простые риски бег на 200 МГц.
2 ответов
Linux, даже с планировщиком в реальном времени, не подходит для многих критических жестких задач в реальном времени с требованиями к ответам на уровне микросекунд, с другой стороны, он обеспечивает или обеспечивает большую функциональность с точки зрения пользовательского интерфейса, подключения и поддержки файловой системы. Эти вещи либо недоступны в RTOS, либо предоставляются по значительной цене в высококачественных RTOS и с гораздо более ограниченной аппаратной поддержкой.
Итак, если у вас есть система с жестким временем ограничения, но требует более общего назначения вычислительных функций, таких как сеть, подключение файловой системы к коммерческим периферийным устройствам (COTS)и т. д., тогда PRU предоставляет решение для этого.
с другой стороны, я не могу не думать, что это маркетинговое упражнение со стороны TI, чтобы продать больше чипов. Аналогичное решение всегда было возможно (и действительно распространено) с использованием одного или нескольких процессоров для выполнения критически важных задач времени, возможно, запуска RTOS, в то время как UI и подключение обрабатываются единым процессором с необходимым оборудованием и ресурсами памяти, но без ограничений в режиме реального времени. Устройство PRU имеет два 32-битных ядра, но компании XMOS составе xcore устройства имеют целых 16 ядер - с 16 сообщающимися ядрами вам может даже не понадобиться RTOS.
чтобы ответить на вопрос...
[...] если вы можете иметь RTOS [...], зачем тебе PRUs?
... напрямую; вы, вероятно, в этом случае они не понадобятся, но вы потеряете Linux - и вашему приложению это может понадобиться. Это лишь одно из многих решений для приложений реального времени, использующих Linux. Ты платишь деньги и делаешь выбор.
скорее всего процессор в BeagleBone или RaspberryPI слишком "тяжелый" для реального времени - ведь вы могли бы запускать RTOS на своем ПК, но это не будет очень отзывчивы полностью детерминированный, даже когда он быстрее, чем ваш типичный микроконтроллер (я думаю, что эти PRUs-это какие-то микроконтроллеры с новым причудливым именем). В таком высокоуровневом процессоре приложений, как на этих платах, вы редко имеете прямой доступ к оборудованию или прерываниям, которые необходимы для приложения реального времени, которые на самом деле делают что-то критически важное.