- avrdude - http://www.nongnu.org/avrdude/
- avra - http://avra.sourceforge.net/
- geany - https://www.geany.org/
- smartgit - https://www.syntevo.com/smartgit/
- minicom - https://salsa.debian.org/minicom-team/minicom
avrdude - это консольная утилита для прошивки МК. Использую без каких-либо изменений. И в дистрибутивах GNU Linux основанных на Debian его легко поставить с помощью стандартных средств, например: apt-get install avrdude
avra - это ассемблер(тоже консольная утилита), который соберет вашу программу в машинный код, обычно представленный в виде шестнадцатеричного дампа формата Intel (кстати у меня есть Java библиотека, которая может собирать и парсить подобные файлы).
Ранее мне приходилось заменять библиотеки устройств в этой программе на библиотеки взятые из AtmelStudio. Так как в оригинальных были ошибки и некоторые МК не поддерживались. Теперь мне это не нужно. Так как в ядре используются свои библиотеки устройств.
Ставим: apt-get install avra
geany - это мощный, легковесный и с большими возможностями текстовой редактор, он совсем не плохо подходит для написания программы на ассемблере(да и не только). Но он нуждается в настройке. Кроме того я сделал небольшой патч, который позволяет дополнительно подсвечивать выражения в синтаксисе языка.
Ставим: apt-get install geany
Вот сурс geany с моим патчем http://5277.ru/distr/other/geany-1.37.1 ... ing.tar.gz
Данная версия поддерживает 'keyword' userdefines1
Также вам будет полезен файл синтаксиса http://5277.ru/distr/other/filetypes.asm
Ну и необходимы команды сборки в меню->сборка:
1. сборка avra --includepath 'путь к core5277' "%f"
2. Прошивка avrdude -p m88 -c avrispmkII -U flash:w:%e.hex
*здесь нужно правильно задать тип МК и программатор, примеры:
avrdude -p m328p -c jtag2isp -U flash:w:%e.hex
avrdude -p m168p -c avrispmkII -U flash:w:%e.hex
avrdude -p m88 -c usbasp -U flash:w:%e.hex
Хотя я уже давно шью МК по другому. У меня есть БД моих прошивок и две графические утилиты.
1-я записывает hex новой прошивки в БД, другая позволяет прошить МК прошивкой БД работая с разными МК и программаторами(при этом утилита шьет не только FLASH, а также EEPROM и сразу выставляет фьюзы).
*важно, я использую TAB в 3 пробела! Я считаю это идеальный размер таба для кодинга как минимум на таких языках как asm,c,c++,java
smartgit - один из лучших условно бесплатный GIT клиент. Ранее я пользовался tortoisehg(для mercurial репозиториев) и он меня полностью устраивал. Но некто явно решил похоронить его для Debian, теперь легко его не поставишь. Потом я перешел на GitKraken - отличное решение, но только для opensource или за дорогую подписку. И вот в итоге я пришел к SmartGit, хотя повторюсь, и он тоже условно бесплатный. В общем хорошего бесплатного и удобного версионного контроля больше нет.
*разработчики SmarGit рекомендуют для Debian скачивать архив с сайта https://www.syntevo.com/smartgit/
minicom - эмулятор терминала, подходит для работы с последовательным портом(UART, например устройства /dev/ttyUSB0) на четверочку(он не любит мусор на входе и может повести себя некорректно). А еще у него нельзя задать свой BAUDRATE. Я его также использую для вывода логирования с порта МК используя также USB-UART свисток.
Ставим: apt-get install minicom
*есть более серьезные решения типа ioninja, но к сожалению это не бесплатно.
** также никто не отменял утилиту screen: screen /dev/ttyUSB0 115200
К сожалению с дебагом я не разобрался, для меня оказалось легче реализовать свое логирование в ядре, чем получить удобный дебаг в GNU Linux. Да и программатор с поддержкой debugWire есть не у всех.