Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.01.2010, 01:40
|
#91
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Сообщение от SasaVitebsk
|
Уровень оптимизации ставлю максимальный и больше к этому не возвращаюсь. А зачем использовать неоптимально скомпилированную прогу?
|
На электрониксе не раз всплывали ситуации с некорректным результатом на максимуме оптимизации.
Сообщение от SasaVitebsk
|
Очень чётко расписана связь с асмом, что позволяет чётко пользоваться всеми возможностями, в том числе использовать регистры.
|
А что, можно писать асмовые вставки не используя регистры? GCC это кстати все же может. И оптимизатор понимает встроенный ассемблер, а у IAR до сих пор нет механизма сообщить компилятору С что же мы там изменили. Собственно в документации иара это и написано. Так что вместо выигрыша запросто можно проигрыш получить из за потери контроля оптимизатора над результирующим кодом.
Сообщение от SasaVitebsk
|
Одно из основных преимуществ - кросплатформенность. По этому показателю - равных практически нет.
|
Да, равных нет. GCC тут далеко впереди - более 50 платформ. Причем он на многих еще и сам работать может. У иара то чуть больше 20. Да, как хорошо он работает под Linux? Раз уж он такой кроссплатформенный...
Сообщение от SasaVitebsk
|
Есть возможность создания своих библиотек.
|
Есть такие где это нельзя сделать???
Сообщение от SasaVitebsk
|
Представьте себе что я использую какую то ОС на CVAVR.
|
По этому поводу последний вопрос - трудностей с покупкой лицензии на ИАР не возникло? Я вот в общем не против ИАР, но позволить его для себя не могу - дороговат он слегка. А воровать совесть не позволяет. Хотя мой основной кристалл у АВР - М48, для нее даже кикстарта хватит, но попробовав пособирать на нем простые тесты я пришел в ужас - иар АВР 5.30 вчистую проиграл старенькому уже GCC 4.2.2. Ссылка есть в 12 посте этой темы. Да и со стандартами там вопросы возникли - иар не понимал некоторые очень стандартные форматтеры для printf - %u например. Скорость же работы библиотечных функций удручила - GCC иногда оказывался в 10!!! раз быстрее. Вот тут и задумаешься - а почему за него столько хотят?
|
|
|
|
16.01.2010, 02:48
|
#92
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Ну для 8-ми битных камней я бы бесплатно раздавал ПО,лишь бы сами камни покупали.
|
|
|
|
16.01.2010, 23:19
|
#93
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Сообщение от kison
|
На электрониксе не раз всплывали ситуации с некорректным результатом на максимуме оптимизации.
|
Киньте пару ссылок, плиз. А то я на электрониксе сижу и что-то не видел. Да если написана прога криво (как правило из-за volatile), то проблемы бывают у авторов.
Цитата:
|
А что, можно писать асмовые вставки не используя регистры?
|
Я неудачно выразился. Я имел ввиду, что возможно зарезервировать регистры под свои нужды. Компилятор не будет их использовать в проге.
Цитата:
|
GCC это кстати все же может.
|
Перечитайте мой пост. У вас что глаза затуманило? Я что GCC загоняю? Или где-то о нём некорректно отозвался? Воинствующие религиозные фанатики, в любом деле есть, и пользы от них не больше чем вреда. Уймитесь.
Цитата:
|
И оптимизатор понимает встроенный ассемблер, а у IAR до сих пор нет механизма сообщить компилятору С что же мы там изменили. Собственно в документации иара это и написано. Так что вместо выигрыша запросто можно проигрыш получить из за потери контроля оптимизатора над результирующим кодом.
|
Наличие асемблерных вставок в Си программе - это уже минус качеству компиляции. Здесь хвалится нечем. Это говорит о том, что компилятор не смог сгенерировать прогу достаточного качества. И вам пришлось делать это руками. А вваливать асмовый текст прямо походу си программы, на мой взгляд, вообще верх глупости. (Повторюсь, это мой взгляд на вещи.) Это противоречит постулатам программирования. Включение процедур и модулей, написанных на другом языке и подключение их на этапе линковки - нормальная практика.
Поэтому наличие перечисленных проблем, я признаю. Меня они нисколько не заботят. Похоже разработчиков IAR - тоже.
Цитата:
|
Да, равных нет. GCC тут далеко впереди - более 50 платформ. Причем он на многих еще и сам работать может. У иара то чуть больше 20. Да, как хорошо он работает под Linux? Раз уж он такой кроссплатформенный...
|
Ещё раз повторюсь. Против GCC ничего не имею. И пост был не по нему. Спрашивали про IAR. Отсутствие варианта компилятора IAR под Linux - действительно существенный минус.
Цитата:
|
По этому поводу последний вопрос - трудностей с покупкой лицензии на ИАР не возникло? Я вот в общем не против ИАР, но позволить его для себя не могу - дороговат он слегка. А воровать совесть не позволяет.
|
А врать у вас совесть позволяет? У самого заядлого линуксовода, всегда стоит винда отдельным разделом ну и софта на сотни тысяч. IAR в этой копилке будет жалкой монеткой. Кстати западники поступают ровно также.
Цитата:
|
Хотя мой основной кристалл у АВР - М48, для нее даже кикстарта хватит, но попробовав пособирать на нем простые тесты я пришел в ужас - иар АВР 5.30 вчистую проиграл старенькому уже GCC 4.2.2.
|
Ну раз М48, то пришлите небольшой проект в студию. Желательно реальный и без асмовых вставок, по вышеперечисленным причинам. Ну и я компильну его. Хочу ужаснуться вместе с вами.
Цитата:
|
Ссылка есть в 12 посте этой темы. Да и со стандартами там вопросы возникли - иар не понимал некоторые очень стандартные форматтеры для printf - %u например. Скорость же работы библиотечных функций удручила - GCC иногда оказывался в 10!!! раз быстрее.
|
Тут ничего сказать не могу. Библиотеками не пользуюсь практически. Только разные memcpy, memset. Здесь проблем не замечал.
printf использовал лишь в одном проекте, и то по приколу. По поводу %u - проверю - отпишусь.
Цитата:
|
Вот тут и задумаешься - а почему за него столько хотят?
|
Вот тут и не давайте.
|
|
|
|
16.01.2010, 23:59
|
#94
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Вот как к вам относится?
в разделе C:\Program Files\IAR Systems\Embedded Workbench 5.0 Evaluation\avr\doc находится документ clib.pdf. Открываем его на странице 26. И читаем описание printf (это соответственно относится и к sprintf). На стр. 28/29 видим таблицу 11.
Цитата:
|
Conversion
The result of each value of conversion is as follows:
=============================================
d Signed decimal value.
i Signed decimal value.
o Unsigned octal value.
u Unsigned decimal value.
x Unsigned hexadecimal value, using lower case (0–9, a–f).
X Unsigned hexadecimal value, using upper case (0–9, A–F).
e Double value in the style [-]d.ddde+dd.
E Double value in the style [-]d.dddE+dd.
f Double value in the style [-]ddd.ddd.
g Double value in the style of f or e, whichever is the more appropriate.
G Double value in the style of F or E, whichever is the more appropriate.
C Single character constant.
s String constant.
p Pointer value (address).
n No output, but stores the number of characters written so far in the integer
pointed to by the next argument.
% % character.
================================================
|
Основным отличительным признаком IAR является неукоснительное следование стандарту. На электрониксе это пытались десятки раз поставить под сомнение и всегда спецы доказывали правоту IAR. Чётко и со ссылками на стандарт. Да и как может быть иначе? Коммерческий компилятор, имеющий тысячи заказчиков.
|
|
|
|
17.01.2010, 01:07
|
#95
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Сообщение от SasaVitebsk
|
Киньте пару ссылок, плиз. А то я на электрониксе сижу и что-то не видел.
|
http://electronix.ru/forum/index.php...&f=137&t=37879
http://electronix.ru/forum/index.php...&f=137&t=58817
http://electronix.ru/forum/index.php...&f=137&t=39136
http://electronix.ru/forum/index.php...&f=137&t=44643
Поиск на электрониксе не очень хороший. Вообще такие темы всплывают периодически. Я отсекал темы с упущенными квалификаторами и ошибками в исходниках.
Сообщение от SasaVitebsk
|
Перечитайте мой пост. У вас что глаза затуманило?
|
Нет, я это привел не в ответ, а просто как информацию. Подход к встроенному ассемблеру у ИАР и ГЦЦ очень разный.
Сообщение от SasaVitebsk
|
Поэтому наличие перечисленных проблем, я признаю. Меня они нисколько не заботят. Похоже разработчиков IAR - тоже.
|
Вы значит счастливый человек.
Сообщение от SasaVitebsk
|
А врать у вас совесть позволяет? У самого заядлого линуксовода, всегда стоит винда отдельным разделом ну и софта на сотни тысяч.
|
А вот это Вы зря. Я не заядлый линуксоид и виндовс у меня все же первая система, а рунту вторая. Но под виндовсом из нелицензии ( сейчас специально полазил) только The Bat лохматой версии и две игрушки у жены. Причем одна из них на самом деле лицензионная, просто сломана для отучения от dvd привода. Ну пусть мышь стоит 100$ и игрушки 50.
Сообщение от SasaVitebsk
|
IAR в этой копилке будет жалкой монеткой.
|
Я не знал, что он такой недорогой. Если уж по сравнению со 150$ его стоимость жалкие монетки. Может купить?
Сообщение от SasaVitebsk
|
Ну раз М48, то пришлите небольшой проект в студию. Желательно реальный и без асмовых вставок, по вышеперечисленным причинам. Ну и я компильну его. Хочу ужаснуться вместе с вами.
|
Ссылка на тесты в 12 сообщении.
Ну вот оттуда:
Код:
|
#include ‹stdio.h›
char buf[6];
uint16_t var = 1234;
int main(void)
{
sprintf(&buf[0],"%u",var);
while(1)
{
asm volatile("nop");
}
} |
Вроде проще некуда.
Измените вставку в вечном цикле на что нибудь, для установки точки останова.
Ну и так как у нас не плавучка, нет длинных целых и прочего, то настройки для printf/sprintf в минимум. Собственно именно это там и стоит по умолчанию, так что если Вы библиотеками не пользуетесь, то и менять не придется.
Сообщение от SasaVitebsk
|
Вот тут и не давайте.
|
Я и не даю Хотя раз иар такой дешевый... На сайте иара цен нет.
Сообщение от SasaVitebsk
|
Вот как к вам относится?
|
Я не читал документацию, а просто попробовал помочь человеку в очевидной и очень простой проблеме преобразования uint16_t в строку. Причем без Иара даже, соответственно не было и документации. Он попробовал, сказал что не работает Стало интересно, скачал кикстарт иара, попробовал и тоже получил фигу. Причем это не асмовые вставки, а самая что ни на есть оптимизированная встроенная библиотека коммерческого компилятора. Ну что может быть стандартней sprintf???
|
|
|
|
18.01.2010, 02:45
|
#96
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Из этих ссылок, я доверяю только "Непомнящий Евгений". Обратите внимание на его фразу: "Просто странно как-то. Первый раз напоролся на четкий глюк ".
Там же на форуме есть ветка по GCC. Она правда худее в 2 раза, но это нам не помешает. Задайте поиском что-нибудь типа "глюк оптимизации" и почитайте.
Вы знаете что меня отталкивает в GCC? Вот это : "проект легко и непринужденно собирается этим:
kgp_avr-bu2.18.50.20080115_gcc4.3.0.20080111_avr-libc20080115.7z
kgp_avr-elf_bu2.18.50.20080601_gcc4.4.0.20080530_gdb6.8.20 080531_avrlibc1.6.2.7z
и собранное успешно работает в железе. ‹---
А 4.3.2 - не желает. И не в процессе выполнения, когда надо делать собственно умножение.
Возможно патчей каких не хватает. Мне сложно судить.".
Или так:
"после gcc -O9 -S -mmcu=atmega168 test.c
...
Как-то IAR с этим справляется на ура:
...
Вот и вопрос, ничего там в оптимизаторе случайно не сломали? А то что-то совсем мрачно. И вроде не было такого.
Теперь вопрос номер два. Сунул ему более глобальный файл. Получил вот такое
....
Баг-репорт отправлять прямо туда или Вам?
›››
1. чтото мне тож это не нравица, есть о чем подумать
2. -O9 всетаки нет такого уровня оптимизации, поменяйте на 0,1,2,3,s. должен пережевать исходник.
3. ветка 4.4 нестабильная, вылазит гадость, болше чем из стабильных.
›››
-O3 тоже фаталити. То с девяткой я погорячился (пользуюсь то IAR'ом)
›››
...
Да и раньше было не сахар (я тут писал об оптимизации скорости вывода на дисплей).
Таким макаром циклы реализовывать это надо уметь.
Самое обидное, что ничего в этом направлении не меняется уже давно...
"
Или такое..."чуток потестировал, вроде без косяков."
А по поводу IAR скажу следующее. Вы почитайте первую свою ссылку. А теперь вдумайтесь. В каждый свой проект (практически) я вставляю WDT. Ни единого раза у меня с этим небыло косяков!!! Как это понимать? Я всегда выставляю максимальную оптимизацию. Например в одном проекте AVR/ARM у меня 40 файлов общим объёмом более 8500 строк текста. Ни строчки ассемблера. За несколько лет я ни разу не столкнулся с ошибкой компилятора. Хотя, например при переносе проекта с AVR на ARM обнаружил пару скрытых ошибок. То есть они были, но не проявлялись, а вылезли на ARM7. При их исправлении - ушли и там и там. Так и с оптимизацией. Есть скрытая ошибка какая-то. Как правило.
Не стоит доверять каким-то бредовым постам и по ним строить отношение к продукту. Нужно проверить самому.
Цитата:
|
А вот это Вы зря... Может купить?
|
Личное дело каждого.
Цитата:
|
Ссылка на тесты в 12 сообщении.
Ну вот оттуда:
Код:
|
#include ‹stdio.h›
char buf[6];
uint16_t var = 1234;
int main(void)
{
sprintf(&buf[0],"%u",var);
while(1)
{
asm volatile("nop");
}
} |
|
Куда вложить вам скрин экрана?
А хотите сами перепроверьте ещё раз.
В Project\Options\General Options\Library options...Printf formatter выберите Medium.
И не делайте скоропалительных выводов.
|
|
|
|
18.01.2010, 03:38
|
#97
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Сообщение от SasaVitebsk
|
Из этих ссылок, я доверяю только "Непомнящий Евгений". Обратите внимание на его фразу: "Просто странно как-то. Первый раз напоролся на четкий глюк ".
|
Остальные тоже как то не признаны ошибками в исходниках. Это не к тому, что ИАР плохой, это к тому что ошибки есть везде.
Сообщение от SasaVitebsk
|
Там же на форуме есть ветка по GCC. Она правда худее в 2 раза, но это нам не помешает.
|
Я прекрасно знаю о наличии багов в ГЦЦ. Они ес-но есть. Но это бесплатный компилятор, кроме того исходники его есть и при желании можно и самому с багами побороться. Тут уж жрите что дают. Или поработайте поваром самостоятельно.
Сообщение от SasaVitebsk
|
В каждый свой проект (практически) я вставляю WDT. Ни единого раза у меня с этим небыло косяков!!! Как это понимать?
|
И часто Вы его отключаете? А если никогда, то и с таким багом могли не встретиться.
Сообщение от SasaVitebsk
|
Куда вложить вам скрин экрана?
|
Не надо мне скринов. На medium я это и сам получил, только код раздулся. Но по умолчанию там вовсе не medium в настройках. И требования то невысоки - нет float, нет int32, минимальные в общем. Ожидается получение результата и на минимальных настройках, а их нет.
А вообще спор ни о чем. ИАР хороший продукт, но... Вот у меня запорожец, а у соседа мерседес. Мне летом жарко, а зимой холодно. А у соседа климат-контроль. Мне запор отдали за так, а сосед свой мерседес купил. Может мне не париться, а скоммуниздить машину у соседа и радоваться жизни? Не забывайте - разработчики ИАР-а точно такие же люди, как и Вы. Если завтра ваши тракторные приборные панели кто то стырит, и будет продавать за пол цены - Вам понравится? В РФ, да и в Беларуси похоже, украсть и этим гордиться в порядке вещей. Да еще и другим советовать - что мучаетесь, тоже украдите...
|
|
|
|
18.01.2010, 04:01
|
#98
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Ну у меня когда я работал с АВР были define-заглушки чтобы программа собиралась под IAR,GCC,CW и потом просто проверял чтобы программа корректно работала под всеми.
И в принципе под IARом помоему собиралось лучше всего.
|
|
|
|
18.01.2010, 22:40
|
#99
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Сообщение от kison
|
Если завтра ваши тракторные приборные панели кто то стырит, и будет продавать за пол цены - Вам понравится? В РФ, да и в Беларуси похоже, украсть и этим гордиться в порядке вещей. Да еще и другим советовать - что мучаетесь, тоже украдите...
|
Тракторные панели я отдаю в исходниках. И подозреваю что этим может воспользоваться очень много человек. И меня это не беспокоит.
Так как вы поступили с игрушкой, я поступил с виндой лицензионной. Купил и выкинул.
По сути м/у нами разницы меньше чем вы думаете. И вы и я пользуетесь практически бесплатно результатами чьей-то работы. Просто ваша бригада довольствуется меньними прибылями. И вы и я получаете не то что хотите. Именно поэтому купленное выкидывается. А если вы попытаетесь купить, то попадаете на целую разводку. Например IAR выпускает версии чаще чем в глубинке сервер в состоянии качать. Это что из-за борьбы за качество? И каждая новая версия понимает проект предыдущей, но не записывает его в старом формате. Это что забота об улучшении продукта?
Крупные корпорации просто косят бабло. А тех, кто сопротивляется этому, - убивают либо покупают. Вас разводят, за ваши же деньги.
Хотите это финансировать?
Сколько у государства не воруй, своего всё равно не вернёшь. Это не я сказал. Но я подписываюсь.
Мы скоро придём к тому, что одна группа будет выделять вам воздух плохого качества, но бесплатно, а вторая будет продавать хороший, но за деньги. А третьего варианта нет. Ну не в состоянии вы, в течении жизни это как-то подправить. И повлиять на это. Видете что вас имеют, а сделать ничего не можете. Только это отдельная ветка.
"Кому сказать спасибо, что живой?"
|
|
|
|
24.06.2011, 21:18
|
#100
|
Гражданин KAZUS.RU
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
|
Re: Почему Вы не используете IAR?
Когда решил осваивать программление железа в Си , встал выбор между 3мя СИшными компиляторами : WinAVR, CV и IAR (те которые смог достать). провозился 2дня с установкой IAR , интерфейс показался слишком навороченным и слождным ! В итоге оставил его до лучших времен
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:25.
|
|