Страница 64 из 245
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 17:26
svb
MX_Master, особенно понравилось крутить энкодер

Остался такой вопрос: после прерывания выполнения демо-программы диодики еще догоняют начавшийся цикл, и не возвращаются в исходное состояние. Это так задумано или это пофиг? Ибо диодики, конечно, пофиг, но если в таком состоянии будут оставаться уже рабочие пины, то как-то это ..... незнаю, подозрительно

Можно как-то перед запуском запоминать состояние и при прерывании выполнения возвращать в исходное (которое было до запуска программы)? Ну то есть не демо, а той которая уже будет работать в связке с MK/LCNC.
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 18:14
MX_Master
svb писал(а):Остался такой вопрос: после прерывания выполнения демо-программы диодики еще догоняют начавшийся цикл, и не возвращаются в исходное состояние. Это так задумано или это пофиг?
Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки. В этом примере, кстати, начальное состояние пинов никак не запоминается и, соответственно, не восстанавливается. Но ты всегда можешь это сделать самостоятельно с помощью
GPIO функций.
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 18:29
svb
MX_Master писал(а):svb писал(а):Остался такой вопрос: после прерывания выполнения демо-программы диодики еще догоняют начавшийся цикл, и не возвращаются в исходное состояние. Это так задумано или это пофиг?
Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки. В этом примере, кстати, начальное состояние пинов никак не запоминается и, соответственно, не восстанавливается. Но ты всегда можешь это сделать самостоятельно с помощью
GPIO функций.
То есть это особенность (данная конкретная реализация) демо-программы. Тогда вопрос переозвучу так: в LCNC можно будет как-то запомнить исходное состояние пинов, чтобы потом вернуть обратно (после завершения задачи) или в иное предопределенное состояние. Будет предусмотрен какой-то механизм?
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 19:29
MX_Master
Если я правильно помню про LPT драйвер и stepgen в LinuxCNC, там при выходе из LinuxCNC пины не возвращаются в исходное состояние в явном виде.
В нашем драйвере можно сделать всё, что угодно, даже полный возвёрт всего и вся взад.
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 19:54
nevkon
MX_Master писал(а):Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки.
А это на мой взгляд непорядок. Что произойдет если вдруг будет нажата кнопка e-stop? Будет отрабатываться до последнего? Или все-же есть механизм отмены очереди/остановки процесса?
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 20:05
svb
nevkon писал(а):MX_Master писал(а):Диодики продолжают, потому что сопроцессору был выдан приказ ещё до убиения процесса тестовой программки.
А это на мой взгляд непорядок. Что произойдет если вдруг будет нажата кнопка e-stop? Будет отрабатываться до последнего? Или все-же есть механизм отмены очереди/остановки процесса?
Я так понял, что это просто особенность демки. Ничего кроме демки не демонстрирует. Просто показывает, что сопр работает, поэтому демка упрощена до минимума.
То есть можно дописать внутрь демки обработку сигналов, но это надо уже серъезно заморачиваться, а цель демки - продемонстрировать работу прошивки сопра.
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 20:06
MX_Master
pulsgen_task_abort (:
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 21:02
svb
Вопрос к знатокам: чем отличается бинарник, скомпиленный GCC 4.9.6 от бинарника, скомпиленного GCC 7.2.1 применительно к модулям ядра?
Может ли из-за этого вылезать
ошибка, озвученная мной ранее?
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 21:13
MX_Master
У меня такая ошибка вылезла, когда я пытался запустить программку, собранную под другую архитектуру. Я запускал бинарник, собранный для настольной AMD64/EM64T на апельсине, где armhf.
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 21:24
Serg
svb писал(а):Вопрос к знатокам: чем отличается бинарник, скомпиленный GCC 4.9.6 от бинарника, скомпиленного GCC 7.2.1 применительно к модулям ядра?
Ничем, кроме строчки с сигнатурой gcc. Но в модулях этой сигнатуры нет.
svb писал(а):Может ли из-за этого вылезать ошибка, озвученная мной ранее?
Нет. Чаще всего это бывает из-за несоответствя версий ядра и модуля. Внутри бинарника модуля должна быть строчка, начинающаяся с "vermagic=", у твоего модуля они такая-же как и у тех, что загружаются?
Ещё можно попробовать забить на соответствие и вычитать, что у modprobe есть опциия --force, но тогда ССЗБ...
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 21:39
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)
Re: LinuxCNC + Orange Pi
Добавлено: 23 июл 2018, 22:37
svb
кажется дело сдвинулось с мертвой точки.... Сейчас еще пару пересборок сделаю, и образ в тестирование запущу.
Re: LinuxCNC + Orange Pi
Добавлено: 24 июл 2018, 01:23
svb
svb писал(а):кажется дело сдвинулось с мертвой точки.... Сейчас еще пару пересборок сделаю, и образ в тестирование запущу.
Модуль ядра загрузился... Либы (blobs) зацепляться не хотят

Re: LinuxCNC + Orange Pi
Добавлено: 24 июл 2018, 02:19
svb
svb писал(а):Модуль ядра загрузился...
Сделал автоматическую сборку модуля ядра. Для H5 и для H3.
Драйвер грузится и Mali определяется в системе.
Единственное НО!
На свежей версии Armbian! На той что в нашей репе - для H3 не собирается.
Осталось победить Blobs
Re: LinuxCNC + Orange Pi
Добавлено: 24 июл 2018, 07:36
MX_Master
svb писал(а):На свежей версии Armbian! На той что в нашей репе - для H3 не собирается.
А у нас там не свежая версия (: наша копия на 333 правки отстаёт от оригинала
Re: LinuxCNC + Orange Pi
Добавлено: 24 июл 2018, 12:23
going
svb писал(а):На свежей версии Armbian! На той что в нашей репе - для H3 не собирается.
Armbian build это просто GIT попробуй так:
http://www.cnc-club.ru/forum/viewtopic. ... 62#p451548
Re: LinuxCNC + Orange Pi
Добавлено: 25 июл 2018, 15:50
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).
Re: LinuxCNC + Orange Pi
Добавлено: 25 июл 2018, 16:34
Serg
MX_Master писал(а):Вызов функций нужно брать в двойные кавычки, чтобы не ругался bash. Как видно из последней строки, можно за один запуск программы передавать несколько аргументов.
Внутрь двойных кавычек shell "заглядывает" и может чего-нибудь подменить, а вот внутрь одинарных не заглядывает...
Код: Выделить всё
$ VAR=value
$ echo "$VAR"
value
$ echo '$VAR'
$VAR
$
Re: LinuxCNC + Orange Pi
Добавлено: 25 июл 2018, 16:57
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)"
Re: LinuxCNC + Orange Pi
Добавлено: 25 июл 2018, 17:47
Maxekb77
Пришла апельсинка сегодня, залил образ вроде как все запустилось. завтра к моторам буду подключать.