artemkad 89 13 апреля, 2012 Опубликовано 13 апреля, 2012 · Жалоба Никто не подскажет как организовать консольное или скриптовое программирование через AVR Dragon переписанный под 5-ю или 6-ю Студию? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Birden 0 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба Если Вы про командную строку, то какие проблемы? Я пользуюсь bat-файлом, который запускаю из-под CodeBlocks. Что-то типа такого: "C:\Program Files\Atmel\AVR Tools\AvrDragon\avrdragon -cUSB -datmega64 -e -i%1.hex -pf -vf%1" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 89 18 апреля, 2012 Опубликовано 18 апреля, 2012 · Жалоба Если Вы про командную строку, то какие проблемы? Уже проблем нет... :) Я пользуюсь 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) для того, что-бы результат не стал неприятным сюрпризом.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arttab 0 19 апреля, 2012 Опубликовано 19 апреля, 2012 · Жалоба извините что не совсем по топику. я пробовал воспользоваться atprogram через avrisp2 atprogram.exe -t avrispmk2 -i ISP -d atmega48 read -f f:\test-mkii\atprg.elf считать не получилось можете скинуть примеры чтения и записи флешь и еепрома? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Birden 0 19 апреля, 2012 Опубликовано 19 апреля, 2012 · Жалоба считать не получилось По какой причине не получилось? Что было написано в "ответе"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S17 1 18 декабря, 2012 Опубликовано 18 декабря, 2012 (изменено) · Жалоба Делюсь опытом... Прошивка из командной строки Потребовался простой способ программирования 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 Изменено 18 декабря, 2012 пользователем S17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S17 1 27 декабря, 2012 Опубликовано 27 декабря, 2012 (изменено) · Жалоба Продолжаю делиться "опытом" по простому 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) на неиспользуемое пространство. Изменено 28 декабря, 2012 пользователем S17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться