PDA

Просмотр полной версии : AVR Assembler TAVRASM



DL7PGA
19.06.2011, 14:38
Предлагаю попробовать для большинства совершенно неизвестную программу - AVR-ассемблер TAVRASM 1.22, в архиве исходники и 2 версии программы - TAVRASM для Linux и TAVRASM.EXE для Windows / DOS (работает под WINDOWS XP в ДОСовском окне), программа разрабатывалась когда-то для замены ДОСовского ассемблера Atmel. Поскольку чистого DOS в настоящий момент на компе нет, и DOSEMU тоже нет, то и проверить под ДОС не было возможности. Компиляция проекта под Windows/DOS производилась с помощью DJGPP (Windows/DOS GCC). Пришлось подкорректировать MAKEFILE - вместо lstd++ надо было писать lstdxx, так как и g++ под DJGPP называется gxx). Компиляция под UBUNTU Linux прошла без особых происшествий, кроме того, что понадобилась установка программ bison, flex

Для тех, кто пользуется AVR Studio (Windows), AVR-GCC (Linux, Windows) или AVRA (Linux), применение других программ, тем более неизвестных, может быть под вопросом.

Запуск ассемблера TAVRASM под Линукс, так как он в системе не установлен:
./tavrasm -h wash-projekt.asm -o wash-projekt.hex -r wash-projekt.eep -e wash-projekt.lst
Сам ассемблер просто копируется в папку с вашим проектом).
Какие девайсы он знает, можно узнать так :
./tavrasm -d

Запуск ДОСовской версии:
tavrasm -h wash-projekt.asm -o wash-projekt.hex -r wash-projekt.eep -e wash-projekt.lst
При запуске программы без аргумента выдаётся справка помощи. В файле devices.txt - список поддерхиваемых контроллеров. Этот список конечно, покороче, чем в AVR Studio, AVR-GCC, AVRA, но при наличии исходника, знаний С/С++, AVR контроллеров и, самое главное, желания, можно расширить список поддерживаемых контроллеров.

Может быть, что при наличии AVR Studio или AVR-GCC применение TAVRASM и не актуально, но эту программу всегда можно взять с собой и использовать на самом слабосильном компе (не забыв прихватить соответствующие вашему AVR-девайсу include файлы, они не приложены). У кого есть Apple Mac (Intel) - может попробовать откомпилировать программу под эту платформу (для AppleMac PPC программа портирована в 2009-м и её можно найти в сети)

DL7PGA
19.06.2011, 23:51
В ZIP архиве имеется "лишний" файл - TAVRASM.EX_ - это тот же TAVRASM.EXE, но скомпилированный несколькими днями раньше. Размер архива без этого файла должен быть 270 кб.

DL7PGA
20.06.2011, 01:21
Загрузил новый ZIP файл, в котором в папке src - исходники программы и makefile для компиляции программы с использованием gcc, "tavrasm-lin" - версия программы для Линукса, "tavrasm-ppc" версия программы для Mac OS X PPC (в этой компиляции отсутствует поддержка для ATТINY12, скачать можно и здесь http://avr.bruger.mine.nu/ ), "tavrasm.exe" - версия программы для Windows / DOS

DL7PGA
23.06.2011, 13:06
Интересно, почему-то скачивается только архив из первого поста, а не актуализированный архив двумя постами ниже :hi:

DL7PGA
25.06.2011, 20:17
:ok: Продолжу сольное выступление . Для AVR контроллеров имеется ещё один ассемблер - AVRA. Его можно установить под Линуксом apt-get install avra - но есть одно маленькое но! - скачивается и устанавливается не актуальная версия 1.3.0, а предыдущая 1.2.3. Скачал с сайта http://avra.sourceforge.net программный пакет исходников для компиляции программы. Получилось, не сразу, но получилось. Надо было всего лишь скопировать нужный Makefile в папку src. Перенеся файлы в папку DJGPP под Windows и запустив make - получил сразу два исполняемых файла - avra и avra.exe одинаковго размера (?). Запустил avra.exe без аргумента, почитал справку. Прога работает в ДОСовском окне Windows XP. "Знает" гораздо больше контроллеров, чем TAVRASM, все include файлы находятся в архиве. Если кто знает эту программу, но только под Линуксом, можете опробовать и ДОСовскую версию. В архиве avra-1.3.0.zip - исходники и дока программы, в архиве avra-exe.zip - откомпилированные программы.

DL7PGA
26.06.2011, 00:08
Небольшой примерчик или вопрос на засыпку... В архиве исходники электронного ключа на ATMEGA8 - разработанного Буркхардом Йоном (Burkhard John, DK5JG, SK). Компиляция ассемблером TAVRASM - no errors, no warnings. Единственный мне известный экземпляр - авторский - работает, значит софт рабочий (в архиве есть HEX, EEP, LST файлы автора, компиляция апрель 2004, m8def.inc модифицирован). Попытался откомпилировать этот же проект ассемблером AVRA 1.2.3 - несколько ошибок. Точка. С AVR Studio - ошибки, но другие.

DL7PGA
27.06.2011, 00:33
AVRA 1.3.0 поддерживает 48 типов контроллеров, предыдущая версия 1.2.3 - только 39.

UA3MQJ
27.06.2011, 08:21
Пробовал компилировать, тоже масса ошибок. Но это лигично. Если си стандартизирован, то в ассемблерах это сложнее. К тому же может быть разница по всяким управляющим словам или какой-нибудь условной компиляции. Поэтому полностью перенести с ходу не всегда получается.
Даже видел одну разработку простую в виде звонка в дверь. Так автор сам адаптировал исходные коды под разные компиляторы. Это мне говорит о том, что не все так просто.

А так вообще спасибо, конечно. Приятно пользоваться открытыми продуктами, к тому же переносимыми. Если разрабатываешь что-то, то можно сразу к исходным текстам и этот компилятор приложить, чтобы вносить коррективы по месту. Уначе требуется ставить специальные приложения... Если пишу на ассемблере, то обычно пользуюсь avrasm который идет в комплекте к Proteus

RN9RQ
27.06.2011, 08:40
А может заняться FORT?

DL7PGA
27.06.2011, 22:04
Если пишу на ассемблере, то обычно пользуюсь avrasm который идет в комплекте к Proteus
Я эту программу не знаю. Небесплатная наверное. А avrasm можно запустить с командной строки независимо от основного пакета?

Я вот ищу программу PROTEL - но старую, примерно 1987-90, для ДОС. Есть кое-какие схемы и печатки, выполненные в PROTEL'e (тоже наследство от DK5JG, SK). Упомянутый электронный ключ на ATMEGA-8 делался уже позже, схема и печатка в формате EAGLE имеются, тут проблем нет. Но вот со старыми вещами - никак.

DL7PGA
01.07.2011, 21:45
Подолью-ка я маслица в огонь :) На страничке -
http://www.jan-grosser.de/basteleien/40-mikrocontroller/256-probleme-mit-include-dateien-bei-avra
человек по имени Ян Гроссер описывает проблемы компиляции программ ассемблером AVRA - и спрашивает (на чистом немецком языке) - почему это программа с "неправильными" include файлами на-гора выдаётся.Оказалось, что AVRA не только гораздо строже, чем ассемблер от Atmel, но и не переносит строчки с директивой #pragma в include файлах. Чтобы заполучить "правильные", НЕpragmaТИЧЕСКИЕ файлы разом (от атмелевского ассемблера 1), автор статьи просто предлагает ссылку на скачивание этих файлов на той же страничке|, ниже статьи, 175 кб

http://www.jan-grosser.de/attachments/256_avrass-incs.zip


Пробовал компилировать, тоже масса ошибок.
Возможно тут и была собака зарыта. Ассемблер TAVRASM, похоже, игнорирует директиву #pragma, поэтому ошибок и нет. В приведённом выше примере на ATMEGA8 нужно было только "выключить" ;.equ OR=3 в m8def.inc, и программа откомпилировалась без ошибок (см. файл LST), Я конечно сильно упростил.

DL7PGA
03.07.2011, 13:49
Испытания avra.exe версии 1.3.0 на консоли от Windows XP:
1. Запустил CMD, так как при запуске DOS (COMMAND) нельзя перейти в какую-либо папку с названием типа "Свои Документы" или как она там называется по-русски, по-немецки "Eigene Dateien" - DOS не знает пробелов в названиях папок или файлов
2. Поместил файл avra.exe в папку с AVR проектом
3. Запустил компиляцию: avra -l projekt.lst projekt.asm , опция -l нужна для получения листинга, так как все остальные файлы - .COF, .HEX, .OBJ создаются автоматически, кроме того AVRA пишет вместо обычного .ЕЕР файла файл с расширением .ЕЕР.НЕХ
4. Попробовал откомпилировать под другой контроллер - вместо исходного AT90S8515 взял сначала ATMEGA8515 (несколько изменилось сообщение об адресации), а потом ATMEGA162, соответственно изменив данные о размере флэш и рам памяти. Всё прошло на ОК!, не считая 4 предупреждений о передекларации регистров. Почему были выбраны такие контроллеры? Да из-за одинаковой распиновки :)

Под projektом подразумевался "Macrobug" от DK5JG (SK) - электронный ключ со встроенным тренером азбуки морзе.
http://home.arcor.de/burkhard-john/macrobug/microbug.html
Компиляция с предыдущей версией AVRA 1.2.3 не удалась, программа жаловалась, что полученный код не помещается в память процессора AT90S8515 (?)

Теперь осталось опробовать программу под "чистым" DOS (ну, под Windows 98, в крайнем случае) или FreeDOS (наследница Novell DOS 7, DR-DOS 6)

Добавлено через 42 минуты
И ещё один AVR ассемблер
http://www.avr-asm-tutorial.net/gavrasm/index_en.html
Но мне с ним как-то не повезло. Может быть с новой версией получится... Совместимость с ассемблером фирмы Атмел декларируется, так же, как и в случае с программой AVRA, но далеко всегда выполняется обещанное

DL7PGA
03.07.2011, 22:26
GAVRASM. В приложении список поддерживаемых контроллеров. Написал автору, так как этот ассемблер не компилирует ни один из проектов. Всегда одна и та же ошибка, причём всегда на одном и том же месте:

gavrasm Gerd's AVR assembler version 2.9 (C)2011 by DG4FAC
----------------------------------------------------------
Source file: macrobug.asm
Hex file: macrobug.hex
Eeprom file: macrobug.eep
Compiled: 03.07.2011, 20:21:30
Pass: 1
Error ==> .device AT90S8515
[macrobug.asm,13] 095: Definition of symbols failed!
Compilation aborted, 1 errors!

Эта программа не нуждается в def.inc файлах, всё встроено. Если вообще убрать .device , то компиляция проходит без ошибок :)

DL7PGA
16.07.2011, 01:57
Продолжу о ассемблере GAVRASM - ответ автора разработки Герхарда Шмидта ( Gerd, DG4FAC):

"Поведение объясняется такой фичей gavrasm'a, которую другие ассемблеры вовсе не имеют: gavrasm знает все символы всех AVR-процессоров и обрабатывает их уже при спецификации типа - .device. Авторы софта по-старинке определяют символы ещё раз "вручную". Поскольку они уже определены директивой .device, то это даёт сообщение об ошибке,

Если Вы всё-таки хотите откомпилировать эту программу, то выключите эту фичу gavrasm'a, например так:

gavrasm -xseb macrobug.asm

и всё откомпилируется нормально, так как все встроенные в gavrasm def.inc не будут использованы"

Кроме того имеются другие фичи. В приложенном файле, oт автора, имеются все инструкции контроллеров AVR, но только gavrasm может откомпилировать этот файл (опробовано с tavrasm, avra и ассемблером от AVR Studio), если конечно поставить коммент перед break.

Попробовал ввести в файл .device ATMEGA8515, после чего программа выдаёт 7 ошибок - инструкции, не поддерживаемые контроллером, для контроллера AT90S1200 их аж 17.

DL7PGA
16.07.2011, 02:30
Продолжение, "вчерашний" пост не редактируется:

Выводы тестирования различных ассемблеров:
tavrasm 1.22 - хорош своей компактностью, но имеет ограниченное число поддерживаемых контроллеров - 34

avra 1.3.0 - поддерживает 48 контроллеров, близок к ассемблеру AVR Studio, но последний поддерживает все! AVR контроллеры

gavrasm 2.9 - поддерживает 178 контроллеров, имеет фичи, которых не имеют другие ассемблеры, но если применять все эти фичи, то получится несовместимый с другими ассемблерами код, о чём автор предупреждает.

Программа свободная, имеются исходники для FreePascal под различные операционные системы, языки - немецкий, английский, французский, по ссылке http://www.avr-asm-tutorial.net/gavrasm/index_en.html можно скачать как исходники, так и откомпилированную прогу для Linux, DOS (DPMI) , Windows.

На этом пока всё. Программы опробовались как на командной строке, так и из программы Geany (свободная лёгкая IDE) под Linux и Windows (GTK2). Для Geany имеется файл цветовой поддержки с корректурами для применения с ассемблерами avra и gavrasm (источник - http://elektronik-projekt.de - это форум на немецком

DL7PGA
16.07.2011, 12:19
Я линуксоид начинающий (примерно с октября прошлого года), и мне подсказали на форуме elektronik-projekt.de как можно запускать под линуксом готовые откомпилированные программы, которые невозможно иным путём установить в систему:
в папке home создаём папку bin и копируем туда наш исполняемый файл, возможно понадобится сделать его исполняемым, я это проделал таким образом chmod 1777 tavrasm ( или avra, gavrasm). Перезапускаемся. После этого программу можно запустить из любого места, с командной строки или из под IDE Geany

DL7PGA
04.08.2011, 08:44
Продолжим? Вышла новая версия 3.0 ассемблера gavrasm
http://www.avr-asm-tutorial.net/gavrasm/index_en.html
Поддерживает 191 контроллер, новые инструкции. Устранён найденный мной баг - программа версии 2.9 выдавала ошибку, если на строчке стоял хотя бы один пробел или табулятор, но никаких комманд

DL7PGA
07.08.2011, 13:12
После тестирования новой версии оказалось, что лучше пока оставаться при версии gavrasm 2.9 - что-то не то с новой версией - компиляция старых проектов новой версией ассемблера выдаёт море ошибок, хотя старая версия 2.9 проделывала это без единой ошибки. Написал автору Герхарду, DG4FAC и послал ему файл .err для анализа. Опробование проводилось только с версией для DOS/Windows, так как версия для Линукса вообще не запускается - это 64-битная компиляция, а у меня Линукс 32-битный. Если у кого-то есть 64-битный Линукс, может попробовать

DL7PGA
09.08.2011, 01:14
Ошибки в gavrasm версии 3.0 автором уже устранены, всё работает. Внимание тем, кто скачает версию для Линукса - это 64-битная программа и работает только под 64-битным Линуксом. Установил Ubuntu 11.04 64-бит (x86_64), после чего установил Freepascal 2.4.2, тоже 64-битный. Откомпилировал gavrasm по-новой, работает.

Ищу и читаю информацию в интернете о том, как запускать 32-битные программы под 64-битным Линуксом. А пока читал, да искал, откомпилировал tavrasm 1.22 и avra 1.3.0 под 64-битный Линукс. Все программы работают и запускаются из под IDE Geany - там можно любой компайлер пристроить, есть конфигурационные файлы под многие языки программирования, программа автоматически определяет тип и загружает соответствующую конфигурацию. Загружаю, к примеру, исходник ассемблера gavrasm.pas - пожалуйста, в конфигурации указан компайлер fpc - Freepascal

Так что, есть ассемблер для AVR под 64-битным Линуксом, бери и пользуйся.
http://www.avr-asm-tutorial.net/gavrasm/index_en.html

DL7PGA
10.08.2011, 02:00
Ну, а теперь в аттачах ассемблеры tavrasm 1.22, avra 1.3.0 и gavrasm 3.0 для 64-битного Линукса, последняя компиляция. Может кто попробует и напишет, что получилось? С какими опциями запускаются эти программы я уже писал раньше. Может быть тему закрыть?

DL7PGA
10.08.2011, 19:39
for i386 machines...
.EXIT

DL7PGA
31.08.2011, 09:01
И всё-таки есть в gavrasme'e 3.0 заковыка, которую автор вроде бы удалил, но она осталась - программа не любит строчек-пробелов, на которых ничего не стоит, лучше всего сделать из них коммент.
Программа поддерживает теперь 191 контроллер. Если на сайте автора не найдёте программу для своей ОСи, скачайте исходники, FreePascal (под свою ОСь) и откомпилируйте программу сами - просто и сердито

DL7PGA
05.09.2011, 13:28
Ещё раз информация для тех, кто захочет сам поэкспериментировать, Где взять вышеуказанные программы:
AVRA 1.30 - http://avra.sourceforge.net/ - следите за инфой, может быть появится новая версия

GAVRASM 3.0 - http://www.avr-asm-tutorial.net/ --->>> http://www.avr-asm-tutorial.net/gavrasm/ , здесь можно подписаться на информацию о новых версиях программы

TAVRASM 1.22 - страничка автора, да и сам автор, уже давно недоступны (2005) и дальнейшая разработка велась другим человеком http://avr.bruger.mine.nu/ , последние изменения датированы 2009-м годом

DL7PGA
09.10.2011, 12:02
Интересно всё-таки, попробовал ли кто-нибудь кроме меня описанные программы?

UA3MQJ
09.10.2011, 15:55
Я не пробовал, хотя мог.
Есть у меня на примете пара простых проектов на ассемблере под AVR на ATTiny2313.
На следующей неделе обязательно что-нибудь да попробую.
Потому что приятно, когда в комплекте с проектом идет не только прошивка, и не только исходный код, но и компилятор, который именно этот код правильно откомпилирует.
ps. интересно, а проект можно откомпилировать под win входящим в состав qt4 компилятором mingw?

DL7PGA
09.10.2011, 17:29
См. выше, там есть все эти ассемблеры и для DOS/Windows, то есть работают и в консоли. GAVRASM не требует наличия def.inc файлов, но может заартачиться при компиляции (размер файла самого GAVRASM порядка 4 мб под Линуксом и 4.4 мб под виндой). AVRA, TAVRASM - def.inc файлы должны находиться в папке с проектом. Когда попробуете, напишете, что и как получилось (или не получилось), и какие ошибки выдали программы, особенно GAVRASM. Последний тест показал, что этот ассемблер ведёт себя по разному с опциями со встроенными def.inc и с извне загружемыми. Как раз с ATtiny2313: если не применять опцию -x (выключает встроенные def.inc) , то всё проходит на ура, если же заставить его использовать def.inc файл (.include "tn2313def.inc", стоит в исходнике независимо от этого) , то ассемблер начинает жаловаться на якобы не имплементированные LD. ADIW. В любом случае надо использовать def.inc файлы без #pragma директив (AVR Studio Assembler 1). Если при компиляции Вашего проекта появятся похожие ошибки, надо писать разработчику программы GAVRASM Герду, DG4FAC. Можете скачать оригинальные файлы и исходники с его сайта http://avr-asm-tutorial.net/gavrasm/ Но для самостоятельного компилирования надо скачть также и программу FreePascal для Вашей ОС

Насчёт MinGW ничего конкретного сказать не могу, но если и там есть GCC, то можно откомпилировать программы TAVRASM и AVRA, используя makefile (я компилировал под Linux 32/64 и DOS/Windows XP с одним и тем же makefile'ом для Linux)

UA3MQJ
10.10.2011, 20:41
Как и обещал - небольшие тесты.

Делал небольшой DDS генератор заданной частоты с аккумулятором 32 бита. И выходами F, F/2, F/4, F/8, F/16, F/32, F/64, F/128, F/256, F/512. Рабочий цикл выполняется 10 тактов, поэтому дискретизация Fosc/10, то есть при 16 МГц получается 1600 КГц. Применение не очень радиолюбительское - генераторы основных нот музыкальной шкалы, то есть одна нота 10-ти октав. Исходный код synth_gen.asm


Так же попробовал откомпилировать проект http://ew6gb.at.tut.by/mini_dds.html DDS синтезатор на 137 КГц (на базе этого проекта как раз и делал synth_gen.asm).

скачал http://ew6gb.at.tut.by/FILES/dds_137.asm

компилируем gavrasm.exe dds_137.asm

получаем две ошибки:
64: .include <tn2313def.inc>
Error ==> .include <tn2313def.inc>
[dds_137.asm,64] 036: Include file (<TN2313DEF.INC>) not found!

Error ==>
[dds_137.asm,257] 079: Line not starting with a label, a directive or a separator!

Соответственно первое меняем:
.include <tn2313def.inc>
на
.device ATtiny2313

а 257-я строка это пустая строка. Компилируем. Все нормально!!!

Благодарствую за удобный инструмент! До этого по привычке использовал ассемблер, входящий в состав Proteus 7 который идентифицирует себя, как AVR macro assembler 2.1.14 к которому никак не удавалось "прикрутить" inc файлы, потому все определения я переписывал в коде.

DL7PGA
12.10.2011, 00:13
gavrasm вызывается под DOS/Windows без расширения exe, так как command (DOS) или cmd (NT/XP) автоматически определяют файл как исполняемую программу:

gavrasm -seb dds_137 (при таком вызове программы получаем подробные комменты при ошибках), стандартный вызов:
gavrasm dds_137

gavrasm также автоматически определяет расширение файлов ассемблера asm

при вызове:
gavrasm -xseb dds_137 программа не использует встроенные def.inc , а использует внешний файл tn2313def.inc,
.include "tn2313def.inc" - кавычки не забудьте, иначе файл не будет найден, даже если лежит под ногами, похоже, что так оно и вышло. Или надо указать полный путь к нему, но кому это охота делать.

Что касается ошибки "079: Line not starting with a label, a directive or a separator!", то этот баг разработчик полностью устранить не мог, а просто сослался на давнее правило в ассемблере, что строчки, не содержащие комманд, должны быть комментом - ";" Если появляется такая ошибка, то в этой строке имеются пробелы или табуляторы (их не видно, их видит редактор PN из WinAVR), но нет кооманд. Я использую следующий трюк - стираю эту строчку и нажатием "enter" ввожу снова - ошибка исчезает. Тоже самое касается внешних def.inc файлов - тогда gavrasm указывает строчки с такими же ошибками, если их устранить по описанной мной методе, всё становится ОК!

Где-то читал, упомянутый ассемблер от Атмела "не переваривает" .device или .include с указанием девайса, контроллер ему "подаётся" иначе, через makefile.

Скачал dds_137.asm , подкинул ему tn2313def.inc, устранил <> и заменил на " ", а также поправил строчку 257 - всё ок!
Попробовал программу avra.exe :
avra -l dds_137.lst dds_137.asm , тоже всё ок, к тому же программа создала eep.hex файл, который вроде бы не нужен. И, чтобы весь def.inc файл не записывался в листинг, сделал так:
.nolist
.include "tn2313def.inc"
.list

Загрузил все компилаты, tavrasm нашёл две ошибки в tn2313def.inc :
.equ Z =1
и
.equ OR = 3
; коммент и всё прошло. В последнем архиве приложен такой модифицированный def.inc. так как EEP ничего не содержит, tavrasm этот файл стирает.

Уф! Надеюсь, поможет.

DL7PGA
15.10.2011, 13:17
Вижу, что темой народ интересуется, больше 2500 просмотров, но было бы интересно для всех узнать каковы результаты тестирования с различными контроллерами из списка поддерживаемых этими программами, может кто ещё пробовал и нашёл баг или наступил на грабли, как это принято называть? Пока UA3MQJ единственный, написавший результаты теста :) Спасибо!

UA3MQJ
15.10.2011, 15:39
было бы интересно для всех узнать каковы результаты тестирования с различными контроллерами из списка поддерживаемых этими программами
Как только матчасть подтяну и попробую на большой машине всю математику - буду еще пробовать Mega8 и ее операции аппаратного умножения, на ассемблере, естественно. Но нужно немного подождать.

DL7PGA
13.11.2011, 23:55
Откомпилировал по-новой tavrasm для 32-битового линукса - с опцией минимизации размера (опция 0s в makefile). размер исполняемого файла всего 101 кб. В архиве исходники, makefile и файл самого ассемблера tavrasm. При запуске без аргумента программа показываетт версию 1.22.2011 и дату последней компиляции, а также все опции программы (помощь).

DL7PGA
18.12.2011, 21:34
http://dev.frozeneskimo.com/software_projects/vavrdisasm - дизассемблер для AVR HEX файлов. Опробовал - полученный ASM файл можно снова откомпилировать (отассемблировать) , но только программой GAVRASM, TAVRASM и AVRA этого не смогли. GAVRASM жалуется, правда, на отсутствие декларации контроллера, но своё дело делает. Теперь попробую откомпилировать этот дизассемблер под DOS/Windows и выложить здесь. Программа свободная. Автор - Ваня Сергеев http://dev.frozeneskimo.com/

DL7PGA
19.12.2011, 02:50
Попытался откомпилировать дизассемлер VAVRDISASM под Windows - не получилось. Надо думать или писать разработчику

DL7PGA
24.12.2011, 20:06
Вышла новая версия AVR ассемблера GAVRASM http://www.avr-asm-tutorial.net/gavrasm/index_en.html . Устранены некоторые баги, появлявшиеся при ассемблировании программ без использования встроенных def.inc файлов ( gavrasm -xseb program.asm , например), специфичных для определённых типов контроллеров.
Внимание! На страничке автора (английской) под ссылкой Linux (i386) на самом деле версия для 64-битового Линукса. 32-битовая версия для линукса в аттаче. Кроме того gavrasm игнорирует теперь C-style строчки ( #pragma...) в include файлах, используемых в Atmel Studio Assembler 2
Добавлена поддержка для некоторых Xmega контроллеров.

Размер распакованного файла порядка 5 мегабайт
devices.txt - список поддерживаемых контроллеров

DL7PGA
24.12.2011, 21:04
GASVRASM : добавлена поддержка для 5 новых ATxmega контроллеров - эта инфа есть на немецкой страничке автора

готовые скомпилированные версии для DOS и WINDOWS можно скачать со странички автора, либо скачать исходник и FreePascal для соответствующей ОСи и скомпилировать программу GAVRASM самостоятельно

DL7PGA
14.01.2012, 00:25
Вышла новая версия программы Free Pascal 2.6.0 (предыдущая - 2.4.4). При компиляции программы GAVRASM под Windows XP SP3 неожиданно заявил о себе антивирусник AVIRA - нашёл трояна в только что скомпилированном файле gavrasm.exe, вирус удалил. Проверка системы показала, что всё чисто. Снёс FreePascal 2.6.0 и установил снова старую версию 2.4.4. При компиляции программы GAVRASM - никаких тревожных звонков. Написал разработчику программы GAVRASM и описал ему эту драму, пока ответа не было, но он отвечает на письма, хоть и с большой задержкой. Так что, если кто возьмётся самостоятельно компилировать GAVRASM под виндой, не скачивайте последнюю версию компилятора

DL7PGA
14.01.2012, 20:33
Приключения продолжаются...

Переустановил линукс, но из-за графики взял диск с LinuxMint 12-1 из журнала LinuxUser (графика nVidia Gforce 8400 GS не пошла под Линксом, пришлось вернуться к встроенной на борту). По недосмотру установил вместо 32-битовой 64-битовую версию - диск-то двухсторонний. Попробовал запуск программ GAVRASM, AVRA и TAVRASM под 64-битовым Линуском. Как ни странно, 32-битовые компилаты GAVRASM и AVRA заработали, а TAVRASM прикинулся невидимкой и на запускается. Попробовал откомпилировать TAVRASM по-новой, но, несмотря на установку дополнительных программ bison, flex, компиляция не получилась

RU3KR
25.01.2012, 16:50
Стоит ли тут задавать вопросы в проблеме PonyProg под W7 ?
Не запускается совсем.Поставил виртуальный бокс,на него XP там все запустилось,COM 1 активировался .... но при чтении данных микросхемы все виснет и вылетает система XP.
Может что то посоветуете для прошивки Atmega16 ?

DL7PGA
26.01.2012, 00:27
Попробуйте программу Burn-o-mat http://www.brischalle.de/avr8_burn-o-mat_avrdude_gui/avr8_burn_o_mat_avrdude_gui_en.html - графический интерфейс для программы avrdude, при этом нужно сначала установить Яву, там описано.
AVRDUDE устанавливается с WinAVR , нужно взять AVRDUDE.EXE и AVRDUDE.CONF файлы, впрочем, Burn-O-Mat сам показывает путь к проге, если она установлена в папку по умолчанию. Это я пересказываю найденное в интернете.

RU3KR
26.01.2012, 09:28
AVRDUDE устанавливается с WinAVR , нужно взять AVRDUDE.EXE и AVRDUDE.CONF файлы, впрочем, Burn-O-Mat сам показывает путь к проге, если она установлена в папку по умолчанию.
Все поставил.А где эти файлы взять?Надо отдельно в интернете их поискать?В установленной проге и ее папках ,по умолчанию,ничего не обнаружил такого.
При запуске программы пишет C:\WinAVR\bin\avrdude.exe и C:\WinAVR\bin\avrdude.conf ,но по такому пути нет ничего после установки.
Может я что то не так понял или не так поставил? В интернете посмотрел...толком не нашел описания этого

DL7PGA
26.01.2012, 10:10
При запуске программы пишет C:\WinAVR\bin\avrdude.exe и C:\WinAVR\bin\avrdude.conf ,но по такому пути нет ничего после установки.
Может я что то не так понял или не так поставил? В интернете посмотрел...толком не нашел описания этого
WinAVR устанавливается по умолчанию в C:\WinAVR , если при установке не была выбрана другая папка (например, C:\Program\WinAVR\). Установлен ли WinAVR? Если да, то все .exe файлы находятся в C:\WinAVR\bin\ , avrdude.exe и avrdude.conf тоже. К сожалению у меня в настоящий момент не установлен WinAVR, а то бы подсказал точнее. Если WinAVR устанавливается до установки AVR Studio, то Студия может использовать AVRDUDE из WinAVR.

RU3KR
26.01.2012, 10:27
Ничего подобного не вышло при установке по умолчанию
отдельно скачал avrdude
Там есть эта папка.Указал к ней путь и теперь пытаюсь дальше разобраться с программой.
Особо нет сложности в ней,но вот у меня программатор по выложенной тут схеме. Под ХР он прошивал данную микросхему через СОМ1 ,тут пока не получается верификация и не читает данные из нее
Сам СОМ порт работает ,шил через него радиостанции.
Вот только не знаю....как назвать этот программатор
Или же он не пойдет для работы?

DL7PGA
03.02.2012, 01:53
По всей видимости необходима установка драйвера giveio.sys для получения возможности напрямик использовать порты принтера или последовательные
http://home.snafu.de/mgrafe/treiber_en.htm см. Download page

или здесь

http://www.cs.ucr.edu/~eblock/pages/pictools/giveio.html

RU3KR
03.02.2012, 09:29
А разве не напрямую последовательный порт используется?Он определяется как COM1 везде.
Ведь другие программы ( для прошивки радиостанций...несколько десятков icom были прошиты через него без проблем ) видят нормально,даже в виртуальном боксе на ХР там все ровно определяется вроде бы
Попробовал собрать на FT2232 от USB
Вроде бы и драйвер нормально стал.Определился как двухканальный (что и есть на самом деле по описанию...стал на COM3 , COM4 ) но так и не смог найти чем шить Atmeg8 и Atmeg16 . Много перевернул информации,но не ХР ,не W7 не стали видеть саму микросхему для прошивки.Постоянно выпадают какие то ошибки.
Как можно протестировать программатор? Как можно посмотреть что творится у него на выходе?

Ведь не каждый то программист)))))
Мне вот как то не особо есть такая необходимость разгребать всю информацию " в яме интернета".
Тем более что все идет по каким то кругам и в большинстве топчется на месте.
Не хотел создавать другой ветки.
Просто по возможности хотелось бы разобраться с простыми вариантами работы под Windows . Т.к. программы используются для не частой прошивки и как бы много времени убить на это не представляется возможным.

DL7PGA
03.02.2012, 09:54
Даже если порты под ХР видны, это не означает, что программы могут их использовать напрямик, как это было возможно под DOS или под W95/98/ME. Для FT232 и подобных тоже имеется специальный драйвер, на сайте производителя вроде бы. Всё это, вообще-то, материал для другой ветки. Насчёт тестирования программатора - тут я пас.

А под Linux не пробовали? Ubuntu можно, например, установить под Windows как обычное приложение (на диске имеется файл wubi.exe - это и есть установщик под виндой), и также удалить - при старте компьютера имеется возможность запустить Linux или Windows. Но это уводит нас далеко от темы

RU3KR
03.02.2012, 12:29
А можно тут подробнее?
Раз в жизни только к линуксу подходил...просто поинтересоваться что это.
Дома,на компе,уж и так две винды стоят.Что то нет желания особо его заваливать всем.
Для этого и стал задавать вопросы.
Уж много сайтов смотрел,там то пишут про многое под виндовс ,но ответа реального не видел только предположения ...что где то как то может заработает
Много информации ,но абсолютно пустой.Такое ощущение...просто набивают себе рейтинг сообщений и не отвечают толком ничего

DL7PGA
03.02.2012, 21:34
Попробуйте драйвер изготовителя чипа http://www.ftdichip.com/Drivers/VCP.htm - может быть получится (для 32-бит и 64-бит Windоws).
***********************************************************
Что касается Ubuntu (или LinuxMint 12.1, который собран на базе Ubuntu и который у меня сейчас на компе), то его можно ставить как на свою часть диска, так и под Windows, при этом на диске создаётся файл размером 15-16 гигабайт, как бы виртуальный диск, на который и ставится Ubuntu / LinuxMint. При запуске просто выбирается нужная ОСь, в этом конкретном случае по умолчанию запускается Windows. Если на борту нет экстремально экзотического железа, то драйвера устанавливаются автоматически и всё работает нормально. После этого можно установить нужный для работы (=программирования) софт. С/С++ Compiler GCC всегда под рукой, компайлер для AVR (avr-gcc) можно доустановить позже, так же как Avr Ассемблер AVRA, лёгкую IDE Geany, AVRDUDE, Burn-O-Matт, и много чего другого - главное, наличие скоростного (безлимитного) инета, так как ОСь регулярно обновляется. В апреле выйдет, вероятно, новая версия Ubuntu и LinuxMint. Я сам начал работать с линуксом примерно с октября-ноября 2010. Толчком к этому послужила, как это ни странно, смерть Буркхарда, DK5JG, который занимался программированием AVR контроллеров с самого начала их появления. После него остались программы для AVR, написанные им, в том числе несколько телеграфных ключей различной сложности. И всё это он программировал "вручную", на ассемблере, детально комментируя почти каждую строчку - исключительно под Линуксом, Windows у него был на одном из компьютеров так, на всякий случай. Но в деле программирования мне до него как до Луны, просто захотелось вчитаться и осмыслить написанный им код, тысячи и тысячи строчек. Я тут впадаю постепенно во флуд. Наметил сделать один из компьютеров чисто технической станцией, с постоянно подключенным программатором (или двумя, для AVR и PIC). Использую Windows XP, на "семёрку" пока не пересаживаюсь. Почитал я несколько немецких форумов, где обговаривается проблема использования программаторов под Вин7 - у одного идёт, у других не идёт, предлагаются различные решения, которые в свою очередь также не у всех работают. Примение дравера giveio.sys с загрузчиком - это один из путей, причём не самый новый, так как драйвер этот существует уже с 1996-го года, когда выплыли проблемы прямого обращения к портам под Windows NT, позже под ХР. По отзывам в инете этот драйвер работает успешно.

RU3KR
04.02.2012, 13:14
Как правильно запускать из командной строки?...под линукс и ХР
Как правильно добавить туда файл прошивки?
Как правильно прописать там fuse ?

DL7PGA
04.02.2012, 15:00
Как правильно запускать из командной строки?...под линукс и ХР
Как правильно добавить туда файл прошивки?
Как правильно прописать там fuse ?

Запускать - что? AVRDUDE?

Ответ на последний вопрос (для AVRDUDE) можно найти здесь
http://www.engbedded.com/fusecalc/ - выбирается тип контроллера, потом необходимые параметры фьюзов и калькулятор выдаёт параметры, с которыми запускается AVRDUDE для прожига фьюзов.

http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/avrdude_tutorial - к сожалению туториал только на немецком, но наверняка есть и на русском, если поискать (попробуйте перевести страничку Гуглем или Translate.ru на русский или английсий). См. раздел "Parameter" - все параметры вызова программы в таблице

А я пока попробую WinAVR - http://sourceforge.net/projects/winavr/files/WinAVR/20100110/ - имеется только для Win32...

Попробовал, по умолчанию программа ставится в папку C:\WinAVR-20100110\, а в папке C:\WinAVR-20100110\bin - находятся файлы avrdude.exe и avrdude.conf
Кстати, там же есть и драйвер giveio.sys c файлом установки install_giveio.bat

Добавлено через 37 минут

Как правильно запускать из командной строки?...под линукс и ХР
Как правильно добавить туда файл прошивки?
Как правильно прописать там fuse ?
http://download.savannah.gnu.org/releases/avrdude/ - самая новая версия AVRDUDE - 5.11.1, там же есть и дока к программе avrdude-doc-5.11.1.pdf, см. стр. 32 и 33 - использование последовательного и параллельного интерфейсов

zzzMariKzzz
24.02.2012, 19:04
Опробовал Tavrasm скомпиленый под х64 линукс - отлично работает. def файл подкличаю в исходнике: .include "/home/marik/2313def.inc"
Огромное спасибо за Ваш труд!

DL7PGA
24.02.2012, 22:43
Опробовал Tavrasm скомпиленый под х64 линукс - отлично работает. def файл подкличаю в исходнике: .include "/home/marik/2313def.inc"
Огромное спасибо за Ваш труд!
Переходите на gavrasm, он гораздо больше может (на сайте автора для Линукса имеется как раз 64-битный компилат), а tavrasm хорош для AVR Classic = AT90SXXXX. Мне-то за что спасибо? Тому, кто программу разработал и тому, кто её доработал, а я всего лишь экспериментировал с компиляцией.

А не пробовали вместо .include "... 2313def.inc"
так декларировать девайс: .device AT90S2313 ?

DL7PGA
04.03.2012, 00:28
Обнаружил, что программа tavrasm "не знает" ATtiny26, а только ATtiny26L, который мне неизвестен. Подправил device.hh и avrasm.hh, откомпилировал программу по-новой, Linux 64 bit. Если кому надо 32-битную версию для Линукса, просто откомпилируйте программу сами, исходник, откомпилированная для 64 бит прога и список поддерживаемых контроллеров прилагаются.

Да, напоминаю ещё раз, как вызывается прога в терминале:
tavrasm64 -h projekt.asm -o projekt.hex -r projekt.eep -e projekt.lst
Если EEPROM не используется, то -r projekt.eep можно не писать. Впрочем, если "забудете", то пустой файл projekt.eep стирается ассемблером после компиляции.

DL7PGA
29.06.2012, 00:51
http://www.avr-asm-tutorial.net/gavrasm/index_en.html
GAVRASM 3.3 released

DL7PGA
14.09.2012, 02:41
http://narod.ru/disk/49813535001.fdc29882262b38690f8f81ec36d6191d/avr-assembler.zip.html - собранные в кучу avr-ассемблеры, описанные ранее, примерно 4 Мб. Только gavrasm предпоследней версии.

DL7PGA
27.09.2012, 09:13
Продолжим. Нашёл в сети ещё один ассемблер, TPASM. Его можно применять для AVR, PIC, 68HC11, Z80 и ещё для некоторых контроллеров (см. доки). Компиляция для Linux 32bit (LinuxMint 13 Maya) и исходники в архиве. Компиляция прошла без проблем. Сразу же опробовал на приложенном в архиве файле avrtest.asm (samples)

вызов программы:

tpasm -P avr avrtest.asm -o intel avrtest.hex -l avrtest.lst

неясно только, будет ли генерироваться файл ЕЕР - для него нет опции, если есть .ESEG

где Р = выбор платформы, в этом случае AVR, исходник, выходной файл и его формат, листинг

Попытка отассемблировать файл другим ассемблером не удалась. Преполагаю, что этот ассемблер работает как ассемблер as в gcc-avr

DL7PGA
16.10.2012, 09:53
Господа-товарищи экспериментаторы! Забудьте про tpasm - синтакс у него настолько отличается, что нужно перелопатить весь исходник, чтобы компиляция получилась. Это можно было видеть уже из построения исходника avrtest.asm. С исходниками для ассемблеров tavrasm/avra/gavrasm/AVR Studio (avrasm) он работать не может.

Попробовал и с исходником для PIC16F84 - самосвал ошибок.

DL7PGA
13.11.2012, 21:48
Заполучил Raspberry Pi (первая версия с 256 МБ рабочей памяти), попробую как-нибудь откомпилировать TAVRASM, AVRA и AVRDUDE на нём, насчёт GAVRASMa ещё неясно, имеется ли Free Pascal для этого процессора. Ради забавы, само собой, иначе где это видано, сидеть за компьютером размером с пачку сигарет и гонять мышку по экрану с диагональю 107 см - нет у меня другого монитора с HDMI :)

DL7PGA
30.05.2014, 16:22
http://yadi.sk/d/9IeZ1KhS3q_Dy новое место жительства архива с ассемблерами

обновлённая командная строка для tavrasm -i wash-projekt.asm -o wash-projekt.hex -r wash-projekt.eep -e wash-projekt.lst
заметьте, что вместо -h теперь стоит -i

DL7PGA
26.06.2014, 01:05
Кто-то спрашивал про MinGW - вот ссылка на компилятор TDM-GCC MinGW Compiler | Free Development software downloads at SourceForge.net (http://sourceforge.net/projects/tdm-gcc/) (32 bit, 64 bit)

Скачал, откомпилировал tavrasm - всё прошло гладко (warnings не в счёт, синтакс в исходнике несколько устарёл), программа работает c командной строки под Windows 7 Pro 32 bit. Командная строка для tavrasm -h wash-projekt.asm -o wash-projekt.hex -r wash-projekt.eep -e wash-projekt.lst
заметьте, что вместо -i теперь снова стоит -h

Есть ещё один MinGW MinGW - Minimalist GNU for Windows | Free Development software downloads at SourceForge.net (http://sourceforge.net/projects/mingw/?source=recommended)

DL7PGA
26.06.2014, 01:44
А вот это - Есть ещё один MinGW - Minimalist GNU for Windows | Free Development software downloads at SourceForge.net - не надо В отличие от первой упомянутой дистрибуции - тёмный лес

DL7PGA
18.01.2021, 01:44
Gerd's AVR Assembler (http://www.avr-asm-tutorial.net/gavrasm/index_en.html) Последняя версия AVR ассемблера GAVRASM 4.9. Компиляция исходника программой Free Pascal вызывала тревогу, если использовался антивирусник Avira