-
16.07.2011, 12:19 #16
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Я линуксоид начинающий (примерно с октября прошлого года), и мне подсказали на форуме elektronik-projekt.de как можно запускать под линуксом готовые откомпилированные программы, которые невозможно иным путём установить в систему:
в папке home создаём папку bin и копируем туда наш исполняемый файл, возможно понадобится сделать его исполняемым, я это проделал таким образом chmod 1777 tavrasm ( или avra, gavrasm). Перезапускаемся. После этого программу можно запустить из любого места, с командной строки или из под IDE GeanyПоследний раз редактировалось DL7PGA; 16.07.2011 в 12:23.
-
04.08.2011, 08:44 #17
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Продолжим? Вышла новая версия 3.0 ассемблера gavrasm
http://www.avr-asm-tutorial.net/gavrasm/index_en.html
Поддерживает 191 контроллер, новые инструкции. Устранён найденный мной баг - программа версии 2.9 выдавала ошибку, если на строчке стоял хотя бы один пробел или табулятор, но никаких комманд
-
07.08.2011, 13:12 #18
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
После тестирования новой версии оказалось, что лучше пока оставаться при версии gavrasm 2.9 - что-то не то с новой версией - компиляция старых проектов новой версией ассемблера выдаёт море ошибок, хотя старая версия 2.9 проделывала это без единой ошибки. Написал автору Герхарду, DG4FAC и послал ему файл .err для анализа. Опробование проводилось только с версией для DOS/Windows, так как версия для Линукса вообще не запускается - это 64-битная компиляция, а у меня Линукс 32-битный. Если у кого-то есть 64-битный Линукс, может попробовать
-
09.08.2011, 01:14 #19
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Ошибки в 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; 09.08.2011 в 01:21.
73! Владимир
-
10.08.2011, 02:00 #20
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Ну, а теперь в аттачах ассемблеры tavrasm 1.22, avra 1.3.0 и gavrasm 3.0 для 64-битного Линукса, последняя компиляция. Может кто попробует и напишет, что получилось? С какими опциями запускаются эти программы я уже писал раньше. Может быть тему закрыть?
-
10.08.2011, 19:39 #21
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
for i386 machines...
.EXIT
-
31.08.2011, 09:01 #22
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
И всё-таки есть в gavrasme'e 3.0 заковыка, которую автор вроде бы удалил, но она осталась - программа не любит строчек-пробелов, на которых ничего не стоит, лучше всего сделать из них коммент.
Программа поддерживает теперь 191 контроллер. Если на сайте автора не найдёте программу для своей ОСи, скачайте исходники, FreePascal (под свою ОСь) и откомпилируйте программу сами - просто и сердито
-
05.09.2011, 13:28 #23
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Ещё раз информация для тех, кто захочет сам поэкспериментировать, Где взять вышеуказанные программы:
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; 05.09.2011 в 13:31. Причина: очепятки, очепятки
-
09.10.2011, 12:02 #24
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Интересно всё-таки, попробовал ли кто-нибудь кроме меня описанные программы?
-
09.10.2011, 15:55 #25
- Регистрация
- 26.02.2006
- Адрес
- Рыбинск, Ярославская обл.
- Возраст
- 42
- Сообщений
- 783
- Поблагодарили
- 157
- Поблагодарил
- 478
Я не пробовал, хотя мог.
Есть у меня на примете пара простых проектов на ассемблере под AVR на ATTiny2313.
На следующей неделе обязательно что-нибудь да попробую.
Потому что приятно, когда в комплекте с проектом идет не только прошивка, и не только исходный код, но и компилятор, который именно этот код правильно откомпилирует.
ps. интересно, а проект можно откомпилировать под win входящим в состав qt4 компилятором mingw?Последний раз редактировалось UA3MQJ; 09.10.2011 в 16:02.
С уважением, Алексей. UA3MQJ
-
09.10.2011, 17:29 #26
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
См. выше, там есть все эти ассемблеры и для 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)Последний раз редактировалось DL7PGA; 09.10.2011 в 17:38.
73! Владимир
-
10.10.2011, 20:41 #27
- Регистрация
- 26.02.2006
- Адрес
- Рыбинск, Ярославская обл.
- Возраст
- 42
- Сообщений
- 783
- Поблагодарили
- 157
- Поблагодарил
- 478
Как и обещал - небольшие тесты.
Делал небольшой 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 файлы, потому все определения я переписывал в коде.Последний раз редактировалось UA3MQJ; 10.10.2011 в 20:46.
С уважением, Алексей. UA3MQJ
-
12.10.2011, 00:13 #28
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
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 этот файл стирает.
Уф! Надеюсь, поможет.
-
15.10.2011, 13:17 #29
- Регистрация
- 09.08.2003
- Адрес
- Дюссельдорф, Германия
- Возраст
- 71
- Сообщений
- 1,252
- Поблагодарили
- 169
- Поблагодарил
- 52
Вижу, что темой народ интересуется, больше 2500 просмотров, но было бы интересно для всех узнать каковы результаты тестирования с различными контроллерами из списка поддерживаемых этими программами, может кто ещё пробовал и нашёл баг или наступил на грабли, как это принято называть? Пока UA3MQJ единственный, написавший результаты теста Спасибо!
73! Владимир
-
15.10.2011, 15:39 #30
- Регистрация
- 26.02.2006
- Адрес
- Рыбинск, Ярославская обл.
- Возраст
- 42
- Сообщений
- 783
- Поблагодарили
- 157
- Поблагодарил
- 478
Социальные закладки