Avrdude - опции запуска и примеры использования, графическая оболочка для linux
Прежде чем перейти к тестированию программатора вместе с микроконтроллером (МК) давайте сначала разберемся с возможностями программы avrdude, которая очень часто является основой при прошивке AVR кристаллов как в Linux, так и в других операционных системах. Приведен список всех параметров запуска программы avrdude, рассмотрим графическую оболочку, а также примеры использования avrdude.
Содержание:
- Программа AVRDude
- Параметры запуска avrdude
- Модели микроконтроллеров (опция -p <partno>)
- Типы программаторов (опция -c <programmer>)
- Работа с памятью (опция -U <memtype>:r|w|v:<filename>[:format])
- Состояние линий параллельного порта (-E <exitspec>[,<exitspec>])
- Примеры использования 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 следует установить одноименный пакет при помощи команды:
sudo apt-get install avrdude
Послее установки пакета программа готова к работе из консоли.
Параметры запуска avrdude
Запустив в консоли программу avrdude без аргументов мы сможем увидеть список доступных опций для использования. Приведенную ниже информацию можно позже использовать как краткую справку по параметрам программы avrdude.
Рис. 2. Список параметров программы avrdude.
Рассмотрим все опции программы по порядку:
- -p <partno> - является обязательной опцией, здесь мы в качестве <partno> указываем краткий псевдоним AVR микроконтроллера;
- -b <baudrate> - позволяет переопределить указанную для программатора в конфигурации программы скорость подключения по интерфейсу RS-232;
- -B <bitclock> - указываем Bit Clock Period для интерфейса отладки JTAG или ISP Clock (только для JTAG ICE). Значение <bitclock> указывается в микросекундах, для JTAG ICE по умолчанию оно установлено в 1 микросекунду и подходит для МК работающих на частотах 4МГц и выше;
- -C <config-file> - в качестве <config-file> указываем полный путь к файлу конфигурации с необходимыми нам настройками программы. По умолчанию используется файл /etc/avrdude.conf (Linux);
- -c <programmer> - в качестве <programmer> указываем псевдоним используемого программатора, например "usbasp".
- -D - опция запрещает автоматическое стирание Flash-памяти. Автоматическое стирание не используется в микроконтроллерах семейства ATxmega;
- -i <delay> - установка паузы перед каждой отправкой каждого бита для bitbang-программаторов. В качестве <delay> указывается значение в микросекундах. Это бывает необходимо если для программирования используется компьютер с очень быстрым процессором или же микроконтроллер с низкой тактовой частотой (32КГц, 128КГц), позволяет соблюдать условие: частота ISP < 1/4 частоты процессора;
- -P <port> - в качестве значения <port> указываем используемый программатором порт. По умолчанию используются /dev/ppi0 (параллельный порт) и /dev/cuaa0 (последовательный порт) в зависимости от программатора;
- -F - опция для отключения проверки сигнатуры микроконтроллера. По умолчанию перед программированием avrdude проверяет сигнатуру микроконтроллера, которая в некоторых случаях может быть повреждена, при этом микроконтроллер может продолжать нормально функционировать;
- -e - стирает содержимое FLASH и EEPROM памяти (заполнение значениями 0xFF), очищаются fuse-bits (биты защиты). Исключением являются микроконтроллеры семейства ATxmega в которых используется постраничная запись;
- -O - опция для калибровки RC-генератора в соответствии с примечанием AVR053 от Atmel. Поддерживается только на программаторах STK500v2, AVRISP mkII, и JTAG ICE mkII. Результат будет сохранен в EEPROM памяти в ячейке с адресом 0;
- -U <memtype>:r|w|v:<filename>[:format] - комплексная опция для указания производимой с памятью операции (чтение. запись, проверка);
- -n - запрет на запись в микроконтроллер, используется для отладки avrdude;
- -V - отключение автоматической проверки записанной информации;
- -u - отключить режим безопасной (safe mode) проверки и сопоставления ячеек конфигурации (fuse bits) до и по завершению программирования. Данная опция необходима если нужно изменить значения фьюзов (fuse bits), в противном случае avrdude в качестве меры безопасности изменит их значения на те которые были прочитаны перед программированием;
- -s - запрет вывода запросов в безопасном режиме при работе с фьюзами;
- -t - переводит avrdude в режим терминала (terminal mode);
- -E <exitspec>[,<exitspec>] - изменение состояния линий параллельного порта после программирования на указанные в аргументах опции. По умолчанию устанавливаются те состояния линий что были до начала работы;
- -x <extended_param> - позволяет указать дополнительный специальный параметр для используемого программатора;
- -y - опция что включает сохранение количества стираний МК в последних 4-х байтах памяти EEPROM;
- -Y <number> - указанное значение <number> будет сохранено в качестве числа циклов-стираний микроконтроллера в памяти EEPROM;
- -v - расширенный вывод информации о работе программы (verbose);
- -q - отключает отображение полоски прогресса при операциях с микроконтроллером. Для еще большого уменьшения отображаемой информации опцию следует указать дважды;
- -l <logfile> - перенаправление всего вывода для отладки в указанный файл, где <logfile> - полный путь к файлу для сохранения данных;
- ? - отображение справки.
Модели микроконтроллеров (опция -p <partno>)
Значение параметра | Модель МК |
---|---|
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 <programmer>)
Настройки всех программаторов содержатся в конфигурационном файле по умолчанию, полистать его содержимое в ОС Linux можно командой:
less /etc/avrdude.conf
Ниже представлены значения опции и соответствующие данные программаторов:
Опция | Программатор |
---|---|
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 <memtype>:r|w|v:<filename>[:format])
В качестве <memtype> указываем тип памяти для работы:
- 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 - прочитать указанную область памяти и записать в указанный файл <filename>;
- w - прочитать данные из файла <filename> и записать в указанную память устройства;
- v - прочитать данные из указанного файла <filename> и из указанной области памяти (verify, проверка).
В поле <filename> указывается полный или относительный путь к файлу что используется для записи или чтения данных. Поле ":format" является не обязательным, с его помощью указывается формат используемого файла:
- i - Intel HEX;
- s - Motorola S-record;
- r - raw binary (RAW формат);
- e - ELF (Executable and Linkable Format);
- m - занчения байтов для записи указываются непосредственно в командной строке в поле <filename> и разделяются пробелами или запятыми. По умолчанию байты пишутся в десятичной системе, если указать 0x - будет записано шестнадцатеричные значения, а если перед байтом стоит 0 - будет записано восьмеричное число;
- a - авто-определение формата (auto detect);
- d - десятичный формат (decimal), числа разделяются запятыми;
- h - шестнадцатеричный формат (hexadecimal), числа начинаются с 0x;
- o - восьмеричный формат (octal), перед числами ставится 0;
- b - двоичный формат (binary), перед числами ставится 0b.
По умолчанию используется авто-определение формата (auto detect).
Состояние линий параллельного порта (-E <exitspec>[,<exitspec>])
- reset - на линии RESET будут низкий уровень, микроконтроллер останется в состоянии сброса;
- noreset - на линию RESET поступит высокий уровень для запуска МК после программирования;
- vcc - установка высокого уровня на линии порта VCC , которая может использоваться для питания МК;
- novcc - подача низкого уровня на линию VCC.
Допускается использование нескольких значений через запятую.
Примеры использования avrdude
С опциями запуска разобрались, теперь давайте посмотрим как их использовать для выполнения нужных нам операций с микроконтроллером при помощи программы avrdude.
Выполним тест связки микроконтроллера ATtiny13 с программатором USBASP:
avrdude -p t13 -c usbasp
Произведем чтение Flash-памяти микроконтроллера ATmega88 в никуда (/dev/null), тест на читаемость флешь-памяти:
avrdude -p m88 -c usbasp -U flash:r:/dev/null:i
Выполним чтение Flash-памяти чипа ATmega8 в файл формата Intel HEX - /tmp/flash_dump.hex, при этом укажем что для программатора нужно использовать именно USB-порт (-P usb) и выводить больше отладочной информации (-v):
avrdude -p m8 -c usbasp -P usb -v -U flash:r:/tmp/flash_dump.hex:i
Прочитаем содержимое EEPROM-памяти микроконтроллера ATtiny85 и сохраним его в файл RAW формата (/tmp/eeprom_dump.raw), используя при этом программатор USBTiny:
avrdude -p t85 -c usbtiny -P usb -v -U eeprom:r:/tmp/eeprom_dump.raw:r
Произведем запись данных их HEX-файла (/tmp/program_m8.hex) во FLASH-память микроконтроллера ATmega8, используя программатор STK-500:
avrdude -c stk500 -p m8 -U flash:w:/tmp/program_m8.hex
Произведем запись данных во FLASH и EEPROM память одной командой, используя как источники данных для записи файлы /tmp/flash_1.hex и /tmp/eeprom_1.hex:
avrdude -c stk500 -p m8 -U flash:w:/tmp/flash_1.hex -U eeprom:w:/tmp/eeprom_1.hex
Выполним чтение фьюзов из микроконтроллера atmega8 и сохраним данные в файлы в шестнадцатеричном формате (hexadecimal, числа начинаются с 0x) :
avrdude -c usbasp -p m8 -U hfuse:r:m8_hfuse.txt:h -U lfuse:r:m8_lfuse.txt:h
Произведем запись фьюзов для микроконтроллера ATmeag32, установлена частота внутреннего RC-генератора на 4MHz (Low=0xc3, High=0x99):
avrdude -c usbasp -p m32 -U lfuse:w:0xc3:m -U hfuse:w:0x99:m
А теперь, запишем значения битов блокировки (Lock Bits) для микроконтроллера ATTiny13, подключенного к программатору USBASP, установим значение байта в 0xFC (11111100):
avrdude -c usbasp -p t13 -U lock:w:0xFC:m
О том, что такое фьюзы и биты блокировки в 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.
Официальный сайт программы AVR8 Burn-O-Mat: http://avr8-burn-o-mat.brischalle.de/
Скачать программу версии 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):
man avrdude
В следующей статье мы разберемся с настройкой avrdude для работы с микроконтроллерами на Linux, решим проблему ограничения прав запуска от обычного пользователя. Проведем первые испытания программатора в рабочей обстановке и на реальном микроконтроллере.
Начало цикла статей: Программирование AVR микроконтроллеров в Linux на языках Asembler и C.
Спасибо) Очень помогла ваша статья вникнуть в курс дела
Очень приятно что мой труд принес вам пользу. С Новым Годом!
Спасибо очень интересно я не специалист в программировании но мне помогло понять роботу в терминале.
Здравствуйте, а как добавить в командную строку защиту от считывания прошивки.
Здравствуйте. Добавил пример установки Lock-битов с использованием AVRDude в статью.
Для изменения битов блокировки (Lock Bits) при помощи AvrDude нужно использовать опцию записи в память "-U" с указанием типа памяти "lock".
Подробная статья по использованию и программированию Fuse и Lock битов - Что такое Fuse и Lock биты в AVR микроконтроллере, как с ними работать.
С большим удовольствием прочитал статью, понравился стиль изложения и знание дела. Поясните, пожалуйста, как именно в оболочке можно редактировать командную строку. Я имею ввиду Khazama, SinaProg, AVRdude_prog и указанную Вами в этой статье AVR8-Burn-O-Mat.?
Здравствуйте.
Аргументы и параметры командной строки для управления avrdude из программы AVR8-Burn-O-Mat запрограммированы в бинарном коде этой программы и изменить их без ее декомпиляции/перекомпиляции не получится.
Для возможности запуска программы AVR8-Burn-O-Mat из меню в оболочке программирования Geany нужно выполнить подготовку и настройку. Предположим что программа размещена в папке по следующему пути: "/home/master/AVR8_Burn-O-Mat/".
Создадим запускной скрипт - файл под именем "start.sh" и откроем его для редактирования:
Теперь помещаем в него следующие строчки кода:
Сохраняем этот файл (CTRL+X, потом подтверждаем сохранение - Y) и даем ему права на запуск:
Этот скрипт выполняет переход в папку где он размещен (там же размещена программа) и запускает на выполнение JAR-файл с программой. Теперь, используя данный скрипт и путь к нему можно запускать AVR8-Burn-O-Mat из других программ и эмуляторов терминалов.
Осталось настроить Geany: открываем "Buils" -> "Set Build Commands", используем свободное поле для настройки и будущего вызова программы - нажимаем на кнопочку и прописываем имя программы, а в поле возле нее указываем команду для запуска программы.
Для примера, ниже использован 4-й слот в разделе независимых команд (Independent commands):
Сохраняем настройки. Теперь при выборе меню "Buils" появится подпункт "AVR Burn-O-Mat", клик на котором запустит уже настроенную для этого пункта программу.
Спасибо за исчерпывающую информацию!
Пожалуйста!
Спасибо автору, очень помог решить мою задачу! Добавил статью в закладки
Я тоже пользовался AVR8-Burn-O-Mat вполне успешно. Вот только не все м/с поддерживаются ;-(
Сейчас шью через Eclipse после написания прог. ;-)
А статья очень полезная! Спасибо!!!
Добрый день! Столкнулся с такой проблемой: купил две ATmega328, без Р. Дудка их поддерживает, но в графическом режиме нет такого чипа, только ATmega328P. Из-за этого дудка ругается на неправильную сигнатуру. Можно ли его как-то добавить? А то через консоль не очень удобно. К тому же я делаю некое подобие Ардуино, и хотелось бы прошивать через Ардуино IDE. Я пользуюсь классическим графическим интерфейсом для дудки от Сергея Бондар.
Всё, разобрался сам. Надо было зайти в папу AVRDUDE с самой программой. Там есть файл atmel.ini. Открываем его с помощью Notepad++ или обычного блокнота и там написано, как добавлять микроконтроллеры и программаторы. Добавляем, сохраняем, запускаем. Камень появился в списке.
Здравствуйте, Александр!
Спасибо за то что разобравшись еще и опубликовали свое решение.
Захотел прошивать с помощью avrdude свой hex полученный в MPLAB X из-под Ubuntu, вот так вышло:
Где: /dev/ttyUSB0 - мой ком порт (я использовал USB-UART CH9102),
-c arduino - говорит, что будет использоваться стандартный загрузчик ардуины.