-
19.06.2011, 14:38 #1
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
AVR Assembler TAVRASM
Предлагаю попробовать для большинства совершенно неизвестную программу - 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-м и её можно найти в сети)73! Владимир
-
19.06.2011, 23:51 #2
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
В ZIP архиве имеется "лишний" файл - TAVRASM.EX_ - это тот же TAVRASM.EXE, но скомпилированный несколькими днями раньше. Размер архива без этого файла должен быть 270 кб.
-
20.06.2011, 01:21 #3
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Загрузил новый ZIP файл, в котором в папке src - исходники программы и makefile для компиляции программы с использованием gcc, "tavrasm-lin" - версия программы для Линукса, "tavrasm-ppc" версия программы для Mac OS X PPC (в этой компиляции отсутствует поддержка для ATТINY12, скачать можно и здесь http://avr.bruger.mine.nu/ ), "tavrasm.exe" - версия программы для Windows / DOS
Последний раз редактировалось DL7PGA; 20.06.2011 в 01:40.
73! Владимир
-
23.06.2011, 13:06 #4
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Интересно, почему-то скачивается только архив из первого поста, а не актуализированный архив двумя постами ниже
73! Владимир
-
25.06.2011, 20:17 #5
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
AVR Assembler AVRA
Продолжу сольное выступление . Для 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 - откомпилированные программы.
-
26.06.2011, 00:08 #6
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Небольшой примерчик или вопрос на засыпку... В архиве исходники электронного ключа на ATMEGA8 - разработанного Буркхардом Йоном (Burkhard John, DK5JG, SK). Компиляция ассемблером TAVRASM - no errors, no warnings. Единственный мне известный экземпляр - авторский - работает, значит софт рабочий (в архиве есть HEX, EEP, LST файлы автора, компиляция апрель 2004, m8def.inc модифицирован). Попытался откомпилировать этот же проект ассемблером AVRA 1.2.3 - несколько ошибок. Точка. С AVR Studio - ошибки, но другие.
-
27.06.2011, 00:33 #7
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
AVRA 1.3.0 поддерживает 48 типов контроллеров, предыдущая версия 1.2.3 - только 39.
-
27.06.2011, 08:21 #8
- Регистрация
- 26.02.2006
- Адрес
- Рыбинск, Ярославская обл.
- Возраст
- 42
- Сообщений
- 783
- Поблагодарили
- 157
- Поблагодарил
- 478
Пробовал компилировать, тоже масса ошибок. Но это лигично. Если си стандартизирован, то в ассемблерах это сложнее. К тому же может быть разница по всяким управляющим словам или какой-нибудь условной компиляции. Поэтому полностью перенести с ходу не всегда получается.
Даже видел одну разработку простую в виде звонка в дверь. Так автор сам адаптировал исходные коды под разные компиляторы. Это мне говорит о том, что не все так просто.
А так вообще спасибо, конечно. Приятно пользоваться открытыми продуктами, к тому же переносимыми. Если разрабатываешь что-то, то можно сразу к исходным текстам и этот компилятор приложить, чтобы вносить коррективы по месту. Уначе требуется ставить специальные приложения... Если пишу на ассемблере, то обычно пользуюсь avrasm который идет в комплекте к ProteusС уважением, Алексей. UA3MQJ
-
27.06.2011, 08:40 #9
- Регистрация
- 25.08.2006
- Адрес
- Шадринск, Курганская обл., Россия
- Возраст
- 37
- Сообщений
- 1,866
- Поблагодарили
- 175
- Поблагодарил
- 278
А может заняться FORT?
Для человека с молотком любая проблема кажется гвоздем.
Слава богу, теперь уже БЫВШИЙ член СРР, 73!
-
27.06.2011, 22:04 #10
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Я эту программу не знаю. Небесплатная наверное. А avrasm можно запустить с командной строки независимо от основного пакета?
Я вот ищу программу PROTEL - но старую, примерно 1987-90, для ДОС. Есть кое-какие схемы и печатки, выполненные в PROTEL'e (тоже наследство от DK5JG, SK). Упомянутый электронный ключ на ATMEGA-8 делался уже позже, схема и печатка в формате EAGLE имеются, тут проблем нет. Но вот со старыми вещами - никак.Последний раз редактировалось DL7PGA; 27.06.2011 в 22:12.
-
01.07.2011, 21:45 #11
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Подолью-ка я маслица в огонь На страничке -
http://www.jan-grosser.de/basteleien...teien-bei-avra
человек по имени Ян Гроссер описывает проблемы компиляции программ ассемблером AVRA - и спрашивает (на чистом немецком языке) - почему это программа с "неправильными" include файлами на-гора выдаётся.Оказалось, что AVRA не только гораздо строже, чем ассемблер от Atmel, но и не переносит строчки с директивой #pragma в include файлах. Чтобы заполучить "правильные", НЕpragmaТИЧЕСКИЕ файлы разом (от атмелевского ассемблера 1), автор статьи просто предлагает ссылку на скачивание этих файлов на той же страничке|, ниже статьи, 175 кб
http://www.jan-grosser.de/attachment...vrass-incs.zip
Возможно тут и была собака зарыта. Ассемблер TAVRASM, похоже, игнорирует директиву #pragma, поэтому ошибок и нет. В приведённом выше примере на ATMEGA8 нужно было только "выключить" ;.equ OR=3 в m8def.inc, и программа откомпилировалась без ошибок (см. файл LST), Я конечно сильно упростил.Последний раз редактировалось DL7PGA; 01.07.2011 в 21:57.
-
03.07.2011, 13:49 #12
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Испытания 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/m.../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 в 13:52. Причина: Добавлено сообщение
-
03.07.2011, 22:26 #13
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
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 , то компиляция проходит без ошибок
-
16.07.2011, 01:57 #14
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Продолжу о ассемблере 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:00.
-
16.07.2011, 02:30 #15
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Продолжение, "вчерашний" пост не редактируется:
Выводы тестирования различных ассемблеров:
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 - это форум на немецком
|
Социальные закладки