avrgui - GUI-оболочка для avdude/linux

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 611
Зарегистрирован: Ср дек 08, 2010 19:03:17

avrgui - GUI-оболочка для avdude/linux

Сообщение sunjob »

avrgui - GUI-оболочка для avdude/linux (форк lavrprog от Oberon)

язык,среда разработки:
- linux
- fpc/lazarus
- gtk/qt4/qt5/qt6

сделано:
- облегчение интерфейса
- исправлены ошибки
- переработано "ядро"

среда сборки:
- slackware 14.2/x64
- fpc-3.2.2
- lazarus-3.8.0
- glibc-2.23
- binutils-2.45.0
- oprofile-1.4.0

доработки/исправления:
Спойлер

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

///////////////////////////////////////////////////////////////////////////////
исходные косяки/непонятки/недоработки
///////////////////////////////////////////////////////////////////////////////

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, все мои версии) - происходит a/v-исключение в системной библиотеке
сделал/отследил/установил RET_CODE

3. OK - добавил в Atmega328PB (копия 328-го, без уточнения "деталей")

4. OK - сообщения в "терминал"
- шапка с настройками
- в конце вывод RET_CODE
- автопрокрутка на последнюю строку, что-бы сразу видеть результат команды (прям кровь из носу необходимая фишка)

7. OK - добавил на все кнопки RET_CODE / анализ

8. OK - кнопки Write/Verity/Read
продумать "политику" с VOID/DEV_NULL файлом
оформить в функцию

9. OK - кнопка очистки терминала

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. ОК - блокировка кнопок во время выполнения "работы" 
23. OK - убрал авто-ресайз, портящий "разметку" и приводящих к a/v-исключению qt5
24. OK - добавил обрабочик для "безопасных" исключений qt5.

+

работу с языковыми файлами не проверял/не тестировал

///////////////////////////////////////////////////////////////////////////////
URL avrgui / sunjob
URL lavrprog / Oberon

Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Аватара пользователя
Нефертити
Встал на лапы
Сообщения: 83
Зарегистрирован: Ср дек 06, 2023 23:51:29
Откуда: 48

Re: avrgui - GUI-оболочка для avdude/linux

Сообщение Нефертити »

Неужели, командную строку avrdude настолько сложно понять? Сколько ещё нужно сделать шелов к ней?
За старания - молодец.
Ответить

Вернуться в «AVR»