Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, arm64

Общие вопросы по операционным системам семейства Linux.

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 03 апр 2019, 17:46

Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 03 апр 2019, 19:27

Ты, главное там сильно не настраивайся на хороший результат (: чтобы сильно не расстраиваться
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение UAVpilot » 03 апр 2019, 23:52

MX_Master писал(а):Сергей, как вы считаете, а в ARM чипах, где есть два и более процессоров (rk3399 например). Будут ли они мешать друг другу, если один из них используется только для работы с GPIO и юзает только встроенную SRAM?

SRAM и шина к ней у него общая для всех ядер... Разве что попробовать запустить RT-задачи на одном кластере, чтоб они полностью помещались в L2... Но всё равно остаётся общий доступ к периферии...

going писал(а):Но в новом подходе Philippe Gerum вроде как пытается решить эту проблему.
И ведёт речь о десятых долях микросекунды. На днях попробую это проверить.

Увы, но все подобные потуги в конечном итоге являются попытками "обмануть природу". Я не агитирую за "всё бросить и смириться", я о том, что нужно понимать теоретические пределы этих потуг.
Оно может показывать замечательные результаты, пока вдруг не наткнётся на какой-нибудь цикл DMA, которые длинее RT-периода (сервоцикла в нашем случае) - даже если этот цикл DMA прерывать ради RT, он (цикл) просто никогда не завершится...

Если помечтать, то для "архитектуры" LinuxCNC мне видится такое решение:
1. отдельный процессор со своей памятью и т.п., на котором работает Linux и часть LinuxCNC, которой не требуется RT. Т.е. подойдет то, что ставят на все эти платки, только желательно от 2GB и от 1.5GHz.
2. МК класа stm32f4 или выше со своей Flash и RAM для RT задач - планировщик траектории, кинематика, интерполяция и т.п., или Motion controller другими словами. Возможно и логика nonRT периферии (шпиндель, СОЖ, светофор, и т.п.), если ресурсов хватит.
3. FPGA для HAL-компонентов и прочей логики, тут-же и сами "физические пины" - Эти задачи прям так и просятся в FPGA...
В идеале 2 и 3 на одном чипе (SoC).
В принципе всё это вполне реально в ближайшем будущем. п.1 вы тут активно реализуете в соседней теме, п.2 я уже пробовал - работает. п.3 в принципе реализуемо и будет работать, но мне интересно попробовать сделать что-то вроде компилятора HAL-файлов в "прошивку" для FPGA...
Мне эта тема интересна, останавливает лишь нехватка времени. Вот выгонят на пенсию - займусь. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18105
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4458
Медальки:
Настоящее имя: Сергей

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 04 апр 2019, 08:02

UAVpilot писал(а):В идеале 2 и 3 на одном чипе (SoC).

Вот железо для 1и3, 1и2 в одном чипе я видел, а чтобы 2и3 - не встречал. Возможно, плохо искал.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение UAVpilot » 04 апр 2019, 14:35

А чем тебе "1и3" вместо "2и3" плох? :)
В чистом виде чипы в виде MK класа stm32f4..7 + eFPGA вряд ли будут - нет особого смысла и не те скорости, а вот образцы "1и2и3" уже давно есть, правда пока о коммерческих не слышал.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18105
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4458
Медальки:
Настоящее имя: Сергей

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 04 апр 2019, 14:44

UAVpilot писал(а):А чем тебе "1и3" вместо "2и3" плох?

Я люблю микроконтроллеры (: и не работал с fpga
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 05 апр 2019, 00:08

UAVpilot писал(а):Оно может показывать замечательные результаты, пока вдруг не наткнётся на какой-нибудь
....
Да, обязательно наткнётся.
Тут дело принципа. Хочется разобраться, как внутри ядра linux реалтайм организован.
Анекдот по случаю вспомнил. Старый. Бородатый.

Женщина приходит в ателье. Выкладывает на прилавок рулон красивого ситца и говорит:
- Сшейте мне пожалуйста ночную сорочку 7 метров длиной.
Над ней посмеялись сначала, а потом спрашивают:
- Хорошо сделаем, только скажите почему такая длина? Это неудобно носить.
- Всё просто. У меня муж физик-исследователь. Ему не важен результат. Его интересует путь исследования.
:lolh:
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 05 апр 2019, 07:10

В качестве исследования. Более наглядный результат работы железа даст запуск крохотной bare metal прошивки на, скрытом от Linux ядре проца. Прошивка должна в бесконечном цикле теребить 1 gpio пин.

Подключаешь лог. анализатор к этому пину, начинаешь запись вывода и по всякому нагружаешь linux. Неважно с каким ядром.

Если в выводе пина не будет никаких пауз (просто ~2.5МГц меандр), то чип подходит для дальнейших экспериментов (:
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 05 апр 2019, 20:58

MX_Master писал(а):Если в выводе пина не будет никаких пауз (просто ~2.5МГц меандр), то чип подходит для дальнейших экспериментов (:

А почему 2,5 МГц? Из каких соображений цифра?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 05 апр 2019, 21:23

going писал(а):А почему 2,5 МГц? Из каких соображений цифра?

Опытным путём получена на проце H3. Простой программный ногодрыг без DMA. Причём, это значение одно и то же, и для основного проца (1,2 ГГц), и для сопроцессора (450 МГц). Значение плавает от 2,5 МГц до 2,7 МГц. На основном чипе на 3-ядрах при этом работал linux, а на изолированном только ногодрыг (+ системные процессы linux).

viewtopic.php?f=41&t=16788&p=383768#p383768

Чтобы получить что-то быстрее, нужны уже аппаратные средства.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 13 апр 2019, 13:18

MX_Master писал(а):Причём, это значение одно и то же, и для основного проца (1,2 ГГц), и для сопроцессора (450 МГц). Значение плавает от 2,5 МГц до 2,7 МГц.

Михаил, а ты не задавался вопросом, почему значения очень близкие и там и там? Основной проц явно может быстее.
И сопроцессор с 450 МГц может выдать явно больше?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 13 апр 2019, 13:51

Канеш, могут. Но это будет уже неконтролируемый ногодрыг без подсчёта. А нам тут в ЧПУ просто позарез нужно знать, сколько надёргано (:
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 13 апр 2019, 14:07

Научил linuxcnc собираться в пакеты *.deb для ОС bionic (Ubuntu 18.04.x). Нативная сборка в chroot.
И первое, что заметил, это нестыковка версий компиляторов.
В armbian ядро собирается кросскомпиляцией (gcc 7.2) - в системе (gcc 7.3) и т.д..
Придётся учить ядро собираться в chroot окружении в стиле Ubuntu, как и все последующие пакеты.
Но это уже будет отличаться от armbian.

Видится два варианта.
1) Отдать необходимые изменения непосредственно команде armbian.
Они вроде бы начали принимать мои исправления.
2) Поступить, как давно предлагал Михаил (MX_Master), переделать форк armbian, и продвигать его самостоятельно.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 13 апр 2019, 14:17

MX_Master писал(а):Канеш, могут.

Тогда покажи исходник этого ногодрыга. Я думал, там простой цикл записи в порт по очереди высокого - низкого уровней.
Честно говоря, меня больше интересует запись в порт по таймеру.
Дёргать пином в нужный момент времени, который мы вычислили.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master » 13 апр 2019, 14:51

Чё там показывать (: обычный цикл, в котором одна переменная увеличивается на 1 и пишется константа 32 бита в порт, всё

В прошивке сопроцессора (H3) я юзаю системный таймер и дёргаю пины только, когда надо. Но при таком подходе все накладные расходы сводят макс. скорость ногодрыга к 200-300 КГц.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4399
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2116
Медальки:
Настоящее имя: Михаил

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going » 13 апр 2019, 15:47

Значи, я всё правильно понял.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 422
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 120

Пред.

Вернуться в Прочие вопросы Linux

Кто сейчас на конференции

Зарегистрированные пользователи: ab-rams, aladdin2015, Anton_Dmitrievich, Bing [Bot], Bioraptor, bistrorez, Chatter, CNCCLUB, dima138, Dimka, dvina, ESP, Exabot [Bot], Gestap, Google [Bot], Ksedon, lkbyysq, MGG, mikehv, mycnc, Nickoperator, nik0954, niksooon, nkp, NKS, Pavelchr, PavelTch, Гагарин, roct, Sagoth, Samodelkin 88, stiks, titanik71, valko, xenon-alien, Yandex [bot]

Reputation System ©'