Перейти к содержанию
    

Консольное программирование

Никто не подскажет как организовать консольное или скриптовое программирование через AVR Dragon переписанный под 5-ю или 6-ю Студию?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если Вы про командную строку, то какие проблемы? Я пользуюсь bat-файлом, который запускаю из-под CodeBlocks. Что-то типа такого:

"C:\Program Files\Atmel\AVR Tools\AvrDragon\avrdragon -cUSB -datmega64 -e -i%1.hex -pf -vf%1"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если Вы про командную строку, то какие проблемы?

Уже проблем нет... :)

 

Я пользуюсь bat-файлом, который запускаю из-под CodeBlocks. Что-то типа такого:

"C:\Program Files\Atmel\AVR Tools\AvrDragon\avrdragon -cUSB -datmega64 -e -i%1.hex -pf -vf%1"

Для Драгона переписанного под 5 или 6-ю студию такое уже не проходит. В ней avrdragon уже нет, а avrdragon от 4-й студии злостно ругается на несовместимость ПО.

 

Зато оказалось, что начиная со AVRStudio 5.1 в пакет штатно включили atprogram.exe в папке Program Files\Atmel\AVR Studio 5.1\avrdbg\

В батнике надпись выглядит примерно так:

atprogram -t avrdragon -i jtag -d atxmega256a3 write -fs --values FF05FF00FCEC

 

ЗЫ. Кстати, обращайте внимание для xMega - фьюзов 5, но пишет программа в область памяти фьюзов в которой 4-я ячейка резервная, но ее все равно надо не пропустить. Т.е. в записи должно быть 6 байт(4-й нулевой или FF) для того, что-бы результат не стал неприятным сюрпризом....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

извините что не совсем по топику.

я пробовал воспользоваться atprogram через avrisp2

atprogram.exe -t avrispmk2 -i ISP -d atmega48 read -f f:\test-mkii\atprg.elf

 

считать не получилось

можете скинуть примеры чтения и записи флешь и еепрома?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

считать не получилось

По какой причине не получилось? Что было написано в "ответе"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делюсь опытом...

 

Прошивка из командной строки

 

Потребовался простой способ программирования AVR - сразу и целиком, «одним нажатием кнопки».

В студии «6» есть такая программа «atprogram.exe» - программатор из командной строки, принимает ”.hex” и ”.elf” (последний содержит сведения о программировании FUSES, про .hex – не знаю). Осталось её запустить без студии на «чистой машине»…

 

Из самой студии «C:\Program Files (x86)\Atmel\Atmel Studio 6.0» берём следующие 3 каталога (примерно так, как это сделано в http://www.atmel.no/beta_ware/AVRCommandLi...ndLineTools.exe, только там 4-ая студия) :

- avrdbg

- devices

- tools

Собираем их в каком-нибудь каталоге, например, «atprg» - в дальнейшем потребуется установить к нему путь.

 

Далее на «чистую машину» надо будет установить драйвер JUNGO. Либо грузим http://www.atmel.no/beta_ware/usb/AtmelUSB.exe и запускаем, либо забираем из студии каталог «C:\Program Files (x86)\Atmel\Atmel USB» и пытаемся запустить по «правой кнопке» «От имени Администратора» InstallAtmelUSB.exe («правой кнопкой» воспользоваться не успел, простой «тык» - не работает). Возможно, потребуется ещё установить драйвер Вашего «хвостика» - JTAGICE3 (JTAGICE3.inf) или т.п… Возможно, потребуется поставить ”.NET Framework” (Microsoft) – требует InstallAtmelUSB.exe.

 

После установки драйвера JUNGO, проверьте его наличие в «Диспетчере устройств» - там должен появиться раздел JUNGO, содержащий драйвер ”WinDriver”. После подключения «USB-хвостика» JTAGICE3, например, в этом же разделе JUNGO появится и его драйвер.

 

На этом «мучения» заканчиваются и переходим в прошивке…

 

Создаём "SupperPupperUnit.bat", стартующий процесс прошивки (символ ”:” – признак метки, используется как комментарий):

 

-----------------------------------------------------------

@echo off

echo SupperPupperUnit programming:

 

:Путь к программатору

:Path = C:\Program Files (x86)\Atmel\Atmel Studio 6.0\avrdbg;%PATH%

Path = atprg\avrdbg;%PATH%

 

:Список всех ключей

:atprogram.exe -?

 

:Смотрим, что микроконтроллер доступен

atprogram.exe -t jtagice3 -i jtag -d AT32UC3A0512 info

 

:Программирование

atprogram.exe -t jtagice3 -i jtag -d AT32UC3A0512 program -f SupperPupperUnit.elf

 

:Любуемся результатами

pause

------------------------------------------------------------------

 

В этом примере программируется «program» девайс «-d AT32UC3A0512» тулом «-t jtagice3» через интерфейс «-i jtag» файлом «-f SupperPupperUnit.elf».

 

Аналогичные темы:

http://electronix.ru/forum/index.php?showt...105260&st=0

http://electronix.ru/forum/index.php?showt...100424&st=0

Изменено пользователем S17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Продолжаю делиться "опытом" по простому 1-ому программированию (прошивке) и обновлению прошивки:

 

Программирование через USB (без ничего)

 

Если микроконтроллер имеет USB-порт, то Atmel подготовил два средства простой прошивки (для серии AT32UC3 – точно):

1. DFU-BootLoader: подключаете USB-кабелем микроконтроллер, даже только что запаянный на плату и 1-ый раз включенный, к компьютеру, запускаете на нём атмеловский *.cmd и всё – Ваша программа прошита!

2. MS-Bootloader: подключаете USB-флешку с «подготовленным» файлом прошивки Вашей программы к Вашему уже прошитому ранее микроконтроллеру, активируете из своей программы этот MS-Bootloader и он сам возьмёт этот файл с USB-флешь и прошьёт его в микроконтроллер.

 

1-ое средство DFU-BootLoader прошивается на фабрике и при 1-ом включении безусловно стартует – т.е. для 1-ой прошивки на производстве нужен только USB-кабель, соединяющий Ваш микроконтроллер на плате с компьютером. На последнем должна быть утилита «BatchISP» - есть во FLIP: http://www.atmel.com/tools/FLIP.aspx?tab=overview.

 

2-ое средство MS-BootLoader поставляется в виде исходников и после несложной подстройки под личные нужды программируется (можно даже и 1-ым средством) в память Вашего микроконтроллера.

 

Оба средства могут существовать в памяти одновременно: DFU занимает 1-ые 8КБ, добавление MS увеличивает «потери» до 32КБ.

 

DFU – «DFUDevice Firmware Upgrade». Механизм описан в http://www.atmel.com/images/doc7745.pdf «AVR32784 - AVR UC3 USB DFU Bootloader (doc7745).pdf» (версия 1.0.3, UC3A/B) и http://www.atmel.com/images/doc32166.pdf «AVR32806 - Atmel UC3 32-bit Microcontroller DFU Boot Loader, Version 1.1.0 (doc32166).pdf» (версия 1.1.0, UC3C/D). Исходников нет, некоторые прошивки можно найти в «примерах» - http://www.atmel.com/Images/AVR32806.zip, http://www.atmel.com/Images/avr32758.zip. Ещё один, м.б., полезный документ - http://www.atmel.com/images/doc32131.pdf «AVR32760 - AVR32 UC3 USB DFU Bootloader Protocol (doc32131).pdf».

 

MS – «Mass Storage class bootloader». Механизм описан в http://www.atmel.com/images/doc7818.pdf «AVR32758 - AVR32 UC3 USB Host Mass Storage BootLoader(doc7818).pdf», исходники и инструменты «подготовки» файла прошивки - http://www.atmel.com/Images/avr32758.zip.

 

DFU-BootLoader после сброса стартует 1-ым по адресу 0x8000_0000 и проверяет условия своего запуска: версиия 1.0.x (прошивается фабрикой в UC3A/B) опрашивает 3 старших FUSEs и слово 0x1FC в USER_PAGE, версиия 1.1.x (прошивается фабрикой в UC3C/D) опрашивает 2 слова 0x1F8 и 0x1FC в USER_PAGE. Там прошивается условие запуска: безусловного (фабричная установка) или по заданному уровню (0/1) на заданном пине. Лишиться этого DFU-BootLoader в памяти микроконтроллера просто – команда «chip-Erase» через «JITAG» стирает его бесследно… Чтобы восстановить утерянное нужна прошивка, а она «на виду» не лежит – захоронена где-то в примерах… Если условия запуска DFU-BootLoader не выполнены, то он передаёт управление по адресу 0x8000_2000, от куда начинается либо MS-Bootloader, либо уже боевая прошивка.

 

MS-Bootloader при своём старте также опрашивает своё условие запуска – слово в USER_PAGE. Если условие запуска не выполнено, то управление передаётся по адресу 0x8000_8000. Если условие выполнено, то запускается процесс программирования, после которого «ключ запуска» в USER_PAGE стирается. Исходник рассчитан на наличие единственного файла на флешке с заданным именем, но переделать под поиск нужного файла среди нескольких несложно. Также можно написать своё условие запуска – исходники все есть. Проект нужно «импортировать» в студию…

 

DFU шьёт куда прикажет *.hex, MS шьёт *.bin начиная с адреса 0x8000_8000 (т.е. сразу после себя). В любом случае файлы прошивки для этих программаторов надо подготовить. Для DFU – выбросить из .hex пространство, которое он занимает, т.е. адреса 0x8000_0000…0x8000_2000. Для MS – преобразовать в бинарный образ, выбросив пространство 0x8000_0000…0x8000_8000. Файлы готовятся утилитой «srec_cat.exe» - есть в примере http://www.atmel.com/Images/avr32758.zip с примерами использования: «dfuprogram-uc3a-ms_bl-user_appli.cmd» - для DFU и «gen_uc3.cmd» - для MS. Скачать утилиту саму с полным хелпом можно от сюда - http://sourceforge.net/projects/srecord/files/srecord/1.47/ (srecord-1.47.zip). Ещё один хелп - http://srecord.sourceforge.net/srecord-1.60.pdf. Ключ «–crop» берёт из входного .hex-файла заданный диапазон адресов, «-fill» - заполняет «пустоты» заданной константой в своём заданном диапазоне адресов, «-max» - ищет в файле максимальный адрес, «-offset -0x80007FE7» сдвигает выбранный диапазон адресов почти к началу двоичного файла, оставляя там 25 байт для вставки заголовка с контрольной суммой crc32 (ключи «-gen» и «-b-e-crc32»). В один выходной файл можно собрать несколько входных. Входной и выходной формат .bin/.hex задаётся ключами: «-binary/-intel». *.bin-файл для MS содержит только Вашу «обрезанную от 0x8000_8000» прошивку, .hex-файл для прошивки через JTAG с использованием DFU+MS – все три файла: DFU-BootLoader, MS-BootLoader и Вашу прошивку.

 

Для работы с DFU и MS в Вашем проекте надо подправить стартовый файл. В настройках линковщика поставить галку «не использовать стандартный стартовый файл» и включить в проект “trampoline*.S” – там jump: на 0x8000_2000 или на 0x8000_8000 и затычка (.org) на неиспользуемое пространство.

 

Изменено пользователем S17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...