LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

MX_Master, особенно понравилось крутить энкодер :)
Остался такой вопрос: после прерывания выполнения демо-программы диодики еще догоняют начавшийся цикл, и не возвращаются в исходное состояние. Это так задумано или это пофиг? Ибо диодики, конечно, пофиг, но если в таком состоянии будут оставаться уже рабочие пины, то как-то это ..... незнаю, подозрительно :) Можно как-то перед запуском запоминать состояние и при прерывании выполнения возвращать в исходное (которое было до запуска программы)? Ну то есть не демо, а той которая уже будет работать в связке с MK/LCNC.
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

svb писал(а):Остался такой вопрос: после прерывания выполнения демо-программы диодики еще догоняют начавшийся цикл, и не возвращаются в исходное состояние. Это так задумано или это пофиг?
Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки. В этом примере, кстати, начальное состояние пинов никак не запоминается и, соответственно, не восстанавливается. Но ты всегда можешь это сделать самостоятельно с помощью GPIO функций.
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

MX_Master писал(а):
svb писал(а):Остался такой вопрос: после прерывания выполнения демо-программы диодики еще догоняют начавшийся цикл, и не возвращаются в исходное состояние. Это так задумано или это пофиг?
Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки. В этом примере, кстати, начальное состояние пинов никак не запоминается и, соответственно, не восстанавливается. Но ты всегда можешь это сделать самостоятельно с помощью GPIO функций.
То есть это особенность (данная конкретная реализация) демо-программы. Тогда вопрос переозвучу так: в LCNC можно будет как-то запомнить исходное состояние пинов, чтобы потом вернуть обратно (после завершения задачи) или в иное предопределенное состояние. Будет предусмотрен какой-то механизм?
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Если я правильно помню про LPT драйвер и stepgen в LinuxCNC, там при выходе из LinuxCNC пины не возвращаются в исходное состояние в явном виде.

В нашем драйвере можно сделать всё, что угодно, даже полный возвёрт всего и вся взад.
nevkon
Почётный участник
Почётный участник
Сообщения: 2471
Зарегистрирован: 17 июл 2015, 10:25
Репутация: 310
Настоящее имя: Константин
Откуда: Балаково (Саратовская обл.)
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение nevkon »

MX_Master писал(а):Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки.
А это на мой взгляд непорядок. Что произойдет если вдруг будет нажата кнопка e-stop? Будет отрабатываться до последнего? Или все-же есть механизм отмены очереди/остановки процесса?
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

nevkon писал(а):
MX_Master писал(а):Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки.
А это на мой взгляд непорядок. Что произойдет если вдруг будет нажата кнопка e-stop? Будет отрабатываться до последнего? Или все-же есть механизм отмены очереди/остановки процесса?
Я так понял, что это просто особенность демки. Ничего кроме демки не демонстрирует. Просто показывает, что сопр работает, поэтому демка упрощена до минимума.

То есть можно дописать внутрь демки обработку сигналов, но это надо уже серъезно заморачиваться, а цель демки - продемонстрировать работу прошивки сопра.
Последний раз редактировалось svb 23 июл 2018, 20:07, всего редактировалось 1 раз.
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

pulsgen_task_abort (:
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

Вопрос к знатокам: чем отличается бинарник, скомпиленный GCC 4.9.6 от бинарника, скомпиленного GCC 7.2.1 применительно к модулям ядра?
Может ли из-за этого вылезать ошибка, озвученная мной ранее?
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

У меня такая ошибка вылезла, когда я пытался запустить программку, собранную под другую архитектуру. Я запускал бинарник, собранный для настольной AMD64/EM64T на апельсине, где armhf.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

svb писал(а):Вопрос к знатокам: чем отличается бинарник, скомпиленный GCC 4.9.6 от бинарника, скомпиленного GCC 7.2.1 применительно к модулям ядра?
Ничем, кроме строчки с сигнатурой gcc. Но в модулях этой сигнатуры нет.
svb писал(а):Может ли из-за этого вылезать ошибка, озвученная мной ранее?
Нет. Чаще всего это бывает из-за несоответствя версий ядра и модуля. Внутри бинарника модуля должна быть строчка, начинающаяся с "vermagic=", у твоего модуля они такая-же как и у тех, что загружаются?
Ещё можно попробовать забить на соответствие и вычитать, что у modprobe есть опциия --force, но тогда ССЗБ...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

Я почему вдруг внезапно такой вопрос задал? В стародавние времена, когда самыми распространенными версиями GCC были 2.8 и 2.9, вышла версия 3.0. И доп. модули ядра, собранные этой версией, при условии что само ядро и модули, собираемые в процессе сборки ядра, были собраны 2.8/2.9, были несовместимы с форматом существующих. При том что собиралось все на одном и том же компе.
И когда для сборки всей системы (типа LFS) уже вовсю пользовали 3.3, ядро продолжали собирать на 2.9
Вот я и подумал - не это ли причина....
Опять же - в системе сборки Армбиан используется _для_ядра_ 7.2.1, а в систему ставится 4.8/4.9

а так качаются на кой то 4.8, 4.9.4, 5.5.0, 6.4.1, 7.2.1 (это все gnueabihf)
Платы: OPI-PC(умерла), OPI-PC2
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

кажется дело сдвинулось с мертвой точки.... Сейчас еще пару пересборок сделаю, и образ в тестирование запущу.
Платы: OPI-PC(умерла), OPI-PC2
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

svb писал(а):кажется дело сдвинулось с мертвой точки.... Сейчас еще пару пересборок сделаю, и образ в тестирование запущу.
Модуль ядра загрузился... Либы (blobs) зацепляться не хотят :(
Платы: OPI-PC(умерла), OPI-PC2
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

svb писал(а):Модуль ядра загрузился...
Сделал автоматическую сборку модуля ядра. Для H5 и для H3.
Драйвер грузится и Mali определяется в системе.
Единственное НО!
На свежей версии Armbian! На той что в нашей репе - для H3 не собирается.
Осталось победить Blobs
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

svb писал(а):На свежей версии Armbian! На той что в нашей репе - для H3 не собирается.
А у нас там не свежая версия (: наша копия на 333 правки отстаёт от оригинала
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

svb писал(а):На свежей версии Armbian! На той что в нашей репе - для H3 не собирается.
Armbian build это просто GIT попробуй так:
http://www.cnc-club.ru/forum/viewtopic. ... 62#p451548
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Допилил первую версию linux программки для полноценной работы с сопроцессором. Это уже не просто пример, это полноценная программа, которая позволяет управлять всеми функциями сопроцессора по вашему желанию. На борту есть справка по всем функциями и примеры использования.

https://github.com/orangecnc/h3_arisc_api

Апельсина сейчас нет под руками, так что бинарник выдать не могу. Но, если апельсин подключен к инету, это не проблема:

Код: Выделить всё

git clone https://github.com/orangecnc/h3_arisc_api.git
cd h3_arisc_api
make all
Примеры запуска:

Код: Выделить всё

sudo ./arisc
sudo ./arisc help
sudo ./arisc examples
sudo ./arisc "gpio_pin_setup_for_output(PA,15)"
sudo ./arisc "gpio_pin_clear(PA,15)"
sudo ./arisc "gpio_pin_set(PA,15)" "gpio_pin_get(PA,15)"
# ...
Вызов функций нужно брать в двойные кавычки, чтобы не ругался bash. Как видно из последней строки, можно за один запуск программы передавать несколько аргументов.

Если при запуске не указывать никаких аргументов, то программа будет работать в режиме STDIN/STDOUT. В этом режиме каждая новая строка принимается как команда, после которой будет выводится ответ. Выйти из этого режима можно командой quit (или exit, или q).
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

MX_Master писал(а):Вызов функций нужно брать в двойные кавычки, чтобы не ругался bash. Как видно из последней строки, можно за один запуск программы передавать несколько аргументов.
Внутрь двойных кавычек shell "заглядывает" и может чего-нибудь подменить, а вот внутрь одинарных не заглядывает...

Код: Выделить всё

$ VAR=value
$ echo "$VAR"
value
$ echo '$VAR'
$VAR
$ 
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Дык, это ж хорошо (:

Код: Выделить всё

PORT=PA
PIN=15
sudo ./arisc "gpio_pin_set($PORT, $PIN)"
sudo ./arisc "gpio_pin_clear($PORT, $PIN)"
sudo ./arisc "gpio_pin_set($PORT, $PIN)"
sudo ./arisc "gpio_pin_clear($PORT, $PIN)"
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Maxekb77 »

Пришла апельсинка сегодня, залил образ вроде как все запустилось. завтра к моторам буду подключать.
Ответить

Вернуться в «Электроника»