Avrdude для Linux
Re: Avrdude для Linux
ppp, Спасибо за файл - переделал прогу, теперь все в хранится в xml
https://gitflic.ru/project/athosnm/avrprogrammer
https://gitflic.ru/project/athosnm/avrprogrammer
Re: Avrdude для Linux
1. санитайзинг (убираем лишние какаши..., зачеркнуто, сущности)
2. qtХpas - библиотеки
про это я уже писал:
как пример, выхлоп/запуск программы, на системе, где нет установленной "подобной" библиотеки:
как говориться, если не прислушиваетесь, то... разбирайтесь сами
ключевые слова:

Код: Выделить всё
cd LavrProg/languages
rm -fr *Gtk2.ru.po *Qt5.ru.po *Qt6.ru.po
ln -sf lavrprog.ru.po lavrprogGtk2.ru.po
ln -sf lavrprog.ru.po lavrprogQt5.ru.po
ln -sf lavrprog.ru.po lavrprogQt6.ru.po
cd -2. qtХpas - библиотеки
про это я уже писал:
должна быть установлена библиотека-прослойка qt4pas/qt5pas/qt6pas
как пример, выхлоп/запуск программы, на системе, где нет установленной "подобной" библиотеки:
Код: Выделить всё
$ ./lavrprogQt6
./lavrprogQt6: error while loading shared libraries: libQt6Pas.so.6: cannot open shared object file: No such file or directoryкак говориться, если не прислушиваетесь, то... разбирайтесь сами
ключевые слова:
Код: Выделить всё
- export
- shell wrapper
- PREFFIX
- LD_LIBRARY_PATH
- linux sysadmin book's & etc...
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...
-
Вячеслав М.
- Нашел транзистор. Понюхал.
- Сообщения: 174
- Зарегистрирован: Пн янв 13, 2025 15:24:02
Re: Avrdude для Linux
Очень интересно, была такая проблема при переходе на LINUX, но потом просто виртуальную машину запустил с XP, и всё, старый добрый программатор заработал )) А что со SQLite?, вроде нормальная система, сам ею пользуюсь, попробовал ваш файл загрузить - нормально всё развернуло DB Browser _ом, перечень микросхем таблица и таблица программаторов.
Re: Avrdude для Linux
Странные вы. Дудка работает в линуксе в терминале - as is, без нужды в графических обёртках.
Re: Avrdude для Linux
sunjob, 1.Если вы не пользуетесь переводом - это не значит, что он никому не нужен
2.Про библиотеки-прослойки сказано в ReadMe проекта
Огонёк, а вам выкручивают руки? Заставляя пользоваться GUI?
2.Про библиотеки-прослойки сказано в ReadMe проекта
Огонёк, а вам выкручивают руки? Заставляя пользоваться GUI?

Re: Avrdude для Linux
дудка везде из командной строки работает) под виндой из батника запускаю)
Re: Avrdude для Linux
А что со SQLite?
C SQLite все так, просто отпала необходимость в установке библиотеки для ее работы и размер
бинарника заметно уменьшился
Re: Avrdude для Linux
1.Если вы не пользуетесь переводом - это не значит, что он никому не нужен
тоже читать не любите?!
- имеется в наличие 4е одинаковых файла
- спрашивается: а нахрена?! правильно, не дело это!
- удаляются все "ненужные", оставляется один и делаются ссылки на него
- когда будете дорабатывать то достаточно заменить 1 файл
не за что!

Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...
Re: Avrdude для Linux
sunjob, Как бы вы не пыжились, а Била Гейтса из вас не получилось... увы...
Тот кто будет пользоваться сам вычистит лишнее 2 перевода и 2 бинарника,
ведь ему нужен один, а засирать "какашками" в виде ссылок это лучше?
Тот кто будет пользоваться сам вычистит лишнее 2 перевода и 2 бинарника,
ведь ему нужен один, а засирать "какашками" в виде ссылок это лучше?
Re: Avrdude для Linux
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...
Re: Avrdude для Linux
[uquote="0beron",url="/forum/viewtopic.php?p=4681846#p4681846"]увы
да вы умеет заводить друзей[/uquote]Не хамили-бы сами - неполучили-бы и ответ в таком-же духе. Я прислушиваюсь к конструктивным и полезным предложениям, а когда
человек занимается самопиаром - смотрите как я хорошо знаю команды Linux и FreePascal, то это не ко мне. да и форум не о том...
Re: Avrdude для Linux
хамил ... самопиаром ... команды Linux и FreePascal ...
ну, дерзайте... дерзкий молодой человек!
p.s. не грешно быть неучем, грешно не учиться!
в планах даже не было выставляться или выделываться, если обидел чем - ну, соориии, бывает всякое!
я там везде смайликов наставил, ни чего плохого не имел...
а то как в анекдоте - пииива неетууу!!!
удачи! :о) ... ( это тоже смайлик с носиком)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...
Re: Avrdude для Linux
Молодой постарше вас будет - ему 65, а называть "какашками" чужой труд это не хамство?
Если вы имеете другое мнение - учитесь говорить "корректнее" ибо "не грешно быть неучем, грешно не учиться!"
Я видел ваши посты и сначала они были по делу (о программе), но кто вам сказал, что пользователю будет легче от ссылок и оберток?
По моему - куда-уж проще: выкачал архив, распаковал и убрал 2 перевода и 2 бинарника. Вы, конечно, считаете по-другому,
это ваше право.
Извинения приняты
Если вы имеете другое мнение - учитесь говорить "корректнее" ибо "не грешно быть неучем, грешно не учиться!"
Я видел ваши посты и сначала они были по делу (о программе), но кто вам сказал, что пользователю будет легче от ссылок и оберток?
По моему - куда-уж проще: выкачал архив, распаковал и убрал 2 перевода и 2 бинарника. Вы, конечно, считаете по-другому,
это ваше право.
Извинения приняты
Re: Avrdude для Linux
называть "какашками"
мы-же на кото-форуме, и тут "какаши" имеют значимость "святого смысла"!!!
про "остальное положение" отпишусь, если вы не против, когда будет время, шибко дОлгая и пОлная это тема (как раставлять миски, коробки, царапки и пр. атрибуты нашей кото-жизни)

Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...
Re: Avrdude для Linux
день добрый, усатые сородичи! :о)
какаши - это отсылка к понятию "cанитайзер" (ну и на котофоруме - имеют значимость "святого смысла")
собственно, я "свой код" при внутреннем использовании ни как, кроме как какаши и не называю!
+
далее, некоторое "видение" юникс-вей "методы" установки программ.
в общем, это "плюс/минус", но везде примерно так.
для установки программ используются каталоги
1. "системный" каталог:
2. каталог "пользователя" в корневой системе:
3. каталог "пользователя" в домашнем каталоге (ручной вариант):
при установке из пакета (администратором) - установка возможна в 1 и 2й (пункт)
зовисит от дистрибьютива/линукса/ментейнера и еще чего либо :о)
установка (пользователем) подразумевает 3й пункт
+
весь "замес", в нашем случае, из-за того, что мы используем "внешнюю" библиотеку lib_qtX_pas.
при использовании "правильных" методов установки - неважно куда мы установим lib-qt-pas-библиотеку
мы можем "случайно" переписать сверху "уже установленную" и ... далее ждем сюрпризов.
для разруливания данной ситуации "обычно" используют установку в каталог п.2 (каталог пользователя в корневой системе).
но и это "не всегда" спасает от "косяков и сюрпризов", например, если уже установлена в системе к.л. софтина, использующая lib_qt_pas-библиотеку, какой-то своей версии/или еще чего, собранная со своими "особенностями" (а этого в линухе просто завались)...
далее углубляться не будем, надеюсь, смысл понятен?! :о)
в данном случае, единственно верный/безопасный и трушный метод - это установка в т.н. "кастомный" каталог, т.е.
- установить пакет в "свой собственный каталог"
- настроить окружение так, что-бы использовать именно этот каталог для работы (втч первичный поиск бинарников/библиотек, что-бы подключалась именно "наша" lib-qt-pas библиотека итд)
такой метод используется в mac-osx: каталог name.app - со всем необходимым "барахлом": бинарники, библиотеки, пр.файлы
итак, будем использовать один из 2х каталогов:
opt-каталог хорош для тех софтин, кот. используются "как есть", без "шаловливых ручек разработчика", типа gimp/firefox итд
в данном случае мы/вы рассматриваем программу как непосредственно dev/tool/инструментарий, с кот. придется сталкиваться непосредственно, что-то дорихтовывать в "ini-настроках"/shell-скриптах или просто, "разраб" будет дорабатывать/отлаживать программу... короче, лучше иметь "этот каталог" под рукой, поэтому выбираем каталог:
итак
- копируем все файлы в данный каталог, если сильно надо, раскидываем по "своим" под-каталогам (bin/lib/txt/lang)
скрипт-обертка для запуска (помещается в стандартный ~/bin)
естественно, не забываем добавить (если уже не сделано "по умолчанию") в файле/скрипте/настройки
(зовисит от текущих "хотелок" дистрибьютива, скрин с таблицей)
создаем *desktop-файл и ву-а-ля!
доп:
очень давно пытался использовать что-то типа:
несколько раз натыкался на какие-то траблы, так и повелось, что не использую "."
ИТОГО:
- мы устанавливаем приложение в тот каталог, кот. мы определим сами (кастом)
- не мусорим систему "инсталляторами"
- не перезаписываем уже установленные библиотеки
- не награмождаем окружение/environment наворотами, все настройки, сделанные в запускающем shell-скрипте будут действительны только внутри этого скрипта (ну и в вызывающих процессах)
- все в одном каталоге (все удобно/под рукой для разработки/доработки)
ну и таким образом, мы можем "настраивать" приложение "как нам заблагоразумится", в разумных пределах :о)
отсебятины еще немного:
- замечено, что gtk-версии приложений (fpc/lazarus) - глючат значительно больше чем qt
- из qt-версий глючит больше qt4
- и все gui/toolkit-ы ведут себя немного "по своему" (как-бы не хотелось обратного)
поэтому (лично я) собираю все доступные gui и использую их в зов-ти от "обстоятельств".
в частности gtk2/qt4/qt5 (поэтому я предлогал оставить один единственный lang-файл, уже предлагать отвязать имя-файла от имени-бинарника я не стал :о)

спорить не буду и, надеюсь, смысл будет понятен. делюсь видением, если кому-то пригодится - то и замечательно.
на этом, всем удачи ну... и вообще!
p.s.
шкрябал по "ходу дела" и "черпал" из башки, поэтому могут быть неточности/опечатки, если что, тыкайте, испЫравим, пока есть "время" на редактирование

какаши - это отсылка к понятию "cанитайзер" (ну и на котофоруме - имеют значимость "святого смысла")
собственно, я "свой код" при внутреннем использовании ни как, кроме как какаши и не называю!
+
далее, некоторое "видение" юникс-вей "методы" установки программ.
в общем, это "плюс/минус", но везде примерно так.
для установки программ используются каталоги
1. "системный" каталог:
Код: Выделить всё
/etc - системные настройки
/bin
/lib
/opt - альтернативный каталог для "блоб/все в одном" установок2. каталог "пользователя" в корневой системе:
Код: Выделить всё
/usr/bin
/usr/lib
/usr/share - настройки/конфиги и прочее "нечто"3. каталог "пользователя" в домашнем каталоге (ручной вариант):
Код: Выделить всё
~/ - дом.каталог
~/bin - бинарники и прочее
~/opt - альтернативный каталог для "блоб/все в одном" установок
~/.config - настройки/конфиги и прочеепри установке из пакета (администратором) - установка возможна в 1 и 2й (пункт)
зовисит от дистрибьютива/линукса/ментейнера и еще чего либо :о)
установка (пользователем) подразумевает 3й пункт
+
весь "замес", в нашем случае, из-за того, что мы используем "внешнюю" библиотеку lib_qtX_pas.
при использовании "правильных" методов установки - неважно куда мы установим lib-qt-pas-библиотеку
Код: Выделить всё
/lib
/usr/libмы можем "случайно" переписать сверху "уже установленную" и ... далее ждем сюрпризов.
для разруливания данной ситуации "обычно" используют установку в каталог п.2 (каталог пользователя в корневой системе).
но и это "не всегда" спасает от "косяков и сюрпризов", например, если уже установлена в системе к.л. софтина, использующая lib_qt_pas-библиотеку, какой-то своей версии/или еще чего, собранная со своими "особенностями" (а этого в линухе просто завались)...
далее углубляться не будем, надеюсь, смысл понятен?! :о)
в данном случае, единственно верный/безопасный и трушный метод - это установка в т.н. "кастомный" каталог, т.е.
- установить пакет в "свой собственный каталог"
- настроить окружение так, что-бы использовать именно этот каталог для работы (втч первичный поиск бинарников/библиотек, что-бы подключалась именно "наша" lib-qt-pas библиотека итд)
такой метод используется в mac-osx: каталог name.app - со всем необходимым "барахлом": бинарники, библиотеки, пр.файлы
итак, будем использовать один из 2х каталогов:
Код: Выделить всё
~/opt/app-name
~/bin/app-nameopt-каталог хорош для тех софтин, кот. используются "как есть", без "шаловливых ручек разработчика", типа gimp/firefox итд
в данном случае мы/вы рассматриваем программу как непосредственно dev/tool/инструментарий, с кот. придется сталкиваться непосредственно, что-то дорихтовывать в "ini-настроках"/shell-скриптах или просто, "разраб" будет дорабатывать/отлаживать программу... короче, лучше иметь "этот каталог" под рукой, поэтому выбираем каталог:
Код: Выделить всё
~/bin/app-nameитак
- копируем все файлы в данный каталог, если сильно надо, раскидываем по "своим" под-каталогам (bin/lib/txt/lang)
Код: Выделить всё
~/bin/app-name/bin
~/bin/app-name/lib
~/bin/app-name/lang
~/bin/app-name/etcскрипт-обертка для запуска (помещается в стандартный ~/bin)
~/bin/app-name.sh
Код: Выделить всё
#!/bin/bash
P=~/bin/app-name/
BIN=$P/bin
LIB=$P/lib
LNG=$P/lng
export PATH="$BIN:${PATH}"
export LD_LIBRARY_PATH="${LIB}:${LD_LIBRARY_PATH}"
#
# etc set/cmd env... :o)
#
$BIN/app-name "$@"
естественно, не забываем добавить (если уже не сделано "по умолчанию") в файле/скрипте/настройки
(зовисит от текущих "хотелок" дистрибьютива, скрин с таблицей)
Код: Выделить всё
export PATH=~/bin:${PATH}
создаем *desktop-файл и ву-а-ля!
доп:
очень давно пытался использовать что-то типа:
Код: Выделить всё
LD_LIBRARY_PATH="./:${LD_LIBRARY_PATH}"несколько раз натыкался на какие-то траблы, так и повелось, что не использую "."
ИТОГО:
- мы устанавливаем приложение в тот каталог, кот. мы определим сами (кастом)
- не мусорим систему "инсталляторами"
- не перезаписываем уже установленные библиотеки
- не награмождаем окружение/environment наворотами, все настройки, сделанные в запускающем shell-скрипте будут действительны только внутри этого скрипта (ну и в вызывающих процессах)
- все в одном каталоге (все удобно/под рукой для разработки/доработки)
ну и таким образом, мы можем "настраивать" приложение "как нам заблагоразумится", в разумных пределах :о)
отсебятины еще немного:
- замечено, что gtk-версии приложений (fpc/lazarus) - глючат значительно больше чем qt
- из qt-версий глючит больше qt4
- и все gui/toolkit-ы ведут себя немного "по своему" (как-бы не хотелось обратного)
поэтому (лично я) собираю все доступные gui и использую их в зов-ти от "обстоятельств".
в частности gtk2/qt4/qt5 (поэтому я предлогал оставить один единственный lang-файл, уже предлагать отвязать имя-файла от имени-бинарника я не стал :о)
Спойлер
как разруливаю версии gtk2/qt4/qt5 - спрашивайте, если надо, могу описать в след. раз!
спорить не буду и, надеюсь, смысл будет понятен. делюсь видением, если кому-то пригодится - то и замечательно.
на этом, всем удачи ну... и вообще!
p.s.
шкрябал по "ходу дела" и "черпал" из башки, поэтому могут быть неточности/опечатки, если что, тыкайте, испЫравим, пока есть "время" на редактирование
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...
подрихтовал немножко под себя
день добрый!
подрихтовал немножечко под себя.
URL
изменения/доработки
коротко, как-то так 
p.s. первый раз выложил, но убрал, были немного ... с мышами!
подрихтовал немножечко под себя.
URL
изменения/доработки
Спойлер
Код: Выделить всё
///////////////////////////////////////////////////////////////////////////////
исходные косяки/непонятки/недоработки
///////////////////////////////////////////////////////////////////////////////
1. /dev/-устройство в линуксе
в линкусе arduino цепляется по умолчанию к
/dev/ttyUSBx - переходник USB-to-COM (дешевые модели)
/dev/ttyACMx - натуральная arduino (фирменный дизайн с atmel-8 чипом на порту)
все фирменные программаторы/отладчики (в данном случае) - цепляются к своим usb/hide портам.
avrdude - в курсе и знает куда цепляться
т.е. нормально работает, если указать в поле порт: -P usb
2. поля ввода/кнопки выбора avrdude-bin/avrdude-conf
- что-то тупит (разбираться не стал, сделал по своему)
- не воспринимает тильду '~'
--> починил
3. кнопка Read (cells calibration)
нет выхлопа в "терминал"
--> починил
4. параметр '-u' - wrong argument
--> заменил на [-v|--verbose] Verbose output
///////////////////////////////////////////////////////////////////////////////
TO DO - туду или нетуду :о)
///////////////////////////////////////////////////////////////////////////////
0. ОК - общий рефакторинг кода :о)
1. OK
кнопка Abort - аварийный сброс/зависание
2. OK
если fuse читаются как нули (arduino/usb-port, все мои версии) - происходит исключение в системной библиотеке
сделал/отследил/установил RET_CODE
3. OK
добавил в Atmega328PB (копия 328-го, без уточнения "деталей")
4. OK
сообщения в "терминал"
- шапка с настройками
- в конце вывод RET_CODE
- автопрокрутка на последнюю строку, что-бы сразу видеть результат команды (прям кровь из носу необходимая фишка)
+
SO-SO...(вроде да, а вроде хрен-пойми как работает)
txtTerminal - автоскролл немного странно работает, на кнопках
write, read - без проблем
verify & fuse_x - как-то странно и через раз
предполагаю из-за особенностей реализации LCL/Lazarus под разные платформы (они и глючат по разному :о)
5. NO
текст с ошибками в "терминале"
ConsoleToMemo()
иногда, когда отлавливается отсутствие файла - и до ConsoleToMemo() не доходит дела,
то текст в терминале не стирается а добавляется
--> не стал "думать" - пусть остается как есть.
6. NO
косяк/глюк LCL?
ConsoleToMemo() - проблема с курсором (в gtk-версии), если avrdude не может подконнектить к чипу(arduino).
7. OK
RET_CODE/анализ
ManualFuse()
btnReadFuseClick() - обработчик нажатия, т.е. не возвращает результат, а тут, в принципе, можно выдать ERROR_LEVEL
надо подумать над этим
-->
добавил во все обработчики кнопок - формирователи (где возожно) RET_CODE
8. OK
кнопки Write/Verity/Read
продумать "политику" с VOID/DEV_NULL файлом
оформить в функцию
9. OK
кнопка очистки терминала
10. NO
шоткат очистки терминала:
с 2м кликом у нас аблом:
TPageControl - не отслеживает это событие
TMemo - отслеживает по своему, очень не удобно: сначало надо кликнуть по самому полю, что-бы оно "поймало фокус" и
только потом срабатывает 2х клик, в реале это выглядит как 2 раза надо сделать 2й клик... не удобно
--> пока отложил
11. OK
сохранение: шрифт/размер (терминал & GUI)
12. OK
- убрал лишнюю проверку, связанную с "каталогами"
- дополнительная пред/проверка/обработка имен каталогов (именно имен, вбитых в текстовые поля, а не ПУТИ)
- правильная обработка тильды: '~' -> HOME
13. ОК
сохранение: позиции, размеров формы
14. ОК
programmer.xml
- доработаны старые устройства согласно источникам и собственным наработкам
- добавлено новые программаторы/отладчики
- доб. параметр 'add' - для дополнительных/кастомных настроек avrdude
- создал "громадные" и кастомный конфигураторы
programmer.xml.huge1 (большой)
programmer.xml.huge2 (еще чуть поболее)
programmer.xml.mini (для себя, минимальный набор)
15. OK
обработать ошибки при чтении xml-файлов
16. OK
добавил строку кастомных команд avrdude
17. OK - programmer.xml
добавил параметр для arduino-платы с кастомным контроллером
arduino -> chip="ATmega328PB"
arduino mega -> chip="ATmega2560"
--> автоустановка на соотв. контроллер, при выборе arduino.
18. ОК
check-box вкл/выкл автоскрола терминал-текста
19. OK
на кнопку ERASE - добавить доп. диалог/подтверждение
20. OK
разрешил немного програмке свободнее "дышать" (т.е. изменять размеры)
особенно полезно растянуть терминал с выхлопом что-бы удобно читать/наблюдать за процессом/ошибками.
21. OK
ConsoleToMemo()
- переписал, что-бы не было фатальной фрагментации памяти.
- уменьшил размер буфера с неприлично-гогромного до прилично-подходящего
- добавил фильтр на esc-последовательности, что-бы не мусорить в "терминал"
22. ОК
блокировка во время выполнения "работы"
+
работу с языковыми файлами не проверял/не тестировал
///////////////////////////////////////////////////////////////////////////////
p.s. первый раз выложил, но убрал, были немного ... с мышами!
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
p.s. держитесь обоими руками, а то прорвет...