Jump to content

    

realtime Linux с Xenomai

Кто использует?

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

 

Начну с вот этого:

How fast is fast enough? Choosing between Xenomai and Linux for real-time applications

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: поделюсь своими знаниями и находками относительно Xenomai.

Share this post


Link to post
Share on other sites
Кто собирал ядро Linux с патчами под Xenomai Cobalt (3.05-3.07)?

Собирать рабочий образ realtime системы с Xenomai довольно противное занятие, и описано здесь - Installing Xenomai 3.x:

 

1. Нужен патч ipipe исходников майнлайнового ядра (с kernel.org), патч проекта .

Берётся здесь - Index of /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    -

Это патчи проекта 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. Скачать Xenomai real-time core, собрать из исходников и установить...

 

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 );
...

 

 

 

 

Собирать рабочий образ realtime системы с Xenomai довольно противное занятие,

К счастью, на "попробовать" есть готовые публично доступные образы системы, от одного из голландских университетов, которые они используют в учебном спецкурсе по embedded системам:

- образ SD-карты для Rapsberry Pi: Raspberry Pi image for the Pi zero,1,2,3 with Xenomai 3.0.5 on Raspbian linux 4.1.y Debian 8 jessie

- образ виртуальной машины под VirtualBox: VirtualBox Images for Xenomai 3.0 and Xenomai 2.4

И тот, и другой вариант мной проверен на работоспособность и адекватность.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this