Linux и RTOS с использованием SoC (ARM, Xilinx) - PullRequest
0 голосов
/ 07 декабря 2018

Я столкнулся с проблемой дизайна.У меня есть плата с Xilinx Zynq Soc, включающая двухъядерный ARM9, и мне нужно разработать приложение для поддержки приложения для управления свойствами в реальном времени (крайние сроки и время отклика), а также приложение для интенсивной обработки (изображения и т. Д.) И некоторые основныесвязь между ними, но самое главное, мне нужно будет иметь возможность контролировать часть Linux (по крайней мере, например, чтобы как-то приостановить ее, в лучшем случае «приостановить ее», чтобы иметь возможность выключить ее, а затем снова запустить).Поэтому мне было интересно, как его объединить.

Одним из вариантов может быть RTLinux, который, по крайней мере, в описании, которое я нашел, дает возможность запускать ядро ​​реального времени и ядро ​​linux рядом с ним как поток, но этоКажется, что теперь он является проприетарным от WindRiver ..

Затем я подошел к MicroBlaze, где можно было бы "создать" программный процессор на программируемой логике, но я не уверен, что смогу запустить RTOS на ARMа линукс есть?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Учитывая ваше описание, у вас есть (как минимум) следующие варианты проектирования:

  1. Подход с двумя ядрами: это означает исправление ядра Linux с помощью (достаточно инвазивного) патча, который запускает крошечный реальныйвремя ядра наряду со стандартным ядром.Такой подход позволяет достичь хорошей производительности в реальном времени (даже у нас) за счет сложности.Он был реализован проектом RTLinux (приобретенным, а затем прекращенным Windriver), затем RTAI (в основном с фокусом на x86) и Xenomai .Если вы пойдете по этому пути, вы увидите, поддерживает ли Xenomai ваш конкретный SoC;затем исправьте, настройте и пересоберите ядро;и, наконец, напишите код в реальном времени, следуя API Xenomai.
  2. Улучшение скорости отклика стандартного ядра Linux: это то, к чему стремится проект PREEMPT_RT .Производительность в реальном времени ниже по сравнению с предыдущим подходом, но вам не нужно писать конкретный код в реальном времени.При таком подходе вы можете исправить и собрать ядро, а затем посмотреть, достаточна ли производительность в реальном времени для ваших нужд.
  3. Синтезирование программного ядра Microblaze на FPGA, затем запуск Linux на ядрах ARM икод реального времени (или «голый металл», или с ОСРВ) на Microblaze.

К сожалению, ваш конкретный SoC не поддерживает расширения виртуализации ARM. В противном случае была бы дополнительная опция Multi-OS подход: запуск ОС Linux на одном ядре ARM и кода реального времени («голого железа» или с ОСРВ, такой как ERIKA Enterprise ) на другом ядре ARM, через гипервизор, такой как Тюрьма или Xen .

0 голосов
/ 19 декабря 2018

Есть две вещи, которые кажутся известными как rtlinux.Тот, который вы упоминаете, возрождение Wind River системы MERT является продуктом этой компании.Другой, вроде бы «RT Linux», представляет собой исправление в реальном времени для основного ядра, которое обеспечивает детерминированное планирование и детальную настройку ядра.

Я думаю, что это последнее, что вам нужно.Google 10 указывает на то, что для этого SoC есть цель kconfig, поэтому все необходимые вам кусочки должны быть там.

Помните, что в системе реального времени есть нечто большее, чем просто способность быть в реальном времени;подсистемы также должны хорошо себя вести.

...