Проба пера с AVR под Linux. Avrdude + AVRDUDESS
Сегодня решил наконец прикрутить к своей второй машинке ftdi программатор. Но на ней только 12.04 Убунта. Пришлось немного поразбираться как там шить аврки. Плюс хотелось какой нить GUI. Остановился на AVRDUDESS (спасибо товарищу с именем Zak Kemble blog.zakkemble.co.uk/).
Необходимо проделать следующе действия:
Убедится что в каталоге /etc появился конфиг avrdude.conf и добавить в него следующие строки (пример для моего программатора):
Если используете другую распиновку в своем FTDI программаторе, то соответственно поменяйте.
Запуск приложения:
mono avrdudess.exe
Картинка стырена с сайта автора
Комментарии ( 46 )
Работа в консоли через Makefile несет правоту собственных действий при решении различны проблем в работе. Это самая твердая почва. Ты сам контролируешь весь свой мир. Это мощно.
Не надо бояться, что на освоение базовых принципов функционирования утилиты make нужно затратить не много времени. Нужно просто начать ее осваивать. Просто «поиграться» пару часов с ее возможностями. А по прошествии недели или месяца станет понятно — ни какие ГУИ нафиг не нужны! Все эти ГУИ от Лукавого. Это Антураж. Это как обязательность для какой-нибудь блондинки наличия у ее авто капота, прикрывающего страшно-рычащий грязно-замасленный двигатель. Это как обязательность закрытого системного блока в компе. (У меня у всех системников крышки сняты! Я не ханжа, мне так удобнее эксплуатировать комп.)
У себя в блоге я много раз писал на тему Линукса, консоли и Makefile-ов.
Ну, будем считать, что со мной всё ясно (Хотя я ничего и не понял.)
Теперь для полноты картины, охарактеризуй себя как-нибудь. А то не понятно, кто ты — пацак, чатланин? Кто? Должны же мы как-то друг друга квалифицировать. Я вот, например, затрудняюсь, вот так, сходу определять генотип собеседника.
«Нет, генацвале! Когда у общества нет цветовой дифференциации штанов, то нет цели!» (с)
навешивание ярлыков — удел недалеких людей.
Да. Я тоже так считаю.
— Павлины (МЛМ), говоришь. Х-хы! (с) из к/ф «Белое солнце пустыни»
Вы произнесли слово «прогресс». Но что оно означает? А если об этом подумать в контексте Виндовса? А в контексте Линукса?
Виндовс развивается в своем направлении — управление программами с помощью мышки. Ставка делается на графические примитивы — кнопки, менющки и другие графические элементы. Считается, что если пункта меню нет или нет кнопки, то и у пользователя нет возможности вызвать то или иное действие в программе. Это в некоторой степени гарантирует безопасность (сохранность, работоспособность) программы. Нельзя сделать того, чего не отражено на экране. Поэтому пользователь может безопасно нажимать любые кнопки до которых он сможет дотянуться. С другой стороны, всё спрятано под капотом, а это значит — мир, видимый пользователем, упрощается. А поскольку все (до поры до времени) работает, то возникает ложное чувство, что пользователь полностью контролирует систему.
Прогресс в Линукс происходит не только в направлении графического интерфейса (вспомним Убунту), но и в направлении консольной функциональности. Считается, что пользователь неплохо разбирается в системе и способен руками набрать любые нужные ему команды. Что же касается опасных команд, могущих сломать систему или как-то помешать другим пользователям (не зыбываем, что Линукс — это многопользовательская ОС), то они убраны от неопытных пользователей. Количество консольных команд (и их вариаций с помощью флагов), которые набираются на клавиатуре — просто огромно! Практически невозможно изобразить из с помощью меню, кнопочек, выпадающих списков и всплывающих диалоговых окон. Поэтому у пользователя поле для выбора действий чрезвычайно широко. Широкое поле выбора влечет за собой такую же сложность в работе.
К счастью, в Линуксе существуют также способы для уменьшения сложности в управлении. В частности — утилита make и сопутствующие Makefile-ы. Сюда же относятся и всевозможные скрипты.
Линукс — это не аналог Виндовса. Для какой-нибудь блондинки, для секретаря-референта эти две операционки — почти одинаковые. Но для нас — для программистов и разработчиков эти операционки разные!
Они, конечно, частично перекрывают возможности друг друга. На Виндовсе есть консольное окно, а Линукс давно уже обзавелся графическим интерфейсом. Принципиальная разница между этими операционками в их способе предоставления пользователю управления разделяемыми (shared) ресурсами.
И вот тут возникает интересный вопрос. Допустим, мы пользуемся одинаковыми (по своемц назначению) программами в Виндовсе и Линуксе. В Виндовсе это будет IAR, а в Линуксе — тулчейн, состоящий из avr-gcc, avr-binutils, avrdude.
В случае с IAR, я даже не представляю, как я буду поступать. (Собственно, это один из тех критериев, которые подвигнул меня отказаться от Винды.) Но в случае с Линуксом, у меня созданы Makefile-ы, которые кочуют от проекта к проекту с небольшими изменениями. Я их кручу как хочу! Я могу с ними делать такие чудеса, которые для платформы Виндовс вообще могут быть недостижимы!
Принципиальная разница состоит в том, что глубина контролируемости (to control == управлять) на платформе Линукс значительно больше, чем на платформе Виндовс.
И когда мне на платформе Линукса нужно спрятать промасленный двигатель под розовенький капот, я это могу сделать сам. Без участия IAR и Майкрософт.
Понимаете, в чем дело — я много лет сидел под Виндой (писал проги как для самой Винды, так и для микроконтроллеров), и много лет провел под Линуксом. И я знаю и ту, другую платформы. Знаю их специфику, знаю их слабые и сильные стороны. И на основе своих знаний и личных требований к операционке, я выбираю Линукс. У каждого свои требования. И это означает только одно — каждый идет своим путём.
Я лишь говорю, что хорошая развитость консольных фичей в Линуксе ставит под сомнение использование графических программ. Поэтому, для те, кто владеет консолью, видят в ней только преимущества. А вот, люди из Виндовс-среды, консоль не знают. Они думают, что консоль Линукса чуть-чуть отличается от командной строки Виндовса. Нет! Это серьезное заблуждение!
Поэтому не утихают споры, что «Линукс не дотягивает до уровня Виндовс» (с). А позвольте спросить — по какому параметру? В области графических программ? А зачем этот подход, присущий Виндовс-платформе, нужнет в Линуксе? Тут свои средств много. Просто их Виндовс-пользователи не знают, и судят о Линуксе с позиции Виндовса.
Как в прочем некоторые товарищи, и на Виндовс пытаются натянуть Линукс-технологии. Я не говорю, что это абсолютно не верно. Просто Линукс и Виндовс — имеют несколько разный подход в понимании того, как управлять компьютером, поэтому перетаскивание технологий с одной платформы на другую зачастую приносит более скромные результаты.
У консольного интерфейса есть одна ооочень большая проблема — его надо изучать. Метод тыка там работает крайне плохо. Но для проф использования консоль необходима и удобна. Сам тащусь от консоли в автокаде, например, и Eagle.
«Линукс не дотягивает до уровня Виндовс» (с). А позвольте спросить — по какому параметру?
По интерфейсу 🙂 Чем проще интерфейс, тем больше пользователей, больше пользователей — больше стимула писать софта. Получается прямая связь развивающая систему. Так что без этого подхода «Присущего Виндовзу» Линкус так бы и останется системой написанной программистами для программистов и они там и будут вариться в собственном соку никому больше не нужные. Ну либо как чисто служебная система для серверов всяких. Обслуживать которую будет специально обученный на это профессионал, а не баба клава которая компьютер увидела месяц назад у дочки.
Собственно линух ща движется в правильном направлении постепенно развивая гуй до такой степени, чтобы консоль там была не нужна совершенно. Вот когда этой системой можно будет пользоваться вообще не зная о том, что там есть какая-то, тогда можно будет сказать, что система готова к массовой эксплуатации.
Avrdude — опции запуска и примеры использования, графическая оболочка для linux
Прежде чем перейти к тестированию программатора вместе с микроконтроллером (МК) давайте сначала разберемся с возможностями программы avrdude, которая очень часто является основой при прошивке AVR кристаллов как в Linux, так и в других операционных системах. Приведен список всех параметров запуска программы avrdude, рассмотрим графическую оболочку, а также примеры использования avrdude.
Программа AVRDude
Программа AVRDude (AVR Downloader-Uploader) — это очень мощный кросплатформенный инструмент, который позволяет программировать всю линейку микроконтроллеров AVR, поддерживая при этом из коробки почти все типы доступных сейчас программаторов. Программа работает из консоли, что позволяет хорошо автоматизировать процесс прошивки микроконтроллеров но требует при этом внимательности и навыков работы с терминалом.
Рис. 1. avrdude — кросплатформенная программа для прошивки микроконтроллеров фирмы ATMEL.
Первоначальный код программы AVRDude был написан английским программистом Брайеном Дином (Brian S. Dean) и имел название AVRprog. Позже программа получила большой интерес со стороны пользователей и Брайен решил открыть ее код для всеобщего использования и доработки, а для того чтобы она не путалась с одноименной программой из AVRStudio — AVRProg, программа получила новое имя — AVRDude.
Программа AVRDude запускается и работает на ОС: Linux, Windows, MacOS X, FreeBSD и других.
Адрес официального сайта программы AVRDude: http://www.nongnu.org/avrdude/
Для установки программы avrdude в Debian GNU Linux или Ubuntu следует установить одноименный пакет при помощи команды:
Послее установки пакета программа готова к работе из консоли.
Параметры запуска avrdude
Запустив в консоли программу avrdude без аргументов мы сможем увидеть список доступных опций для использования. Приведенную ниже информацию можно позже использовать как краткую справку по параметрам программы avrdude.
Рис. 2. Список параметров программы avrdude.
Рассмотрим все опции программы по порядку:
— является обязательной опцией, здесь мы в качестве
указываем краткий псевдоним AVR микроконтроллера;
указываем псевдоним используемого программатора, например «usbasp».
Модели микроконтроллеров (опция -p
Значение параметра | Модель МК |
---|---|
uc3a0512 | AT32UC3A0512 |
c128 | AT90CAN128 |
c32 | AT90CAN32 |
c64 | AT90CAN64 |
pwm2 | AT90PWM2 |
pwm2b | AT90PWM2B |
pwm3 | AT90PWM3 |
pwm316 | AT90PWM316 |
pwm3b | AT90PWM3B |
1200 | AT90S1200 |
2313 | AT90S2313 |
2333 | AT90S2333 |
2343 | AT90S2343 |
4414 | AT90S4414 |
4433 | AT90S4433 |
4434 | AT90S4434 |
8515 | AT90S8515 |
8535 | AT90S8535 |
usb1286 | AT90USB1286 |
usb1287 | AT90USB1287 |
usb162 | AT90USB162 |
usb646 | AT90USB646 |
usb647 | AT90USB647 |
usb82 | AT90USB82 |
m103 | ATmega103 |
m128 | ATmega128 |
m1280 | ATmega1280 |
m1281 | ATmega1281 |
m1284p | ATmega1284P |
m1284rfr2 | ATmega1284RFR2 |
m128rfa1 | ATmega128RFA1 |
m128rfr2 | ATmega128RFR2 |
m16 | ATmega16 |
m161 | ATmega161 |
m162 | ATmega162 |
m163 | ATmega163 |
m164p | ATmega164P |
m168 | ATmega168 |
m168p | ATmega168P |
m169 | ATmega169 |
m16u2 | ATmega16U2 |
m2560 | ATmega2560 |
m2561 | ATmega2561 |
m2564rfr2 | ATmega2564RFR2 |
m256rfr2 | ATmega256RFR2 |
m32 | ATmega32 |
m324p | ATmega324P |
m324pa | ATmega324PA |
m325 | ATmega325 |
m3250 | ATmega3250 |
m328 | ATmega328 |
m328p | ATmega328P |
m329 | ATmega329 |
m3290 | ATmega3290 |
m3290p | ATmega3290P |
m329p | ATmega329P |
m32u2 | ATmega32U2 |
m32u4 | ATmega32U4 |
m406 | ATMEGA406 |
m48 | ATmega48 |
m48p | ATmega48P |
m64 | ATmega64 |
m640 | ATmega640 |
m644 | ATmega644 |
m644p | ATmega644P |
m644rfr2 | ATmega644RFR2 |
m645 | ATmega645 |
m6450 | ATmega6450 |
m649 | ATmega649 |
m6490 | ATmega6490 |
m64rfr2 | ATmega64RFR2 |
m8 | ATmega8 |
m8515 | ATmega8515 |
m8535 | ATmega8535 |
m88 | ATmega88 |
m88p | ATmega88P |
m8u2 | ATmega8U2 |
t10 | ATtiny10 |
t11 | ATtiny11 |
t12 | ATtiny12 |
t13 | ATtiny13 |
t15 | ATtiny15 |
t1634 | ATtiny1634 |
t20 | ATtiny20 |
t2313 | ATtiny2313 |
t24 | ATtiny24 |
t25 | ATtiny25 |
t26 | ATtiny26 |
t261 | ATtiny261 |
t4 | ATtiny4 |
t40 | ATtiny40 |
t4313 | ATtiny4313 |
t43u | ATtiny43u |
t44 | ATtiny44 |
t45 | ATtiny45 |
t461 | ATtiny461 |
t5 | ATtiny5 |
t84 | ATtiny84 |
t85 | ATtiny85 |
t861 | ATtiny861 |
t88 | ATtiny88 |
t9 | ATtiny9 |
x128a1 | ATxmega128A1 |
x128a1d | ATxmega128A1revD |
x128a1u | ATxmega128A1U |
x128a3 | ATxmega128A3 |
x128a3u | ATxmega128A3U |
x128a4 | ATxmega128A4 |
x128a4u | ATxmega128A4U |
x128b1 | ATxmega128B1 |
x128b3 | ATxmega128B3 |
x128c3 | ATxmega128C3 |
x128d3 | ATxmega128D3 |
x128d4 | ATxmega128D4 |
x16a4 | ATxmega16A4 |
x16a4u | ATxmega16A4U |
x16c4 | ATxmega16C4 |
x16d4 | ATxmega16D4 |
x16e5 | ATxmega16E5 |
x192a1 | ATxmega192A1 |
x192a3 | ATxmega192A3 |
x192a3u | ATxmega192A3U |
x192c3 | ATxmega192C3 |
x192d3 | ATxmega192D3 |
x256a1 | ATxmega256A1 |
x256a3 | ATxmega256A3 |
x256a3b | ATxmega256A3B |
x256a3bu | ATxmega256A3BU |
x256a3u | ATxmega256A3U |
x256c3 | ATxmega256C3 |
x256d3 | ATxmega256D3 |
x32a4 | ATxmega32A4 |
x32a4u | ATxmega32A4U |
x32c4 | ATxmega32C4 |
x32d4 | ATxmega32D4 |
x32e5 | ATxmega32E5 |
x384c3 | ATxmega384C3 |
x384d3 | ATxmega384D3 |
x64a1 | ATxmega64A1 |
x64a1u | ATxmega64A1U |
x64a3 | ATxmega64A3 |
x64a3u | ATxmega64A3U |
x64a4 | ATxmega64A4 |
x64a4u | ATxmega64A4U |
x64b1 | ATxmega64B1 |
x64b3 | ATxmega64B3 |
x64c3 | ATxmega64C3 |
x64d3 | ATxmega64D3 |
x64d4 | ATxmega64D4 |
x8e5 | ATxmega8E5 |
Типы программаторов (опция -c
Настройки всех программаторов содержатся в конфигурационном файле по умолчанию, полистать его содержимое в ОС Linux можно командой:
Ниже представлены значения опции и соответствующие данные программаторов:
Опция | Программатор |
---|---|
abcmini | ABCmini Board, aka Dick Smith HOTCHIP |
alf | Nightshade ALF-PgmAVR, http://nightshade.homeip.net/ |
arduino | Плата Arduino, протокол сходен с STK500 1.x |
atisp | AT-ISP V1.1 кабель программирования для AVR-SDK1, http://micro-research.co.th/ |
avr109 | Atmel AppNote AVR109 Boot Loader |
avr910 | Atmel Low Cost Serial Programmer |
avr911 | Atmel AppNote AVR911 AVROSP (an alias for avr109) |
avrftdi | FTDI MPSSE (FT2232 etc.) поддержка bitbang |
avrisp | Atmel AVR ISP (псевдоним для stk500) |
avrisp2 | Atmel AVR ISP mkII (псевдоним для stk500v2) |
avrispmkII | Atmel AVR ISP mkII (псевдоним для stk500v2) |
avrispv2 | Atmel AVR ISP, running a version 2.x firmware (an alias for stk500v2) |
bascom | Bascom SAMPLE programming cable |
blaster | Altera ByteBlaster |
bsd | Brian Dean’s Programmer, http://www.bsdhome.com/avrdude/ |
butterfly | Atmel Butterfly Development Board |
c2n232i | C2N232I, reset=dtr sck=!rts mosi=!txd miso=!cts, |
dapa | Direct AVR Parallel Access cable |
dasa | serial port banging, reset=rts sck=dtr mosi=txd miso=cts |
dasa3 | serial port banging, reset=!dtr sck=rts mosi=txd miso=cts |
dragon_dw | AVR Dragon in debugWire mode |
dragon_hvsp | AVR Dragon in high-voltage serial programming mode |
dragon_isp | AVR Dragon в режиме ISP |
dragon_jtag | AVR Dragon в режиме JTAG |
dragon_pp | AVR Dragon in (high-voltage) parallel programming mode |
dt006 | Dontronics DT006 |
ere-isp-avr | ERE ISP-AVR |
frank-stk200 | Клон STK200 от Frank’а, http://electropol.free.fr/spip/spip.php?article15 |
futurlec | Кабель программирования Futurlec.com |
jtag1 | Atmel JTAG ICE mkI, running at 115200 Bd |
jtag1slow | Atmel JTAG ICE mkI, running at 19200 Bd |
jtag2slow | Atmel JTAG ICE mkII (default speed 19200 Bd) |
jtag2,jtag2fast | Atmel JTAG ICE mkII, running at 115200 Bd |
jtag2isp | Atmel JTAG ICE mkII in ISP mode. |
jtag2dw | Atmel JTAG ICE mkII in debugWire mode. |
jtagmkI | Atmel JTAG ICE mkI, running at 115200 Bd |
jtagmkII | Atmel JTAG ICE mkII (default speed 19200 Bd) |
mib510 | Crossbow MIB510 programming board |
pavr | Jason Kyle’s pAVR Serial Programmer |
picoweb | Picoweb Programming Cable, http://www.picoweb.net/ |
pony-stk200 | Pony Prog STK200 |
ponyser | design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts |
siprog | Lancos SI-Prog, http://www.lancos.com/siprogsch.html |
sp12 | Steve Bolt’s Programmer |
stk200 | STK200 |
stk500 | Atmel STK500, probing for either version 1.x or 2.x firmware |
stk500hvsp | Atmel STK500 в режиме высоковольтного последовательного программирования (high-voltage serial programming mode), только для прошивок версии 2.x |
stk500pp | Atmel STK500 в режиме параллельного программирования (parallel programming) , только прошивка версии 2.x |
stk500v1 | Atmel STK500, с версией прошивки 1.x |
stk500v2 | Atmel STK500, с версией прошивки 2.x |
stk600 | Atmel STK600 в режиме ISP или в PDI режиме для устройств ATxmega |
stk600hvsp | Atmel STK600 в режиме высоковольтного последовательного программирования (high-voltage serial programming mode) |
stk600pp | Atmel STK600 в режиме параллельного программирования (parallel programming) |
usbasp | USBasp , http://www.fischl.de/usbasp/ |
usbtiny | USBtiny — простой USB программатор, http://www.ladyada.net/make/usbtinyisp/ |
xil | Xilinx JTAG кабель |
Работа с памятью (опция -U :r|w|v: [:format])
В качестве указываем тип памяти для работы:
- calibration — байты калибровки RC-генератора (один или несколько);
- eeprom — энергонезависимая память (EEPROM) микроконтроллера;
- efuse — дополнительный конфигурационный бит;
- flash — FLASH память микроконтроллера;
- fuse — фьюз-байт для МК только с одним fuse-байтом;
- hfuse — старший fuse-байт;
- lfuse — младший fuse-байт;
- lock — байт блокировки (ячейка защиты);
- signature — три байта что обозначают сигнатуру чипа (device ID);
- fuseN — байт с фьюзами для ATxmega чипов, N — целое число для каждого фьюза что поддерживается устройством;
- application — область приложений во Flash памяти для МК ATxmega;
- apptable — таблица приложений в области Flash памяти для устройств ATxmega;
- boot — загрузочная область Flash памяти для устройств ATxmega;
- prodsig — область с производственной сигнатурой (calibration) для устройств ATxmega;
- usersig — область с пользовательской сигнатурой для устройств ATxmega.
Дальше через двоеточие следует производимая операция с памятью МК:
- r — прочитать указанную область памяти и записать в указанный файл ;
- w — прочитать данные из файла и записать в указанную память устройства;
- v — прочитать данные из указанного файла и из указанной области памяти (verify, проверка).
В поле указывается полный или относительный путь к файлу что используется для записи или чтения данных. Поле «:format» является не обязательным, с его помощью указывается формат используемого файла:
- i — Intel HEX;
- s — Motorola S-record;
- r — raw binary (RAW формат);
- e — ELF (Executable and Linkable Format);
- m — занчения байтов для записи указываются непосредственно в командной строке в поле и разделяются пробелами или запятыми. По умолчанию байты пишутся в десятичной системе, если указать 0x — будет записано шестнадцатеричные значения, а если перед байтом стоит 0 — будет записано восьмеричное число;
- a — авто-определение формата (auto detect);
- d — десятичный формат (decimal), числа разделяются запятыми;
- h — шестнадцатеричный формат (hexadecimal), числа начинаются с 0x;
- o — восьмеричный формат (octal), перед числами ставится 0;
- b — двоичный формат (binary), перед числами ставится 0b.
По умолчанию используется авто-определение формата (auto detect).
Состояние линий параллельного порта (-E [, ])
- reset — на линии RESET будут низкий уровень, микроконтроллер останется в состоянии сброса;
- noreset — на линию RESET поступит высокий уровень для запуска МК после программирования;
- vcc — установка высокого уровня на линии порта VCC , которая может использоваться для питания МК;
- novcc — подача низкого уровня на линию VCC.
Допускается использование нескольких значений через запятую.
Примеры использования avrdude
С опциями запуска разобрались, теперь давайте посмотрим как их использовать для выполнения нужных нам операций с микроконтроллером при помощи программы avrdude.
Выполним тест связки микроконтроллера ATtiny13 с программатором USBASP:
Произведем чтение Flash-памяти микроконтроллера ATmega88 в никуда (/dev/null), тест на читаемость флешь-памяти:
Выполним чтение Flash-памяти чипа ATmega8 в файл формата Intel HEX — /tmp/flash_dump.hex, при этом укажем что для программатора нужно использовать именно USB-порт (-P usb) и выводить больше отладочной информации (-v):
Прочитаем содержимое EEPROM-памяти микроконтроллера ATtiny85 и сохраним его в файл RAW формата (/tmp/eeprom_dump.raw), используя при этом программатор USBTiny:
Произведем запись данных их HEX-файла (/tmp/program_m8.hex) во FLASH-память микроконтроллера ATmega8, используя программатор STK-500:
Произведем запись данных во FLASH и EEPROM память одной командой, используя как источники данных для записи файлы /tmp/flash_1.hex и /tmp/eeprom_1.hex:
Выполним чтение фьюзов из микроконтроллера atmega8 и сохраним данные в файлы в шестнадцатеричном формате (hexadecimal, числа начинаются с 0x) :
Произведем запись фьюзов для микроконтроллера ATmeag32, установлена частота внутреннего RC-генератора на 4MHz (Low=0xc3, High=0x99):
А теперь, запишем значения битов блокировки (Lock Bits) для микроконтроллера ATTiny13, подключенного к программатору USBASP, установим значение байта в 0xFC (11111100):
О том, что такое фьюзы и биты блокировки в AVR микроконтроллере я подробно описал в отдельной статье — что такое Fuse и Lock биты и как с ними работать.
Графическая оболочка для avrdude
Для avrdude существует отличная графическая оболочка — AVR8 Burn-O-Mat. Данная программа позволяет читать и записывать данные во Flash и EEPROM память, а также при ее помощи можно удобно и наглядно рассчитать биты фьюзов и после прошить их в микроконтроллер.
Программа написана на языке Java и работает как на Windows так и на GNU Linux. Автор программы — Torsten Brischalle.
Рис. 3. О программе AVR8-Burn-O-Mat.
Рис. 4. Главное окно программы AVR8-Burn-O-Mat.
Рис. 5. Окно установки фьюзов в программе AVR8-Burn-O-Mat.
Скачать программу версии 2.1.2 можно здесь: avr8_burn-o-mat_2_1_2.zip (1,4Мб).
В предыдущей статье мы разбирали как настроить среду Greany для удобного программирования AVR микроконтроллеров под Linux, на одну из кнопок (например Build) можно назначить команду для запуска программы AVR8 Burn-O-Mat — получится очень удобное решение для установки фьюзов (fuse bits)!
Также для расчета фьюзов есть хороший онлайн-калькулятор, который находится по адресу: http://www.engbedded.com/fusecalc/
Еще один калькулятор, также позволяет выполнять расчет для Lock-битов: http://eleccelerator.com/fusecalc/
Заключение
Как видите у программы avrdude очень мощный арсенал возможностей по работе с AVR микроконтроллерами. Для консольной версии avrdude есть разнообразные графические надстройки и оболочки, но все же зная как использовать данную программу в консоли вы всегда будете держать процесс прошивки МК под полным контролем, а также легко производить автоматизацию всех необходимых действий.
Не стоит забывать что с течением времени появляются новые микроконтроллеры от Atmel, программаторы, а также программа avrdude в своем развитии не стоит на месте, желательно время-от-времени сверяться с официальной документацией по программе, следить за изменениями в мире AVR микроконтроллеров.
Для быстрого чтения документации по avrdude в Linux можно обратиться к родной MAN-системе (мануалы, manuals):
В следующей статье мы разберемся с настройкой avrdude для работы с микроконтроллерами на Linux, решим проблему ограничения прав запуска от обычного пользователя. Проведем первые испытания программатора в рабочей обстановке и на реальном микроконтроллере.