Перейти к содержанию
    

Всем здравствуйте.

===

Я смотрю в основном люди пользуют иар. Даже ветка выделена специальная.

Особо интересно мнение тех, кто пользовался другими компиляторами. В чем его основные достоинства и недостатки?

===

Всем заранее спасибо за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Плюсы в том, что ИАР - это один из лидеров в своей области. Поэтому:

- его компиляторы, во-первых, работают,

- а во-вторых, работают достаточно хорошо ;)

 

Ну, а если серьезно, то компилятор многоплатформенный, поддерживает множество семейств МК.

Денег у фирмы много, что позволяет быстро выпускать новые версии, достаточно активно реагировать на новые веяния и т.д. И что немаловажно, не жлобиться на хорошие демо-версии.

 

Но, если взглянуть шире (ширее :) ), то можно обнаружить достаточно много семейств МК, для которых самыми популярными (и лучшими) компиляторами являются отнюдь не продукты от ИАР...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Плюсы в том, что ИАР - это один из лидеров в своей области. Поэтому:

- его компиляторы, во-первых, работают,

- а во-вторых, работают достаточно хорошо ;)

 

Ну, а если серьезно, то компилятор многоплатформенный, поддерживает множество семейств МК.

Денег у фирмы много, что позволяет быстро выпускать новые версии, достаточно активно реагировать на новые веяния и т.д. И что немаловажно, не жлобиться на хорошие демо-версии.

 

Но, если взглянуть шире (ширее :) ), то можно обнаружить достаточно много семейств МК, для которых самыми популярными (и лучшими) компиляторами являются отнюдь не продукты от ИАР...

===

Мне много не нужно. АРМы от NXP и всё пожалуй на данный момент моей жизни.

===

Для армов, я так понял, лучшим является кейл (код получается более компактным и быстрым + некоторые удобные фишки для работы).

[С моей точки зрения Кейл слегка неудобен в использовании (может непривычней).

Поэтому решил с него вернуться обратно на CW (который собственно не без глюков, хотя и незначительных. Но спать спокойно не дают)]

-----

Но эта быстрота в пару процентов никуда не упирается как правило.

Да и флеши всегда остается с большим запасом.

===

Так что главным является удобство работы в среде:

-удобство интерфейса;

-удобный поиск;

-удобный мониторинг состояние процессора;

-возможность смотреть что с переферией;

-что с памятью и как и что в ней лежит;

-удобная отладка с возможностью налету просматривать состояние переменных;

===

Еще плюсом ИАРа является то, что на нем сидит основная толпа разработчиков, поэтому есть у кого спросить.

===

В CW есть полезная функция Symbol Browser, в котором:

1) показываются все сегменты;

2) показываются константы в флешке с адресами и размером;

3) статические переменные в озу с адресами и размером;

4) ...

Есть ли такая в ИАР?

===

Плюс к тому некоторые изменения CW крайне редки, ИМХО. Чувствуется некоторая запущенность в свободное плавание.

===

Вопросы к тем кто имеет опыть пользования и того и другого:

1) Может на счет кейла сильно ошибся?

2) Что лучше: кейл или иар?

===

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
Для армов, я так понял, лучшим является кейл (код получается более компактным и быстрым + некоторые удобные фишки для работы).

 

тут еще спорный вопрос

 

написал я небольшой тестовый код посммотреть какой IAR и Keil делают код для Cortex

 

volatile int z = 1000;
volatile int i;
   
int testA(int za)
{
  if (za>= 500)
  {
     z = z /13;
     return(-10);
  } 
else return(za+10);  
}

   
int main(void)
  {
    int tz;
    tz = 1000;
    while(tz--)
      {
        i = testA(tz+z);
            if (i) z = 1;
            else z = 0;
      };
  }

 

Код полный боред. Код использует переменные volatile в коде и в функции. Рузультат IAR ~18000 циклов Keil ~26000, это лучшие показатели при выборе параметров компиляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С кейлом не сравнивал, но по сравнению с GCC код у IARа получается более компактным.

Но есть по-моему у ИАРа жирный минус - откровенно слабая ИДЕ, по нынешним временам и за такие бабки можно бы и поднавернуть немного.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но есть по-моему у ИАРа жирный минус - откровенно слабая ИДЕ, по нынешним временам и за такие бабки можно бы и поднавернуть немного.

 

У гнуся IDE нет вообще, так что те, кому не нравится иаровская среда могут прикрутить IARBuild к любому понравившемуся редактору (их масса, на любой размер и глубину ;) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но есть по-моему у ИАРа жирный минус - откровенно слабая ИДЕ...

Не видел ее уже года полтора :), а компилятор пользую ежедневно....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не видел ее уже года полтора :), а компилятор пользую ежедневно....

Можно поинтересоваться в какой среде Вы выполняете отладку программ? Для написания кода действительно лучше использовать специализированые редакторы типа SourceInsight, однако альтернатив отладчика IARа я не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

однако альтернатив отладчика IARа я не знаю.

Сложность программ начиная с некоторого уровня делает внутрисхемную отладку практически бесполезной. Более того, и достаточно простые программы начинающих отладчик провоцирует писать заплаточным методом - вот тут x + y получилось 3, хотели 4, так сейчас допишем + 1, потом ежели где вылезет там отнимем -1..... В результате макроме получаем. Самый мощный отладчик это голова - ее и надо использовать прежде всего.

Набор отладочных внутрисхемных отладочных средств на все свои контроллеры имею, но не пользуюсь. Консоль много информативнее. Если речь идет об отладке куска сишного кода, так его можно и на кроссплатформе отлаживать. Ну а если припрет, то, как здесь уже неоднократно писалось - создать IAR проект содержащий только объектники с отладочной информацией и отлаживайтеcь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сложность программ начиная с некоторого уровня делает внутрисхемную отладку практически бесполезной. Более того, и достаточно простые программы начинающих отладчик провоцирует писать заплаточным методом - вот тут x + y получилось 3, хотели 4, так сейчас допишем + 1, потом ежели где вылезет там отнимем -1.....

Закон сохранения гвоздей называется )) Код не доска или можно сказать и доска, но только в 10ти мерном пространстве, поэтому не так просто иногда понять в чем дело. Поэтому и нужны дополнительные инструменты, которые преобразуют эту страну чудес в обычный почти объективный мир (чем больше таких инструментов, тем лучше).

===

К тому же программист это не столяр, который может 100 раз измерить своим трезвым глазом и один раз отрезать кому-нибудь (чего-нибудь). Поэтому чаще всего программа даже у людей с опытом, хочешь не хочешь, похожа на ежа из гвоздей если не видеть что происходит в области inside.

===

И не отрицаю, что у некоторых голова как глобус (с масштабом 1:1), который может предсказания давать для этого причудливого мира. С джидаями начального и среднего уровня всё иначе (к числу их собственно и относится основная толпа).

===

И прошу не счесть, что: одна таблетка помогает от бессоницы, но плохо. Две помагают хорошо. А три помагают навсегда...

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

===

!ИМХО!

===

Дак всё же. Кейл или Иар?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сложность программ начиная с некоторого уровня делает внутрисхемную отладку практически бесполезной. Консоль много информативнее.

 

zltigo, а можете пояснить свою мысль? Чем принципиально консоль от окна отладчика отличается?

К тому же Uart-ы бывают все заняты...

Изменено пользователем scout

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
Чем принципиально консоль от окна отладчика отличается?

 

Тем что консоль работает в контексте программы и не влияет на работу остальных модулей программы, если конечно правильно написана и требования к скорости вывода отладочной информации соответствуют скорости вывода консоли. Консоли разные бывают необязательно для этого использовать уарт, но как правило используется он из за его простоты, но у него есть ограничения по скорости, хотя если применять USB переходник то скорость можно поднять и выше 115200. Если в устройстве есть изернет можно его как консоль использовать, если конечно не идет отладка самого стека :).

 

Что косается отладчика внутрисхемного, так он сбивает работу устройства, отладчик останавливает процессор! а не время, по этому когда вы смотрите информацию время идет большая часть периферии продолжает работать, сеть шлет вам пакеты, и т.д. в общем реалтайм уже отсутствует, из за этого некоторые вещи невозможно отладить!. да и скорость у него низкая попробуйте посмотреть 2 -килобайта массив ? мало - того что среда тормозить начинает, так еще и с программой непонятно что творится будет, а через консоль это раз и файл записан и смотрите на него как хотите. Еще отладчик накладывает жесткие требования к выводу информации, в консоли выводите так как вам нужно или на сколько позволяют ресурсы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлю одно из важных отличий - ведется лог событий той или иной заказанной степени детализации и видны причинно следственные связи. Причем все это и без подключенного отладчика в реальных объектовых условиях эксплуатации.

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

Так я, если внимательно читали, их и имею. Только ногти не запускаю так сильно, что-бы бензопила потребовалась :). Реально, мне пригодился-бы отладчик один раз - когда изучал, например, ARM, писал порт операционки. Вот тогда она у меня разок зациклилась намертво и пришлось искать проблему откатами и делением пустыни пополам. Но тогда в эту первую неделю отладчик мне еще не привезли. А когда уже системка поднялась, консольнормальная буферизированая, обработчик exceptions... отладчик и не нужен практически. Для AVR пользовался (кроме загрузки)тоже один раз для совсем мелюзги. PIC - только для загрузки. Больше всего пользовал BlackFin-овский.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MALLOY и zltigo спасибо за информацию.

Сейчас как раз настало то время, когда надо отладить пару девайсов, а отладчика нет.

Попробую написать универсальный модуль для вывода отладочной информации...

 

Кстате, а в качестве терминальной программы что пользуете? Hyper Terminal?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MALLOY и zltigo спасибо за информацию.

Сейчас как раз настало то время, когда надо отладить пару девайсов, а отладчика нет.

Попробую написать универсальный модуль для вывода отладочной информации...

 

Кстате, а в качестве терминальной программы что пользуете? Hyper Terminal?

GemorTerminal на самом деле это. Совершенно не удобен. Лучше использовать что-нибудь по лучше. Или лучше написать самому (лично сам своё использую).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...