Страница 1 из 2

AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 13:03:25
vgorskih
Слышал мнение, что CodeVisionAVR недостаточно компактно ассемблирует, что если писать на асме самому, то получится компактнее и вобще CodeVisionAVR не очень хороший кампилятор (простой но имеет ряд недостатков), дескать машинный код (hex. файл) можно сделать компактнее, если выбрать другую среду разработки (AVR Studio например). Кто чего нибудь может сказать по этому поводу.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 13:38:11
ChipKiller
Писать компактно можно на любом языке - главное умело им пользоваться. На ассемблере программа будет компактнее, но при большом размере отлаживать ее будет сложней.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 13:58:22
vgorskih
Я имею в виду что пишем только на С, но в разных кампиляторах

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 14:09:51
ChipKiller
... если Вы имеете ввиду "крутизну" оптимизатора - наверное лучший у IAR или чего-то подобного ИМХО...

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 14:19:53
Goldsmith
vgorskih писал(а):машинный код (hex. файл) можно сделать компактнее, если выбрать другую среду разработки (AVR Studio например).
vgorskih писал(а):Я имею в виду что пишем только на С, но в разных кампиляторах
Но в составе AVR Studio нет компилятора C, можно лишь подключить внешний toolchain.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 14:25:48
ChipKiller
Goldsmith писал(а):Но в составе AVR Studio нет компилятора C, можно лишь подключить внешний toolchain.
... думаю, говоря про AVR Studio, vgorskih имел ввиду WinAVR.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 14:38:23
Goldsmith
ChipKiller писал(а):... думаю, говоря про AVR Studio, vgorskih имел ввиду WinAVR.
Возможно. WinAVR действительно дает код если и не лучшего, то во всяком случае вполне приемлемого качества. При этом обладает еще и другими достоинствами, которые могут оказаться поважнее компактности кода (в конце концов, если для программы мало места, всегда можно взять AVR "потолще").

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 15:01:38
Danko
И компилятор CVAVR и компилятор WinAVR собирают hex одинаковой длины и это при условии, что используете голый Си т.е. складываете 2 числа, пересылаете, считываете с портов и т.д.

Но вряд ли вы пользуетесь голым Си.

Сила Си компилятора в библиотеках.

Используя WinAVR вы получаете легальный бесплатный продукт, но при этом поиск библиотек ложится на ваши плечи.

в комплекте с CVAVR есть много библиотек, и для быстрого старта очень не плохо, но продукт коммерческий и отсюда все вытекающие последствия. Исходный код большей части библиотек закрыт.

И вообще сравнивать коммерческий продукт с бесплатным неблагодарное дело.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 15:50:48
vgorskih
недопонимаю о чём речь (с авр студио не работал), говоря по деревенски в нём есть кампилятор ассемблера и нет встроенного кампилятора С, или как.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 17:57:31
Murav
Danko писал(а):И компилятор CVAVR и компилятор WinAVR собирают hex одинаковой длины и это при условии, что используете голый Си т.е. складываете 2 числа, пересылаете, считываете с портов и т.д.
Вообще-то машинный код у них получается далеко не одинаковой длинны из-за работы оптимизатора. Даже самый маленький кусок кода можно оптимизировать по-разному.
У WinAVR(он же avr-gcc) оптимизатор(имеется в виду процессорно-независимая часть) заметно лучше чем у CVAVR(и возможно даже лучше, чем у IAR), но он плохо учитывает особенности архитектуры AVR(особенно - размер слова 8 бит). Хотя очень похоже, что это не мешает ему заметно обходить CVAVR по качеству оптимизации, то есть размеру кода или скорости выполнения, в зависимости от настроек оптимизации.
И так же WinAVR использует стандарт C99, в который перетащили из C++ некоторое количество полезных возможностей.
Danko писал(а):Сила Си компилятора в библиотеках.
Оптимизация как минимум не менее важна - чем она лучше, тем больше сможет делать МК, а вот толку с библиотек часто бывает весьма мало - как правило в них нечего выносить в библиотеки. Обычно используется лишь пара библиотек, которые не так уж и сложно сделать самому.
vgorskih писал(а):недопонимаю о чём речь (с авр студио не работал), говоря по деревенски в нём есть кампилятор ассемблера и нет встроенного кампилятора С, или как.
Вместе AVR Studio не ставится никакой компилятор(вполне возможно, только из-за того что avr-gcc - OpenSource и его неполучается распространять вместе с коммерческой программой), но если на компьютере есть WinAVR, то в ней можно писать программы на C(или на C и ассемблере сразу). И в большинстве случаев ставят сразу AVR Studio и WinAVR.

Re: AVR Studio или CodeVisionAVR

Добавлено: Чт фев 24, 2011 19:12:28
ARV
Murav писал(а):Вместе AVR Studio не ставится никакой компилятор(вполне возможно, только из-за того что avr-gcc - OpenSource и его неполучается распространять вместе с коммерческой программой), но если на компьютере есть WinAVR, то в ней можно писать программы на C(или на C и ассемблере сразу). И в большинстве случаев ставят сразу AVR Studio и WinAVR.
AVR Studio - бесплатный продукт, т.е. не коммерческий. кроме того, команда Atmel по сути монополизировала разработку avr-gcc (WinAVR) и теперь так же предлагает для скачивания со своего сайта этот тулчейн (а заодно и для 32-битных AVR). так что еще немного - и студия будет иметь "свой" компилятор :))) может, пока я пишу - это уже свершилось :)))

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 10:23:10
Danko
Murav писал(а):Оптимизация как минимум не менее важна - чем она лучше, тем больше сможет делать МК, а вот толку с библиотек часто бывает весьма мало - как правило в них нечего выносить в библиотеки. Обычно используется лишь пара библиотек, которые не так уж и сложно сделать самому.
У нас с Вами абсолютно разное мышление.

Я Си-программист и мыслю как Си-программист, а Вы похоже Ассемблер-программист и даже когда пишите на Си то все равно мыслите как Ассемблер-программист и Вы теряете все преимущества языка Си.

И что значит "сделать библиотеку самому" ? Библиотека это не процедура и не функция в которые выносятся повторяющиеся части программы. В отличие от ассемблера Си-код дает такое преимущество как кроссплатформенность, а это улучшает повторяемость проекта.

Да и зачем тратить время на создание библиотеки. Пересмотрите ветки форума, сколько человек мучают DS18B20, знакосинтезирующие, графические LCD, и вопросы по сути идентичные. Да они все разберутся и соберут свою библиотеку, но ... можно ли ею поделиться со всеми и сможет ли другой ею воспользоваться ?

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 10:57:58
Goldsmith
Danko писал(а):И компилятор CVAVR и компилятор WinAVR собирают hex одинаковой длины
Можете привести источник этой информации?

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 12:52:46
Danko
Таких примеров быть не может т.к. речь идет о голом Си.

Ну нужно выхватывать слов из контекста.

Тем более я никогда не занимался такой ерундой как сравнение длины кодов. Такое сравнение может делать только русский человек т.к. у русских и WinAVR и CVAVR являются фриварьными.

Точно также народ сравнивает Windows и Linux. И при этом я читал интервью с одним директором который сказал, что деньги потраченные на переучивание персонала для перехода на Линукс больше денег чем купить лицензию на Windows.

И вообще, что существуют всего два Си компилятора для AVR ?

CodeVisionAVR,
WinAVR,
IAR for AVR,
ImageCraft C,
Micro C
...

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 13:05:06
Goldsmith
Понятно, спасибо. Утверждения, которые невозможно ничем подтвердить, очень информативны и убедительны.

Тот факт, что существуют различные опции копиляции (в частности, несколько режимов оптимизации), и в зависимости от них размер генерируемого кода даже при использовании одного и того же компилятора может меняться очень сильно, замнем для ясности.

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 13:24:00
Danko
Goldsmith писал(а):замнем для ясности.
Согласен.
Goldsmith писал(а):Тот факт, что существуют различные опции компиляции
Стоит добавить разную степень оптимизации у разных версий одного и того же компилятора.

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 14:52:02
vgorskih
Одно время я работал в фирме занимающейся выпуском преобразователей частоты (для металлургии т.е. индукционная закалка деталей, индукционная плавка) и у нас было несколько человек (все самоучки), которые разработали железную и программную часть для управления этими самыми преобразователями, на плате была ПЛИС и какая то атмега (сейчас уже не помню какая не суть), работали они в АВР студио . Я начал изучение с Код Вижен АВР, правильно ли я понимаю, что люди, которые хотят сделать серьёзное изделие (связку железо+программа) выберут АВР Студио+winavr(AVRGCC), нежели CodeVisionAVR. По причине того, что в нём отладку написанного продукта проводить проще. И ещё по какой нибудь причине, которой я не знаю.

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 15:27:41
Goldsmith
vgorskih писал(а):правильно ли я понимаю, что люди, которые хотят сделать серьёзное изделие (связку железо+программа) выберут АВР Студио+winavr(AVRGCC), нежели CodeVisionAVR. По причине того, что в нём отладку написанного продукта проводить проще. И ещё по какой нибудь причине, которой я не знаю.
В принципе серьезные вещи можно делать почти в любой среде. Тут больше определяется опытом и умением разработчика.

Лично я отдаю предпочтение WinAVR по нескольким причинам. Одна из основных - многоплатформенность: существуют достаточно хорошо совместимые реализации GCC для очень большого числа микропроцессоров/контроллеров, поэтому велика вероятность того, что при необходимости проще будет портировать разработки на другие платформы (помните, например, как колбасило ATMEL в прошлом году?).

Еще одна причина - хорошая совместимость GCC со стандартами. Порой даже трудно сказать, делали ли GCC под стандарт или же стандарт писали, глядя на GCC. Как следствие - применимость большого числа инструментов, рассчитанных на синтаксис стандартного С.

Ну и еще очень важная для меня причина - наличие реализации GCC под IBM PC. Это дает возможность отлаживать бОльшую часть кода на персоналке, даже не прошивая его в микроконтроллер.

Re: AVR Studio или CodeVisionAVR

Добавлено: Пт фев 25, 2011 18:16:06
Murav
Danko писал(а):Я Си-программист и мыслю как Си-программист, а Вы похоже Ассемблер-программист и даже когда пишите на Си то все равно мыслите как Ассемблер-программист и Вы теряете все преимущества языка Си.
Я тоже Си-программист(а при возможности пишу на C++) и начинал, кстати с Delphi. На ассемблере практически не пишу. И какие же приемущества Си имеются в виду?
Danko писал(а):Библиотека это не процедура и не функция в которые выносятся повторяющиеся части программы.
А библиотека разве не является набором функций, повторяющейся в разных программах?
Danko писал(а):В отличие от ассемблера Си-код дает такое преимущество как кроссплатформенность, а это улучшает повторяемость проекта.
Как это связано с библиотеками?
Danko писал(а):Да они все разберутся и соберут свою библиотеку, но ... можно ли ею поделиться со всеми и сможет ли другой ею воспользоваться ?
Если код написан более-менее грамотно, то такой библиотекой легко может воспользоваться любой человек, причём не обязательно использующем тот же компилятор.
Кстати у Atmel есть почти готовые библиотеки для работы с многими интерфейсами.
Danko писал(а):Таких примеров быть не может т.к. речь идет о голом Си.
Что же такое "голый Си"?
vgorskih писал(а):По причине того, что в нём отладку написанного продукта проводить проще. И ещё по какой нибудь причине, которой я не знаю.
Ещё одна из причин - лучшая по сравнению с CVAVR оптимизация кода, которая в результате позволяет сэкономить на железе или сделать больше возможностей.
В результате получается, что бесплатные AVR Studio и WinAVR оказываются как минимум не хуже CVAVR.

Re: AVR Studio или CodeVisionAVR

Добавлено: Ср мар 02, 2011 00:20:33
HHIMERA
WinAvr действительно выдаёт меньший по размеру код на 10-20%...
И ваще... CodeVisionAVR - это Си-подобный компилер для начинающих, если с прицелом на развитие - фтопку...