Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Операционные системы _ realtime Linux с Xenomai

Автор: Olej Jul 1 2018, 10:16

Кто использует?
Кто что может сказать по этому поводу?

Начну с вот этого:
http://electronix.ru/redirect.php?https://pdfs.semanticscholar.org/9eb5/1dbe38fb23034e80b8664d8281996d2a5ef6.pdf?_ga=2.115305735.1422742923.1510677552-1828769110.1510677552

Цитата
Dr. Jeremy H. Brown
Rep Invariant Systems, Inc.
38 Cameron Ave, Suite 100, Cambridge, MA, 02140, USA
jhbrown@repinvariant.com
Brad Martin
Rep Invariant Systems, Inc.
38 Cameron Ave, Suite 100, Cambridge, MA, 02140, USA
bmartin@repinvariant.com

Это Кембриджкий университет, 17 стр., с результатами тестирования.
И это очень похоже на правду.
И это результаты не уступающие хвалёной OS QNX.
Там же - сравнения с более традиционным RTLinux с CONFIG PREEMPT RT - который не идёт ни в какое сравнение.

Кто собирал ядро Linux с патчами под Xenomai Cobalt (3.05-3.07)?
В принципе, ядро с Xenomai для embedded применений позволяют собрать последние версии BuildRoot.
Есть у кого опыт и успехи в этом деле?

А я потом biggrin.gif поделюсь своими знаниями и находками относительно Xenomai.

Автор: Olej Jul 2 2018, 03:01

Цитата(Olej @ Jul 1 2018, 13:16) *
Кто собирал ядро Linux с патчами под Xenomai Cobalt (3.05-3.07)?

Собирать рабочий образ realtime системы с Xenomai довольно противное занятие, и описано здесь - http://electronix.ru/redirect.php?https://gitlab.denx.de/Xenomai/xenomai/wikis/Installing_Xenomai_3#Building_a_Cobaltx86_kernel_3264bit:

1. Нужен патч ipipe исходников майнлайнового ядра (с kernel.org), патч проекта .
Берётся здесь - http://electronix.ru/redirect.php?https://xenomai.org/downloads/ipipe/v4.x/, под свою процессорную архитектуру:
Код
[DIR] arm/                    12-Jun-2018 19:15    -  
[DIR] arm64/                  08-Apr-2018 16:47    -  
[DIR] blackfin/               26-Mar-2018 09:31    -  
[DIR] powerpc/                26-Mar-2018 09:31    -  
[DIR] x86/                    26-Mar-2018 17:54    -

Это патчи проекта http://electronix.ru/redirect.php?https://ru.bmstu.wiki/Adeos_(Adaptive_Domain_Environment_for_Operating_Systems) (любопытно почитать).
Патчи изготавливаются далеко не под все версии ядра, например для ARM:
Код
[TXT] ipipe-core-4.14.36-arm-1.patch 12-Jun-2018 19:12  587K  
[TXT] ipipe-core-4.4.71-arm-9.patch  03-Oct-2017 12:35  672K  
[TXT] ipipe-core-4.9.51-arm-4.patch  26-Mar-2018 09:16  700K  
[DIR] older/                         12-Jun-2018 19:13    -


2. Собрать новое ядро и установить в системе Linux...

3. Скачать http://electronix.ru/redirect.php?https://gitlab.denx.de/Xenomai/xenomai, собрать из исходников и установить...

4. Писать свои realtime task в Posix-нотации (это новинка в Xenomai, они называют это skin-ы), но компилировать специфичным Makefile:
Код
XENO_DIR = /usr/xenomai
XENO_CONFIG := $(XENO_DIR)/bin/xeno-config
CFLAGS  := `$(XENO_CONFIG) --posix --cflags`
LDFLAGS := `$(XENO_CONFIG) --posix --ldflags`
CC := `$(XENO_CONFIG) --cc`

all: main_posix lb1

main_posix: main_posix.c
        $(CC) -Wall $(CFLAGS) $< $(LDFLAGS) -o $@ -lanalogy -ltrank -lmodechk -lcopperplate
...

И запускать потоки с realtime диспетчированием Linux (естественно, это потребует root):
Код
...
  struct sched_param sparam;
   sparam.sched_priority = 99;
   rc = pthread_create( &thread, NULL, TaskCode, NULL );
   assert( 0 == rc );
   rc = pthread_setschedparam( thread, SCHED_FIFO, &sparam );
...





Цитата(Olej @ Jul 2 2018, 05:54) *
Собирать рабочий образ realtime системы с Xenomai довольно противное занятие,

К счастью, на "попробовать" есть готовые публично доступные образы системы, от одного из голландских университетов, которые они используют в учебном спецкурсе по embedded системам:
- образ SD-карты для Rapsberry Pi: http://electronix.ru/redirect.php?http://www.cs.ru.nl/lab/xenomai/raspberrypi.html
- образ виртуальной машины под VirtualBox: http://electronix.ru/redirect.php?http://www.cs.ru.nl/lab/xenomai/virtualbox.html
И тот, и другой вариант мной проверен на работоспособность и адекватность.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)