Страница 14 из 245

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 15:43
Serg
MX_Master писал(а):STM32F4
В STM32F4 легко портируется планировщик из LinuxCNC.
Ещё там-же делал подобие HAL - набор компонентов встроен в прошивку, конфиг в виде текстового файла загружается в отдельную область flash. Исходники не дам - есть коммерческие планы. :)

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 17:15
MX_Master
А я блин, сельский дурачок, всё бесплатно выкладываю :lol1:

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 17:33
Serg
MX_Master писал(а):А я блин, сельский дурачок, всё бесплатно выкладываю :lol1:
Ну я тоже обычно выкладываю те, которые не представляют для меня серьёзного коммерческого интереса, например тот-же LinuxCNC-HID.
Но в частности с теми я ещё сам не определился, может решу ПЛК делать. :)

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 17:39
MX_Master
Кстати, а лицензия LCNC позволяет юзать их код в других закрытых коммерческих проектах?

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 18:19
PKM
Не позволяет

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 19:35
going
MX_Master писал(а): going писал(а):
Вопросом на вопрос!
А как можно отловить, что происходит и каким процессом в этот "нехороший момент" ?? И на какой период времени??


Можно, канеш, в коде детально посмотреть. Но если коротко - сбор статистики, распределение нагрузки между ядрами
Я имел в виду другое. PREEMT-RT подразумевает возможность вытеснения не-RT процесса в момент времени,
когда RT процессу необходимо выполниться за гарантированное время задержки. Например при использовании ресурсов общих для всех задач.
Может получиться так, что процесс с более низким приоритетом и не имеющий механизма вытеснения будет периодически тормозить выполнение
RT процесса с более высоким приоритетом ( инверсия приоритетов ). Надо попробовать отловить это на работающем ядре с RT процессом.
Потом смотреть код. Для этого существуют спец. проги. Читал об этом давненько. Сегодня не могу вспомнить название.

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 19:50
going
А вот и вспомнил!


latencytop - Kernel latency measuring tool

LatencyTOP is a Linux* tool for software developers (both kernel and userspace), aimed at identifying where in the system latency is happening, and what kind of operation/action is causing the latency to happen so that the code can be changed to avoid the worst latency hiccups. A version with graphic interface is available as xlatencytop.

http://www.latencytop.org/ - сайта не существует. Разработка закончилась в 2009г.
https://en.wikipedia.org/wiki/LatencyTOP
http://git.infradead.org/latencytop.git

Yndex перевод:
latencytop-Инструмент измерения задержки ядра

LatencyTOP-это инструмент Linux* для разработчиков программного обеспечения (ядро и пространство пользователя), направленный на определение того, где в системе происходит задержка, и какого рода операция/действие вызывает задержку, чтобы изменить код, чтобы избежать худших икот задержки. Версия с графическим интерфейсом доступна в виде xlatencytop.

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 20:13
arkhnchul
MX_Master писал(а):А чё, разве кто-то на форуме выкладывал исходники какого-ньть ЧПУ контроллера на STM32F4 ?
есть порт grbl под stm32. Я его как-то тыкал палочкой - работает. Чем не контроллер с исходниками?

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 20:16
MX_Master
going, если желаете, можете попробовать отловить. Главное все условия соблюсть. А именно - одно ядро изолировано, на нём запущен один однопоточный userspace процесс, который в режиме "busy waiting" что-нибудь делает. В моём примере с аппаратным таймером, процесс тупо расходует такты проца ожидая возможности вывести в stdout число секунд до завершения процесса. В более свежем примере с таймером и GPIO, этот один процесс ногодрыжит на пинах 3,5,7,8 с частотой 200 КГц.
arkhnchul писал(а):есть порт grbl под stm32
Оставим GRBL его почитателям и любителям :hehehe: Я почитатель LinuxCNC, и когда появляется возможность упаковать его в более мелкий и недорогой компьютер, я не упускаю возможности.

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 20:37
MX_Master
Спустя день после совета Сергея
UAVpilot писал(а):... или отказ от программной генерации шагов.
я вспомнил, что хотел попробовать DMA трансфер в регистры GPIO, так скать, для более аппаратной генерации шагов. В данный момент изучаю этот вопрос. Если способ будет годным, можно будет взять его в качестве альтернативы софт генерации.

Re: LinuxCNC + Orange Pi

Добавлено: 09 ноя 2017, 21:45
arkhnchul
MX_Master писал(а):Оставим GRBL его почитателям и любителям
это было к "никто не делал и ничего нет")

Re: LinuxCNC + Orange Pi

Добавлено: 10 ноя 2017, 05:19
MX_Master
arkhnchul писал(а):
MX_Master писал(а):Оставим GRBL его почитателям и любителям
это было к "никто не делал и ничего нет")
MX_Master писал(а):здесь никто еще полноценных контроллеров на F4 не делал
Где тут написано, что ничего нет?

Если тут на форуме кто-то действительно делал контроллер на STM32F4, а не просто портировал чужой код на посмотреть, давайте ссылки. Для предметности разговора, а также для других людей, которые захотят это повторить. Бонусом - полноценно утрёте мне нос (:

Re: LinuxCNC + Orange Pi

Добавлено: 10 ноя 2017, 10:16
sidor094
Вот мой.Правда не на STM32 ,а на LPC1788.И Cortex F3 ,а не F4 .
https://youtu.be/ORJ2jp85OR8

Re: LinuxCNC + Orange Pi

Добавлено: 10 ноя 2017, 13:23
arkhnchul
ну блин, я же специально сначала уточнял - нужен именно написанный самостоятельно, или любой сойдет.

Re: LinuxCNC + Orange Pi

Добавлено: 10 ноя 2017, 13:54
MX_Master
arkhnchul писал(а):ну блин, я же специально сначала уточнял - нужен именно написанный самостоятельно, или любой сойдет.
теперь уже любой :hehehe:

Я, кстати, свои наработки с STM32F4 оставил на более поздний коммерческий проект. Слишком много программной работы, чтобы просто так её выложить. Зато LinuxCNC на апельсинке - вполне себе бесплатный и по железу бюджетный. Чё-нибудь сделаем с программной генерацией шагов, и можно пользоваться.

Re: LinuxCNC + Orange Pi

Добавлено: 10 ноя 2017, 17:36
sidor094
arkhnchul писал(а):ну блин, я же специально сначала уточнял - нужен именно написанный самостоятельно, или любой сойдет.
Так это и есть написанный самостоятельно.

Re: LinuxCNC + Orange Pi

Добавлено: 10 ноя 2017, 20:26
arkhnchul
это про grbl)

Re: LinuxCNC + Orange Pi

Добавлено: 18 ноя 2017, 18:44
MX_Master
MX_Master писал(а):я вспомнил, что хотел попробовать DMA трансфер в регистры GPIO, так скать, для более аппаратной генерации шагов. В данный момент изучаю этот вопрос. Если способ будет годным, можно будет взять его в качестве альтернативы софт генерации.
Работа с DMA в чипе H3 оказалась не такой уж и простой. К тому же, в мануале отсутствует большой кусок инфы по этой теме. Слишком много времени уйдёт на изучение. Также я пока не понял как тактируется DMA контроллер и можно ли эту частоту просеивать (менять). В STM32 работать с DMA было проще. Вощем, оставлю этот способ в долгом ящике. Быстрее будет новый драйвер софт генерации накатать.

В связи с этим, начал тесты с отдельным от LCNC софт генератором шагов. В этом примере основной цикл пашет на частоте 400 КГц и позволяет генерировать шаги до 200 КГц на каждом из восьми каналов. Точность по времени достигается за счёт аппаратного таймера.

Как только софт генератор будет готов, я накатаю новый HAL драйвер для LinuxCNC. Драйвер будет запускаться уже не в основном цикле, а в сервоцикле. Его основной функцией станет общение между планировщиком LinuxCNC и отдельным софт генератором. Планировщик каждый сервоцикл выдает задание на генерацию, софт генератор отрабатывает. И в следующий сервоцикл сообщает сколько и чего нагенерировал. На основе этих данных планировщик решает, что делать дальше. И так далее. И так далее. По такому же принципу работает связка планировщика со stepgen.

Честно говоря, такой финт с отдельным быстрым софт генератором может работать не только в Orange Pi. Но и на любом другом многоядерном настольном процессоре. Насколько я знаю, драйвер LPT порта позволяет выводить большие частоты.

Re: LinuxCNC + Orange Pi

Добавлено: 18 ноя 2017, 19:21
sidor094
А как связать с основной платой хотите?

Re: LinuxCNC + Orange Pi

Добавлено: 18 ноя 2017, 19:30
MX_Master
sidor094 писал(а):А как связать с основной платой хотите?
отдельный софт генератор находится на отдельном ядре проца всё той же Orange Pi :hehehe: