Easyelectronics.ru

Электроника для всех
Текущее время: 19 сен 2019, 01:12

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: компиляция asm в Linux
СообщениеДобавлено: 13 май 2011, 23:53 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
Заинтересовал тут меня вопрос о средах программирования для МК AVR под Linux. Из поисков в сети понял, что GCC вполне годный компилятор, но для C/C++. И с code::block идёт работа вполне комфортно (чутка попробовал). Однако, так и не понял, как писать и компилировать там asm? Прошу тех кто работает в Linux, отпишитесь, кто что юзает (у кого какой инструментарий, работающий стабильно), кроме AVRStudio 3.8 + WINE.

P.S. да, в сети очень много расписано про эту тему, однако абстрактные теории как-то надоели, хочется немного конкретики.
Спасибо за просветление.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 13 май 2011, 23:58 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Geany + avra + avrdude.
Одной кнопкой скомпилил, другой прошил.

Параметры для avra:
Код:
avra -I /путь/до/inc.файлов/ исходник.asm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 00:10 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
Про avra слышал. Проект с десяток лет ведется. Спасибо, возьму на заметку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 00:28 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Кстати, про code::block + ассемблер и я что-нибудь почитал бы. Наверняка можно приспособить. А так среда мне понравилась.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 00:42 
Старожил

Зарегистрирован: 03 мар 2010, 14:10
Сообщения: 1514
Откуда: Беларусь, Минск
dark_reader писал(а):
Заинтересовал тут меня вопрос о средах программирования для МК AVR под Linux. Из поисков в сети понял, что GCC вполне годный компилятор, но для C/C++. И с code::block идёт работа вполне комфортно (чутка попробовал). Однако, так и не понял, как писать и компилировать там asm? Прошу тех кто работает в Linux, отпишитесь, кто что юзает (у кого какой инструментарий, работающий стабильно), кроме AVRStudio 3.8 + WINE.


Открою вам небольшой секрет, gcc делает и сишных исходников ассемблерные, которые можно даже получить в виде листингов. Ну а объектные файлы из ассемблера делает avr-as (который принадлежит пакету binutils, но из за того что всегда идёт вместе с gcc, иногда приписывается пакету gcc). Соответственно если вам нужно писать на асме - пишите и скармливайте ассемблеру, либо можно скармливать gcc, он разберётся (по расширению) что это на асме написано и всё сделает сам, ну а если совсем не уверены в его способности распознать асм - укажите это принудительно
Цитата:
You can specify the input language explicitly with the '-x' option:
-x language
Specify explicitly the language for the following input files (rather than letting the compiler choose a default based on the file name suffix). This option applies to all following input files until the next '-x' option. Possible values for language are:
c c-header cpp-output c++ c++-cpp-output objective-c objc-cpp-output assembler assembler-with-cpp ada f77 f77-cpp-input ratfor java treelang


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 00:51 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
Про ассемблер для AVR под code::block я ничего не нашел из отзывов, хотя подозреваю, что можно безболезненно avra встроить.
Вот! забыл. Попутно вопрос. С KontrollerLab кто нибудь работал серьёзно? немцы уверяют, что всё у них хорошо.

amx, спасибо, не знал. Точнее то что трансляция на asm с Си идёт это ясно, а вот про то что ему(GCC) код ассемблерный скармливать можно - это просветление.

Оффтоп: Начинаю несколько завидовать тем, кто на Microchip PIC с их развивающейся MPLAB X IDE. Студия 5 заточна под чистые винды с их .net - обидно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 01:03 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Цитата:
С KontrollerLab кто нибудь работал серьёзно? немцы уверяют, что всё у них хорошо.

Присоединяюсь к вопросу. Пробовал, но ничего с ним не получилось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 05:59 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
Для AVR самый удобный ассемблер, который я пробовал, это gavrasm.
http://www.avr-asm-tutorial.net/gavrasm/index_en.html

Дистрибутивы avra и gcc-as идут без файлов с определениями для контролеров, типа PORTB и т.п.
Нужно искать mega8.inc и т.п.
А в gavrasm нужно только указать контролер директивой .device - и больше ничего не нужно:)
Код:
.device ATMega8

Все остальное также, как в avra/gcc-as.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 06:19 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4913
Откуда: Усинск, республика Коми
Тоже пробовал приручить кодеблокс. Счет пока 1:0 в его пользу. Отложил до будущих времен, хотя наверное таких уже не настанет, поскольку для асма использую Geany+avra (как уже было написано). В принципе, можно к Geany привязать и С компилятор любой, заменив строку компиляции в настройках. Что мне в этом "джине" нравится - знает много языков программирования, синтаксис подсвечивает, удобен, открываются сразу все файлы проекта, которые были открыты на момент закрытия программы. И еще много всяких няшек.
А для С++ программирования использую Anjuta. Но как к МК привязать ее - незнаю. Использую для программ на комп.

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 09:32 
Старожил

Зарегистрирован: 05 фев 2011, 15:20
Сообщения: 284
Откуда: Хабаровск
iv_s писал(а):
Дистрибутивы avra и gcc-as идут без файлов с определениями для контролеров, типа PORTB и т.п.
Нужно искать mega8.inc и т.п.


Под gcc-as имеется в виду наверное avr-as?.

Код:
andrey@debian:/tmp/avr$ cat test.S
#define __SFR_OFFSET 0x00
#include <avr/io.h>

.global test

.section .text

test:       ldi     r24, 0xFF
            out     EIFR, r24
            sts    ETIFR + 0x20 , r24
            ret

andrey@debian:/tmp/avr$ avr-gcc -c  -mmcu=atmega128 test.S
andrey@debian:/tmp/avr$ avr-objdump -d test.o

test.o:     file format elf32-avr


Disassembly of section .text:

00000000 <test>:
   0:   8f ef          ldi   r24, 0xFF   ; 255
   2:   88 bf          out   0x38, r24   ; 56
   4:   80 93 9c 00    sts   0x009C, r24
   8:   08 95          ret
andrey@debian:/tmp/avr$


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 11:29 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
iv_s писал(а):
Для AVR самый удобный ассемблер, который я пробовал, это gavrasm.
http://www.avr-asm-tutorial.net/gavrasm/index_en.html

Дистрибутивы avra и gcc-as идут без файлов с определениями для контролеров, типа PORTB и т.п.
Нужно искать mega8.inc и т.п.
А в gavrasm нужно только указать контролер директивой .device - и больше ничего не нужно:)
Код:
.device ATMega8

Все остальное также, как в avra/gcc-as.

Во, нормально. Попробовал - работает. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 12:38 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
Ясно. avra/gcc-as/gavrasm + среда geany/code::block/текстовик. А вот такой вопрос. Отсутствие дебаггера сильно затрудняет разработки? Если проект большой, кроме AVRStudio его прогнать не на чем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 12:55 
Старожил

Зарегистрирован: 03 мар 2010, 14:10
Сообщения: 1514
Откуда: Беларусь, Минск
Дебаггер - не единственное средство отладки, есть ещё вывод на светодиоды/экраны/последовательные порты, которые иногда эффективнее чем отладчик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 13:25 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
amx писал(а):
Дебаггер - не единственное средств....

Согласен, не единственное, но зачастую, удобное.
Хотя, если алгоритм достаточно прозрачен на первых этапах, то всё проще:)
поговаривают на WineHQ http://appdb.winehq.org/objectManager.p ... ngId=13637, что VMLab работает весьма неплохо. как нибудь попробую с ним разораться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 16:54 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
На мелких проектах (а особо крупные мне и не посчастливилось разрабатывать) предпочитаю отлаживать в железе. Пишешь всякие отладочные процедуры, которые потом удаляешь... И так постепенно код вылизывается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 18:05 
Старожил

Зарегистрирован: 06 фев 2010, 17:22
Сообщения: 1557
Откуда: Иркутск
blindman писал(а):
iv_s писал(а):
Дистрибутивы avra и gcc-as идут без файлов с определениями для контролеров, типа PORTB и т.п.
Нужно искать mega8.inc и т.п.


Под gcc-as имеется в виду наверное avr-as?.

Ага, он самый. Не обращал внимания, что в ассемблерном листинге все тот же <avr/io.h> добавляется.
Оригинально:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 22:07 
Старожил

Зарегистрирован: 01 июл 2010, 15:30
Сообщения: 473
Откуда: Энгельс
ploop писал(а):
Цитата:
С KontrollerLab кто нибудь работал серьёзно? немцы уверяют, что всё у них хорошо.

Присоединяюсь к вопросу. Пробовал, но ничего с ним не получилось.

Я пробовал. Неплохая штука, терминалка встроенная, шьёт через дудку, простенький кодогенератор есть. Но проект не развивается, уже несколько лет висит версия 0.8 beta. К тому-же он требует 3-й KDE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 14 май 2011, 22:14 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1578
Откуда: Киев
neiver писал(а):
ploop писал(а):
Цитата:
С KontrollerLab кто нибудь работал серьёзно? немцы уверяют, что всё у них хорошо.

Присоединяюсь к вопросу. Пробовал, но ничего с ним не получилось.

Я пробовал. Неплохая штука, терминалка встроенная, шьёт через дудку, простенький кодогенератор есть. Но проект не развивается, уже несколько лет висит версия 0.8 beta. К тому-же он требует 3-й KDE.

+1 работал, все нормально было. Помню были какие-то танцы с кодировками, не понимал он то-ли виндовую,то-ли утф. Потом понадобилось и на винде поработать, переполз на эклипс, доволен как слон.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 15 май 2011, 12:00 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Эклипс, тварь, не запускается у меня. Выдаёт ошибку:
Код:
The program 'Eclipse' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 8921 error_code 8 request_code 152 minor_code 4)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Хотя на работе, с той же системой (Ubuntu 10.04) работает без проблем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 15 май 2011, 13:06 
Старожил
Аватара пользователя

Зарегистрирован: 17 апр 2010, 08:38
Сообщения: 4913
Откуда: Усинск, республика Коми
У меня эклипс может в любое время просто закрыться, без выдачи предупреждения и ошибки. Просто закрылся - и все. Я его забросил, т.к. пару раз терял уже крупные изменения в проекте...

_________________
хаос это непознанный порядок


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 15 май 2011, 13:48 
Старожил
Аватара пользователя

Зарегистрирован: 06 май 2010, 11:00
Сообщения: 2810
Откуда: Н. Новгород
... а под Виндой с Клипсой все тихо и гладко ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 15 май 2011, 20:10 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
BigLeha писал(а):
У меня эклипс может в любое время просто закрыться, без выдачи предупреждения и ошибки. Просто закрылся - и все. Я его забросил, т.к. пару раз терял уже крупные изменения в проекте...

Запусти из консоли - сразу видно ошибки будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 16 май 2011, 23:12 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
amx писал(а):
Открою вам небольшой секрет, gcc делает и сишных исходников ассемблерные, которые можно даже получить в виде листингов. Ну а объектные файлы из ассемблера делает avr-as (который принадлежит пакету binutils, но из за того что всегда идёт вместе с gcc, иногда приписывается пакету gcc).

Простите, можно ли немного поподробнее.
Пробую себя в code::block с Си файлами проблем нет. Немного недопонял, как можно из среды сразу работать с .асм, т.е. прикрутить к среде avr-as.
Не могли бы вы дать пару примеров команд для сборки или какой-нибудь makefile для сборки чистых ассемблеровских проектов, буду благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 17 май 2011, 00:39 
Старожил

Зарегистрирован: 03 мар 2010, 14:10
Сообщения: 1514
Откуда: Беларусь, Минск
dark_reader писал(а):
Простите, можно ли немного поподробнее.
Пробую себя в code::block с Си файлами проблем нет. Немного недопонял, как можно из среды сразу работать с .асм, т.е. прикрутить к среде avr-as.
Не могли бы вы дать пару примеров команд для сборки или какой-нибудь makefile для сборки чистых ассемблеровских проектов, буду благодарен.

Исходники на ассемблере собраются абсолютно точно так же как и на Си, просто расширения исходников другие и всё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: компиляция asm в Linux
СообщениеДобавлено: 18 май 2011, 21:55 
Старожил

Зарегистрирован: 03 июн 2010, 12:15
Сообщения: 252
Нашел кой чего по кодблоку. Мож кому интересно:
http://www.ibm.com/developerworks/ru/li ... _CMP=GR01T


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB