Меню Рубрики

Графическая оболочка для avrdude в linux

Проба пера с 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 микроконтроллера;

  • -b — позволяет переопределить указанную для программатора в конфигурации программы скорость подключения по интерфейсу RS-232;
  • -B — указываем Bit Clock Period для интерфейса отладки JTAG или ISP Clock (только для JTAG ICE). Значение указывается в микросекундах, для JTAG ICE по умолчанию оно установлено в 1 микросекунду и подходит для МК работающих на частотах 4МГц и выше;
  • -C — в качестве указываем полный путь к файлу конфигурации с необходимыми нам настройками программы. По умолчанию используется файл /etc/avrdude.conf (Linux);
  • -c

    указываем псевдоним используемого программатора, например «usbasp».

  • -D — опция запрещает автоматическое стирание Flash-памяти. Автоматическое стирание не используется в микроконтроллерах семейства ATxmega;
  • -i — установка паузы перед каждой отправкой каждого бита для bitbang-программаторов. В качестве указывается значение в микросекундах. Это бывает необходимо если для программирования используется компьютер с очень быстрым процессором или же микроконтроллер с низкой тактовой частотой (32КГц, 128КГц), позволяет соблюдать условие: частота ISP :r|w|v: [:format] — комплексная опция для указания производимой с памятью операции (чтение. запись, проверка);
  • -n — запрет на запись в микроконтроллер, используется для отладки avrdude;
  • -V — отключение автоматической проверки записанной информации;
  • -u — отключить режим безопасной (safe mode) проверки и сопоставления ячеек конфигурации (fuse bits) до и по завершению программирования. Данная опция необходима если нужно изменить значения фьюзов (fuse bits), в противном случае avrdude в качестве меры безопасности изменит их значения на те которые были прочитаны перед программированием;
  • -s — запрет вывода запросов в безопасном режиме при работе с фьюзами;
  • -t — переводит avrdude в режим терминала (terminal mode);
  • -E [, ] — изменение состояния линий параллельного порта после программирования на указанные в аргументах опции. По умолчанию устанавливаются те состояния линий что были до начала работы;
  • -x — позволяет указать дополнительный специальный параметр для используемого программатора;
  • -y — опция что включает сохранение количества стираний МК в последних 4-х байтах памяти EEPROM;
  • -Y — указанное значение будет сохранено в качестве числа циклов-стираний микроконтроллера в памяти EEPROM;
  • -v — расширенный вывод информации о работе программы (verbose);
  • -q — отключает отображение полоски прогресса при операциях с микроконтроллером. Для еще большого уменьшения отображаемой информации опцию следует указать дважды;
  • -l — перенаправление всего вывода для отладки в указанный файл, где — полный путь к файлу для сохранения данных;
  • ? — отображение справки.
  • Модели микроконтроллеров (опция -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, решим проблему ограничения прав запуска от обычного пользователя. Проведем первые испытания программатора в рабочей обстановке и на реальном микроконтроллере.

    Источник

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Яркость дисплея mac os
  • Яндекс строка для mac os
  • Яндекс радио для mac os
  • Яндекс почта приложение для mac os
  • Яндекс переводчик для mac os